zfsなファイルシステムにFreeBSD 9.1RC2を入れたのでその記録。
手順は「Installing FreeBSD 9.0-RELEASE Root on ZFS using GPT」がベース。途中、ちょっと変えたので念のためすべてのメモを残しておく。
一応前提 (参考にしたページと違っているところ)。
- HDD 1個、ada0として認識。これにzfsパーティション1つにしてインストール。
- スワップ領域はパーティションではなくファイルで領域を確保する。
1. ブート
余っていた2GBのmicroSDカードをUSBのカードリーダに挿してPC接続。これに、”FreeBSD-9.1-RC2-amd64-memstick.img”を書き込んで、このSDカードから起動。
書き込みは、ChkFlshというフラッシュメモリをチェックしたりフォーマットしたりするツールを使用。他にもいろいろツールはあるはず。
2. インストーラ開始
9.0Rから採用されたbsdinstallでインストールを開始。途中のパーティションを設定するところで、”shell”を選択する。
3.パーティション作成
たぶん、一つ目の肝。今回はディスク1個なので、ミラーは組まない。最初のzpool createのところ、なぜか -f をつけないとエラーがでてだめだった(赤字のところ)。
# virtualbox上で同じことをしたら -f は無くても大丈夫だった。(2012/10/28)
# gpart create -s gpt ada0
# gpart add -s 64K -t freebsd-boot -l boot0 ada0
# gpart add -t freebsd-zfs -l disk0 ada0
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
# zpool create -f -o altroot=/mnt zroot /dev/gpt/disk0
# zfs create zroot/tmp
# chmod 1777 /mnt/tmp
# zfs create zroot/usr
# zfs create zroot/var
# zfs create zroot/home
# exit
exitと打つとインストーラに戻る。
4.インストール実行
いつも通りのインストールをする。コピーするファイルやらネットワークの設定やら、アカウント作成やら。
インストールが終わると、Shellを立ち上げるよう促されるけど、そこはexitですぐ抜ける。
5. Live CDオプションでrootログイン
後半の肝。次回のブート時にちゃんとzfsが見えるように設定する。
# echo 'zfs_enable="YES"' >> /mnt/etc/rc.conf # echo 'zfs_load="YES"' >> /mnt/boot/loader.conf # echo 'vfs.root.mountfrom="zfs:zroot"' >> /mnt/boot/loader.conf # zfs unmount -a # zpool export zroot # zpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt zroot # zfs set mountpoint=/ zroot # cp /tmp/zpool.cache /mnt/boot/zfs/ # zfs unmount -a # zpool set bootfs=zroot zroot # zpool set cachefile='' zroot # zfs set mountpoint=legacy zroot # zfs set mountpoint=/tmp zroot/tmp # zfs set mountpoint=/usr zroot/usr # zfs set mountpoint=/var zroot/var # zfs set mountpoint=/home zroot/home
最後のmountpointを設定するところはエラーが出るけど無視する。
6. 再起動してswapファイルを作る
無事再起動したらrootでログインしてswapファイルを作る。
# dd if=/dev/zero of=/swapfile bs=1m count=4096 # chmod 600 /swapfile # echo 'swapfile="/swapfile"' >> /etc/rc.conf # /etc/rc.d/addswap start
これで4GBのスワップ領域が有効になる。topコマンドあたりで確認可能。