僕は,VMware Fusion 上の FreeBSD 7.0-RELEASE で作業した.使用した USB メモリは,ELECOM の MF-BU204GWH.VMware Fusion の設定から USB デバイスを選択し,USB メモリに対応するやつ(僕が使った USB メモリの場合,Transcend series となっていた.)を有効にする.そうすると,FreeBSD に認識され,画面にメッセージが表示される.このとき表示される da?(? の部分は数字.)をきちんとメモしておこう.
さて,ここからが本題.FreeBSD 上でやっていこう.作業手順は次のとおり.
1. MBR(この説明をすると長いので,自分で調べてほしい.また,FreeBSD のブートは面白いので,そっちについてもぜひ♪)を書き込み (-B),USB メモリ全体をひとつのスライス(物理パーティション)として確保する (-I).冗長モードはいわずもがな (-v).これで,/dev/da?s1 というスライスができているはず.
# fdisk -BIv /dev/da?
2. ラベル(論理パーティション)をスライス (da?s1) 上に作成する.ラベルを書き込み (-w),ブートストラップ(FreeBSD のブートについて調べれば出てくるよ.)を書き込む (-B).これで,/dev/da?s1a というラベルができているはず.
# bsdlabel -w -B /dev/da?s1
3. da?s1a というラベルにファイルシステムを作成する.
# newfs /dev/da?s1a
4. FreeBSD のインストール用の ISO イメージをダウンロードする.
# ftp ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.0/7.0-RELEASE-i386-bootonly.iso
5. ISO イメージをマウントする.mdconfig で /dev/md0 を作成する.md0 (-u) に,ISO ファイル (-t vnode -f) をアタッチ (-a) する.そして,/dev/md0 をタイプを指定して (-t cd9660) マウント.
# mdconfig -a -t vnode -f 7.0-RELEASE-i386-bootonly.iso -u 0
# mount -t cd9660 /dev/md0 /cdrom
6. USB メモリ (/dev/da?s1a) をマウントする.
# mount /dev/da?s1a /mnt
7. ISO イメージの中身をコピーする.ディレクトリを再帰的に (-R),パーミッションをできる限り保持したまま (-p) コピーする.冗長モードはいわずもがな (-v)w
# cp -Rpv /cdrom/* /mnt
8. ISO イメージと USB メモリをアンマウントし,ISO イメージをデタッチ (-d) する.
# umount /mnt
# umount /cdrom
# mdconfig -d -u 0
こんな感じで完成♪
ためしに,DNRH-001 で起動してみた.Load Optimized Defaults を実行した状態から,Advanced BIOS Features の First Boot Device をUSB-HDD にすることで USB メモリから起動できたので,おそらくほかの PC でもいけると思う.
ほかの情報を見ると,MBR とスライスのブートセクタをゼロクリアしているものがあるが,これは必要なのだろうか?妥当性が不明だったので,今回はゼロクリアしないことにしている.
参考文献:
kishiro.com: USBメモリからFreeBSDをインストールする
追記(2009年1月18日):
disc1 をコピーする方法から,bootonly をコピーする方法に変更.この方が小さくて済む.ネットワークインストールではなく,USB メモリをメディアとしてインストールするための方法は,林檎生活100: FreeBSD インストール用 USB メモリの作成 #3を参照のこと.
0 件のコメント:
コメントを投稿