一般的なCDから起動するインストール方法ではうまくいかない、 あるいは単にそうしたくないときにはこの手引きが役に立ちます。 この手引きは、GentooLinuxの代替的なインストール方法を必要とする方のために提供されています。 また、その気があればこの手引きをあなたの変わったインストール方法を提供する場とすることもできます。 もしも、あなたが見付けた便利なインストール方法があったり、Gentooのインストール方法で工夫した点があったりすれば、 その方法を詳しく書いて遠慮なくBugzilla まで送ってください。
2. Smart BootManagerを使ったインストールCDの起動
Smart BootManagerをhttp://btmgr.sourceforge.net/download.htmlからダウンロードしてください。 多くの言語パックと一緒に、Linux用のソースコードと実行バイナリ、Windows用の.exeファイルが利用可能です。 しかしながら、新しいバージョンのNASMでソースコードをコンパイルできないので、今回はバイナリを使った方が良いでしょう。
パッケージをソースコードからコンパイルするかバイナリを入手してください。 起動用フロッピーを作るときには、下のような幾つかのオプションを利用できます。
コード表示 2.1: Smart BootManagerのオプション |
sbminst [-t theme] [-d drv] [-b backup_file] [-u backup_file]
-t theme select the theme to be used, in which the theme could be:
us = English theme de = German theme
hu = Hungarian theme zh = Chinese theme
ru = Russian theme cz = Czech theme
es = Spanish theme fr = French theme
pt = Portuguese theme
-d drv set the drive that you want to install Smart BootManager on;
for Linux:
/dev/fd0 is the first floppy driver,
/dev/hda is the first IDE harddisk driver.
/dev/sda is the first SCSI harddisk driver.
for DOS:
0 is the first floppy drive
128 is the first hard drive;
-c disable CD-ROM booting feature;
-b backup_file backup the data that will be overwritten for
future uninstallation;
-u backup_file uninstall Smart BootManager, should be used alone;
-y do not ask any question or warning.
|
コード表示 2.2: 起動用フロッピーを作るためにsbminstを使う |
# sbminst -t us -d /dev/fd0
|
注意: フロッピーデバイス名が異なる場合は、fd0を適切に置き換えてください。 |
では、インストールCDを使って起動するコンピュータのCD-ROMドライブにインストールCDをセットし、 同じようにフロッピードライブにもフロッピーをセットしてコンピュータを起動してください。
Smart BootManagerのダイアログが出迎えてくれるはずです。インストールCDを起動するためにCD-ROMを選択してENTERを押してください。 起動できたら標準的なインストール方法に従ってください。
Smart BootManagerに関するもっと詳しい情報はhttp://btmgr.sourceforge.net/から参照できます。
注意: Knoppixはx86ユーザしか利用できません。 |
KnoppixのLiveCDを使って起動する方法では、 Gentooをコンパイルしている間でも完璧に動作するシステムを使うことができます。 bootstrapが終わるのを待つ間は、Tux Racerが暇潰しのタネになりますし、OpenOfficeを使って仕事をすることもできます。
警告: Gentooシステムがインストールされるのを待つ間にKnoppixのホームディレクトリに何かを保存した場合、 再起動後にGentooからそれを利用することはできません。重要なデータはハードディスクや何か他のコンピュータに保存するのを忘れないでください! |
KnoppixのCDから起動します。Knoppix 3.6-3.8.2をお使いの場合は、 2.6カーネルを呼び出すためにブートオプションとしてknoppix26を指定する必要があります。 このステップを飛ばしてしまうと、chrootしたときに、カーネルが古すぎるというエラーメッセージが表示されます。 しかし、もしもKnoppix 3.9+をお使いの場合には、2.6カーネルがデフォルトで呼び出されるのでこのステップは必要ありません。
通常、KnoppixではKDEのデスクトップが起動します。パスワードを変更できるようにするために、 konsoleを起動しsu -を実行してください。これによってKnoppixでのroot ユーザのパスワードを設定できます。 ここで、リモートログインのためにsshdを必要に応じて設定できます。
コード表示 3.1: マウントポイント /mnt/gentoo の作成 |
# mkdir /mnt/gentoo
|
この時点で、標準的なインストールの手引きの パート4 (訳注: 日本語版パート4)の部分から続けてください。 ただし、procシステムをマウントするときには、替わりに次のコマンドを実行してください。
コード表示 3.2: proc仮想ファイルシステムのバインドマウント |
# mount -o bind /proc /mnt/gentoo/proc
|
また、KNOPPIXでは、PortageのFEATURES内のいくつかが動作しないことも知られています。 とりわけ、userprivとusersandboxに注意してください。 もし、エラーが発生したら、オプション機能のいくつか、または全部を無効にすることが賢明でしょう。
4. ディスクを使わず、PXEブートを利用したインストール方法
ディスクを持たないクライアントには、多くの3comのカードのような、ブートの際にPXEプロトコルを使えるネットワークカードが必要です。 また、PXEによるブートをサポートしたBIOSも必要です。
ディレクトリの作成: まず最初に、ディスクレスのシステムが保存されるディレクトリを作成します。 それぞれのディスクレスのクライアントをホストするために、/disklessのようなディレクトリを作成してください。 これ以降、この手引きでは'eta'という名前のクライアントのセットアップ作業をすることにします。
コード表示 4.1: ディレクトリの作成 |
# mkdir /diskless # mkdir /diskless/eta # mkdir /diskless/eta/boot |
DHCPとTFTPの設定: クライアントはDHCPを使ってブート情報を取得し、TFTP を使って必要なファイルすべてをダウンロードします。 では、DHCPをemerge して必要な基本設定を行いましょう。そして、次に示す内容を/etc/dhcp/dhcpd.confに追加してください。
注意: 下の例では静的なIPアドレスと、 ここではpxegrubと名付けたPXE用のブートイメージまでのパスをクライアントに対して割り当てています。 クライアントのイーサ−ネットカードのMACアドレスと、 それぞれのファイルを保存する場所は状況にあわせて書き換えてください。 |
DHCPdについては、emerge dhcpを実行するか、他のDHCPサーバを選んでください。 /etc/conf.d/dhcpdでは、インタフェイスが正しく選択されていることを確認しておいてください。
コード表示 4.2: dhcpd.conf |
option option-150 code 150 = text ;
ddns-update-style none ;
host eta {
hardware ethernet 00:00:00:00:00:00;
fixed-address ip.add.re.ss;
option option-150 "/eta/boot/grub.lst";
filename "/eta/boot/pxegrub";
}
|
次にブートアップ時にクリアされないように、/etc/conf.d/netでインタフェースを設定する必要があります。 詳しくは/etc/conf.d/net.exampleをみてください。
コード表示 4.3: /etc/conf.d/net |
(eth0 を適切なインタフェースに置き換えてください)
config_eth0=( "noop" )
|
TFTPについては、app-admin/tftp-hpaをemergeし、 /etc/conf.d/in.tftpdに次の内容を加えてください。
コード表示 4.4: in.tftpd |
INTFTPD_PATH="/diskless"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"
|
GRUBのセットアップ: PXEブートをするためにnetbootUSEフラグを有効にしたGRUBを使っています。 いったんGRUBがコンパイルされたら、PXEイメージをディスクレスクライアントのブートディレクトリへコピーしてください。 その後、そのgrub.lstというコンフィグファイルを編集してください。
コード表示 4.5: GRUBのセットアップ |
# echo "sys-boot/grub netboot" >> /etc/portage/package.use # emerge -av grub # cp /usr/lib/grub/pxegrub /diskless/eta/boot/pxegrub # nano -w /diskless/eta/boot/grub.lst |
コード表示 4.6: grub.lst |
default 0 timeout 30 title=Diskless Gentoo root (nd) kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=ip.add.re.ss:/diskless/eta # nfsrootオプションについては、IPアドレスにサーバのものを、 ディレクトリには(そのサーバ上で)ディスクレスクライアントのファイルが置かれている場所を指定します。 |
NFSのセットアップ: NFSの設定はとても簡単です。唯一必要なのは、 /etc/exportsという設定ファイルに次のような内容を付け加えることだけです。
コード表示 4.7: /etc/exports |
# nano -w /etc/exports
# /etc/exports: NFS file systems being exported. See exports(5).
/diskless/eta eta(rw,sync,no_root_squash)
|
hostsファイルの更新: これは重要な作業です。/etc/hostsを必要にあわせて編集しなければなりません。
コード表示 4.8: /etc/hosts |
127.0.0.1 localhost 192.168.1.10 eta.example.com eta 192.168.1.20 sigma.example.com sigma |
ここでGentooのインストールCDを使ってサーバをリブートしたくなるかもしれませんが、 既にインストール済みのシステム上でGentooのインストール手引きに従って作業する方法が分かっていれば、 そのままうまく作業を続けることができます。 Gentooハンドブック (日本語訳)で解説されている、標準的なインストール方法に従ってください。 ただし、ファイルシステムをマウントする際には、以下のようにする点が異なります (hdaXは/disklessディレクトリを作成したパーティションです)。 ファイルのすべては/diskless/etaディレクトリ以下に置かれますから、他のパーティションをマウントする必要はありません。
コード表示 4.9: ファイルシステムのマウント |
# mount /dev/hdaX /mnt/gentoo
|
stage tarballとchroot: この例ではstage 3の圧縮ファイルを使います。 /procをディスクレスなシステム用のディレクトリにマウントし、 そこにchrootしてインストール作業を続けましょう。 カーネルの設定の前までインストール手引書に従って作業してください。
警告: stage tarballを展開する場所には特に注意してください。すでにインストー ルできているものに上書きしてしまった…なんてことはしたくありませんよね。 |
コード表示 4.10: stage tarballを展開 |
# cd /mnt/gentoo/diskless/eta/ # tar -xvjpf /mnt/cdrom/gentoo/stage3-*.tar.bz2 # mount -t proc /proc /mnt/gentoo/diskless/eta/proc # cp /etc/resolv.conf /mnt/gentoo/diskless/eta/etc/resolv.conf # chroot /mnt/gentoo/diskless/eta/ /bin/bash # env-update # source /etc/profile |
カーネルの設定: make menuconfigを使ってカーネルを設定するときには、イ ンストール手引書で推奨されている項目以外にも、次の項目を有効にすることを忘れないでください。
コード表示 4.11: menuconfigのオプション |
- お使いのネットワークカードデバイスのサポート
(モジュールと*せず*、カーネルに組み込んでください!)
- "Networking options" 以下:
[*] TCP/IP networking
[*] IP: kernel level autoconfiguration
[*] IP: DHCP support
[*] IP: BOOTP support
- "File systems --> Network File Systems" 以下:
<*> NFS file system support
[*] Provide NFSv3 client support
[*] Root file system on NFS
|
先ほどの作業でのpxgrubの設定に従って、カーネルをchroot後の/ (/bootではありません)に保存してください。 次に、ディスクレスクライアントの/etc/fstabを設定します。
コード表示 4.12: /etc/fstab |
# nano -w /etc/fstab
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
proc /proc proc defaults 0 0
tmpfs /dev/shm tmpfs nodev,nosuid,noexec 0 0
|
また、クライアント側でのファイルシステムのチェックを無効にする必要があります。
コード表示 4.13: クライアント側でのファイルシステムのチェックを無効化 |
# touch /fastboot # echo "touch /fastboot" >> /etc/conf.d/local.start |
クライアントがしっかりと依存しているnfs-utilsをインストールします。
コード表示 4.14: nfs-utilsのインストール |
# emerge nfs-utils
|
ブートローダについては、すでにpxgrubというブートローダがあるので他のものはインストールしないでください。 インストール作業が終ったらサーバをリブートしましょう。 DHCP、TFTPD、NFSといった、新しいクライアントをブートさせるために必要なサービスも起動してください。
コード表示 4.15: サービスの起動 |
# /etc/init.d/dhcp start # /etc/init.d/in.tftpd start # /etc/init.d/nfs start |
新しいクライアントを正しく起動させるには、 起動時に(CD-ROMやフロッピーより先に)まずPXEが使われるようにBIOSやネットワークカードを設定する必要があります。 この方法については、お使いのハードウェアのマニュアルやメーカのウェブサイトを調べてください。 ネットワークカードはDHCPを使ってIPアドレスを取得し、TFTPを使ってGRUB PXEのイメージをダウンロードします。 これで、よい感じのGRUBの白黒のブートメニューが表示されるので、起動するカーネルを選択してEnterキーを押します。 すべてがうまくいっていれば、カーネルが起動してNFSを使ってルートファイルシステムをマウントし、 ログインプロンプトが表示されるはずです。楽しんでくださいね。
5. 既存のLinuxディストリビューションからGentooをインストールする
既存のLinuxディストリビューション上からGentooをインストールするには、 既存のシステムにchrootコマンドがインストールされていて、 インストールしようと思っているGentooのインストール用tarballかISOイメージが用意されている必要があります。 tarball(ところで、tarballとはtar.gzかtbzに圧縮されているもののことです)に収録されていない機能を使いたければ、 ネットワークに接続できるとなお良いでしょう。 本稿の著者は「ホスト側の」OSとしてRedHat Linux7.3を使いましたが、これについては大して重要ではありません。 さあ、始めましょう!
まず、既存のLinuxパーティションの容量を変更してGentoo用のパーティションを確保してマウントし、 マウントしたパーティションにtarballを展開し、その仮想的なシステムにchrootしてビルド作業を始めます。 bootstrapの作業が終わり、システムを起動可能にするための最終的な設定を行えば、再起動してGentooを使うまでの準備ができたことになります。
ルートパーティションは/以下にマウントされるファイルシステムです。 とりあえず私のシステムでmountを使ってみた結果を御覧頂ければ、何のことかすぐに分かって頂けると思います。 ディスク領域をどれだけ使っていてどれだけリサイズすれば良いかは、df(disk free)コマンドを使えば分かります。 ルートパーティションを無理矢理リサイズしないように注意してください! リサイズ用のツールがサポートしていれば他のどんなものでもリサイズ可能ですが、それについては後程触れることにします。
コード表示 5.1: ファイルシステムの情報 |
# mount /dev/hdb2 on / type ext3 (rw) none on /proc type proc (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) none on /dev/shm type tmpfs (rw,nodev,nosuid,noexec) # df -h Filesystem Size Used Avail Use% Mounted on /dev/hdb2 4.0G 1.9G 2.4G 82% / none 38M 0 38M 0% /dev/shm |
御覧の通り、/にマウントされているパーティションは2.4GBの空き領域のある/dev/hdb2に割り当てられています。 私の場合は、これを400MBの空き領域を残してリサイズしようと思います。 つまり、Gentoo 用に2GBを確保する訳です。まあ、このくらい用意すれば良いんじゃないかなと思います。 いろいろインストールできることでしょう。とはいえ、ほとんどのユーザにとっては1GBでも十分かもしれません。 さあ、パーティションの確保を始めましょう!
partedは、日常様々な場面で使っているツールを開発している、 GNUという歴史のある偉大で大規模なプロジェクトが提供しているユーティリティです。 ここで挙げるのはたった一つのツールですが、こういう場面ではとても役に立ちます。 これはpartedと呼ばれるパーティションエディタで、http://www.gnu.org/software/parted/ から入手できます。
注意: 同じようにパーティションをリサイズできるツールは他にもありますが、 著者はPartitionMagic(tm)や同じような機能のある他のソフトウェアについてはよく知らないしあまり興味もないので、 そういったものに関することは読者の皆さんにお任せします。 |
先程のページから、リサイズするファイルシステムの種類と、partedがそれに対応しているかを探してください。 もしも、残念なことに対応していなければ、Gentooで使うためにどこかのパーティションを潰して再インストールしなくてはいけません。 ソフトウェアをダウンロードし、インストールしてください。 ここでひとつ問題があります。私達はLinuxのルートパーティションをリサイズするつもりですが、 そのためには/をリサイズするための最小限のLinuxシステムと、 事前にコンパイルされたpartedを格納したフロッピーディスクが必要になります。 しかし、Linuxを走らせたままで対象のパーティションをアンマウントできるなら、以下の作業は必要ないのでラッキーです。 ではpartedをコンパイルして、アンマウントしたリサイズ用パーティションに対して実行します。私のシステムでは以下のようにしました。
重要: そのパーティションに対して行おうとしている操作をpartedがサポートしてい るかどうか確認してください! |
mininuxのブート/ルート用のディスク(2.4カーネルで動く、フロッピー向けLinuxディストリビューションで無料です)を http://mininux.free.fr/uk/から入手し、ソフトウェアパッケージに付属している解説書の内容に従ってフロッピーを作成し、 次の手順のために新しいフロッピーをドライブに挿れてください。
注意: Linuxは「やり方は一つではない」という言葉と同義であると言えます。 目的は、partedを使って、アンマウントされたパーティションを使えるようにすることです。 mininux以外のboot/rootディスクも使えます。この手順は必ずしも必要ではなく、 要は現在のLinuxシステムからパーティションを再割り当てするファイルシステムをアンマウントしてpartedを実行できれば良いのです。 |
コード表示 5.2: ユーティリティ ディスクの作成 |
# mkfs.minix /dev/fd0
480 inodes
1440 blocks
Firstdatazone=19 (19)
Zonesize=1024
Maxsize=268966912
|
ではpartedをビルドすることにしましょう。 まだダウンロードや展開ができていなければ、まずそれを終わらせて、対応するディレクトリへcdするところまで進めてください。 そして、次のコマンドでユーティリティを構築してフロッピーディスクへコピーします。
コード表示 5.3: ユーティリティ・フロッピーディスクの構築 |
# mkdir /floppy; mount -t minix /dev/fd0 /floppy &&
export CFLAGS="-O3 -pipe -fomit-frame-pointer -static" && ./configure
&& make && cp parted/parted /floppy && umount /floppy
|
おめでとうございます。これで再起動してパーティションをリサイズする準備ができました。 この作業は最低でもGNUのウェブサイトにあるpartedのドキュメントをざっと読んでから始めてください。 大容量のハードディスクではリサイズに30分程度かかることがありますが、我慢して待ちましょう。 mininuxのブートディスクをフロッピードライブに入れて再起動し、ログインします。 ログインできたらpartedを/floppyから呼び出せるように、 先程作ったユーティリティ・ディスクに入れ換えてmount /dev/fd0 /floppyとタイプしてください。 さあ、始めましょう。partedを起動し、パーティションをリサイズします。 この長ったらしい作業が終れば、Gentooをインストールして色々と遊べると思います。 そして、再起動して元のLinuxシステムに戻りましょう。操作するドライブは、リサイズするパーティションを含んでいるドライブです。 例えば、/dev/hda3をリサイズするならドライブは/dev/hdaになります。
コード表示 5.4: mininuxにログインしたときに使うコマンド |
# mount /dev/fd0 /floppy # cd /floppy; ./parted [操作するドライブ] (parted) print Disk geometry for /dev/hdb: 0.000-9787.148 megabytes Disk label type: msdos Minor Start End Type Filesystem Flags 1 0.031 2953.125 primary ntfs 3 2953.125 3133.265 primary linux-swap 2 3133.266 5633.085 primary ext3 4 5633.086 9787.148 extended 5 5633.117 6633.210 logical 6 6633.242 9787.148 logical ext3 (parted) help resize resize MINOR START END resize filesystem on partition MINOR MINOR is the partition number used by Linux. On msdos disk labels, the primary partitions number from 1-4, and logical partitions are 5 onwards. START and END are in megabytes (parted) resize 2 3133.266 4000.000 |
重要: 我慢してお待ちください!コンピュータは働いています!マシンのケースについているLEDを見れば本当に働いているのが分かるはずです。 この作業には2分から30分程度はかかると思います。 |
リサイズが終わったら、先程説明したようにリブートして元のLinuxシステムに戻ってください。 そして The GentooHandbook: Preparing the Disks (訳注: 日本語版はGentooLinux Documentation -- ディスクの準備)を開き、 その内容に従って作業を進めてください。 chrootする際には、環境を更新するために、以下のコマンドを実行してください。
コード表示 5.5: chroot時の環境更新 |
# env -i HOME=$HOME TERM=$TERM chroot /mnt/gentoo /bin/bash # /usr/sbin/env-update # source /etc/profile |
楽しんでくださいね!
このドキュメントの内容は Creative Commons - Attribution / Share Alikeライセンスです。