2012年01月12日(木)
9.0-RELEASEからは配布がtxz形式になったので連結する手間が省けた分だけ簡単に。なんかもうインストーラとか煩わしいだけな気がしてきた。
1)USBのストレージから起動できるPCがあること
2)既にFreeBSDがinstallされてるマシンがあること
3)ftp//ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/9.0-RELEASE/ あたりから base.txzと kernel.txzを持ってきてどこかに置いてあること(この例では /usr/freebsd-dist)
4)USBメモリをいれると/dev/da0に見えること
以上でおしまい。最低限のことしかしてないんで、もう少しこだわれますが、基本はこんな感じ。
以下駄文
FreeBSDのルータなんかほとんどHDDに書きにいかないようにできるわけで、ルータくらいならUSBメモリ onlyのPCでいいんじゃね?と思ったが、FreeBSDの8だと(少なくとも8.1-RELEASEまでは)起動したあとrootをマウントするところでこける。
これはUSBメモリが使えるようになるまで時間がかかるのに、その分待たないからで、カーネルにrootをマウントする前に数秒waitを入れるパッチをいれればいいというところまでは気がついた。
オイラはこれを sys/kern/vfs_mount.cの vfs_mountroot内の root_mount_prepare()の次あたりに
pause("mount root", 2*hz);
とか書いてカーネルを再構築して対処していたわけですが、最近改めて調べてみたら
/boot/loader.conf に kern.cam.boot_delay=10000
と書くというやり方があるそうな。(こちらのほうがカーネルの再構築がないからスマート)
9.0ではこのあたりが大きく書き直されていて、こんなことをしなくても良いようになったようです。
追記
動いているFreeBSDなんてネーヨ!って人は
ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/9.0/
あたりから起動用のimgをゲットしてなんとかしてUSBメモリに書き込んだりCDに書き込んで起動させる。 でもってそれからブートしたのちLiveCDまたはshellにおとして、インストールしたいUSBメモリをつっこむ。
それが da0 または da1に見えるはずなので、適当に読み替えて頑張ってください。
1)USBのストレージから起動できるPCがあること
2)既にFreeBSDがinstallされてるマシンがあること
3)ftp//ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/9.0-RELEASE/ あたりから base.txzと kernel.txzを持ってきてどこかに置いてあること(この例では /usr/freebsd-dist)
4)USBメモリをいれると/dev/da0に見えること
# dd if=/dev/zero of=/dev/da0 bs=1m count=1 # gpart create -s gpt da0 # gpart add -s 64K -t freebsd-boot da0 # gpart add -t freebsd-ufs -l freebsd da0 # gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 da0 # newfs /dev/da0p2 # mount /dev/da0p2 /mnt # cd /mnt # tar xvfzp /usr/freebsd-dist/base.txz # tar xvfzp /usr/freebsd-dist/kernel.txz # echo '/dev/da0p2 / ufs rw,noatime 0 0' > /mnt/etc/fstab
以上でおしまい。最低限のことしかしてないんで、もう少しこだわれますが、基本はこんな感じ。
以下駄文
FreeBSDのルータなんかほとんどHDDに書きにいかないようにできるわけで、ルータくらいならUSBメモリ onlyのPCでいいんじゃね?と思ったが、FreeBSDの8だと(少なくとも8.1-RELEASEまでは)起動したあとrootをマウントするところでこける。
これはUSBメモリが使えるようになるまで時間がかかるのに、その分待たないからで、カーネルにrootをマウントする前に数秒waitを入れるパッチをいれればいいというところまでは気がついた。
オイラはこれを sys/kern/vfs_mount.cの vfs_mountroot内の root_mount_prepare()の次あたりに
pause("mount root", 2*hz);
とか書いてカーネルを再構築して対処していたわけですが、最近改めて調べてみたら
/boot/loader.conf に kern.cam.boot_delay=10000
と書くというやり方があるそうな。(こちらのほうがカーネルの再構築がないからスマート)
9.0ではこのあたりが大きく書き直されていて、こんなことをしなくても良いようになったようです。
追記
動いているFreeBSDなんてネーヨ!って人は
ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/9.0/
あたりから起動用のimgをゲットしてなんとかしてUSBメモリに書き込んだりCDに書き込んで起動させる。 でもってそれからブートしたのちLiveCDまたはshellにおとして、インストールしたいUSBメモリをつっこむ。
それが da0 または da1に見えるはずなので、適当に読み替えて頑張ってください。
