YAMANEKO's Laboratory - UNIXサーバー構築・運用 - FreeBSD関係
CD-ROMから起動

ハードディスクのブートレコード(MBR)を使わずに、CD-ROMからブートしてハードディスクをマウントする方法です。
用途はいろいろ。。?ブートレコードが壊れてしまったときとか、簡単操作で起動ディスクやカーネルを切り替えるとか・・。

まず、作業用のディレクトリを作ります。

mkdir /tmp/cdboot
cd /tmp/cdboot

ここに、FreeBSDのFTPサイトから「boot.flp」をダウンロードしてきます。奥まったディレクトリにあるのでわかりづらいですが、たとえばi386用4.9ならここ。この中には起動ディスクに必要なカーネルやその他一式が入っています。

wget ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/4.9-RELEASE/floppies/boot.flp

これをv-nodeとしてマウントします。

vnconfig -c vn0 /tmp/cdboot/boot.flp
mount /dev/vn0c /mnt

中に入っているカーネルを今使っているものに入れ替えます。別のカーネルを使うのも可です。CDから起動するとこのカーネルを読み込みます。

rm /mnt/*gz
cp /kernel /tmp
gzip -9 /tmp/kernel
cp /tmp/kernel.gz /mnt

ハードディスクをマウントするためのfstabを作ります。このfstabによって、CD-ROMから起動したあとのディスクのマウントが決まります。ここでは今使っているfstabをそのまま使ってみます。

mkdir /mnt/etc
cp /etc/fstab /mnt/etc

次に、ブートローダーの設定を書き換えます。元のboot.flpには、RAMディスクをマウントするように記述されているので、その部分を削除します。

/mnt/boot/loader.rcをエディタで開いて「load -t mfs_root /mfsroot」の行を削除。

最後の仕上げ、作業に使ったv-nodeをアンマウントして、CD-ROMに焼くためのISOイメージを作ります。mkisofsツールがないときはこちら。

umount /mnt
vnconfig -u vn0
cd /tmp
mkisofs -R -J -b boot.flp -c boot.catalog -o cdboot.iso cdboot

/tmp/cdboot.iso が完成した起動CDのISOイメージです。