DVDからの起動
さくらのクラウドでは、インストールDVDが選択できるので、FreeBSD-9.0の64ビット版を選択する。
- インストールDVDから起動して、[Install]を選択する。*3
- 次の画面で[Shell]を選択する。*4
gpartでの作業
ここから、shellでの作業となる。
まっさらなディスクで無ければ、初期化作業を行っておく。*5
gpart destroy -F ada0
gpart destroy -F ada1
gpart destroy -F ada2
新たにgpartで領域を作成する*6
gpart create -s gpt ada0
gpart create -s gpt ada1
gpart create -s gpt ada2
boot領域を作成する
gpart add -s 128 -t freebsd-boot ada0
gpart add -s 128 -t freebsd-boot ada1
gpart add -s 128 -t freebsd-boot ada2
ここで、残りの領域の全てをZFAにして、デバイスを作成しておく。*7
gpart add -t freebsd-zfs -l disk0 ada0
gpart add -t freebsd-zfs -l disk1 ada1
gpart add -t freebsd-zfs -l disk2 ada2
ブートコードを書き込む
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada2
gpartでの作業はここで終わる。
ZFSの設定
ZFSのカーネルモジュールを読み込む
kldload opensolaris
kldload zfs
ここでZFSプールを作るのだが、
zpool create -f zroot raidz1 /dev/gpt/disk0 /dev/gpt/disk1 /dev/gpt/disk2
インストールディスク上なので、rootが書き込み不可となっているため失敗する。しかしそのまま強行する。*8
よって構わずbootfsの設定をする。
zpool set bootfs=zroot root
ここで、ramdisk上にファイルシステムを一つ作り、それを/mntなどに割り当てる。
mdconfig -a -t malloc -s 128m -u 2
newfs -O2 /dev/md2
mount /dev/md2 /mnt
晴れてzrootをマウントして書き込みができるようになる。
zfs set mountpoint=/mnt zroot
zfs mount zroot
zfsの一連の設定を行う*9。
zfs set checksum=fletcher4 root
zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp
chmod 1777 /mnt/tmp
zfs create zroot/usr
zfs create zroot/usr/home
cd /mnt; ln -s /usr/home home
zfs create -o compression=lzjb -o setuid=off zroot/usr/ports
zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/distfiles
zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/packages
zfs create zroot/var
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/crash
zfs create -o exec=off -o setuid=off zroot/var/db
zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/db/pkg
zfs create -o exec=off -o setuid=off zroot/var/empty
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/log
zfs create -o compression=gzip -o exec=off -o setuid=off zroot/var/mail
zfs create -o exec=off -o setuid=off zroot/var/run
zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/tmp
chmod 1777 /mnt/var/tmp
これで、ZFSの設定がほぼ終了する。
FreeBSDインストール
ここからは、FreeBSDのインストール作業になる。
cd /mnt
unxz -c /usr/freebsd-dist/base.txz | tar xpf -
unxz -c /usr/freebsd-dist/kernel.txz | tar xpf -
unxz -c /usr/freebsd-dist/src.txz | tar xpf -
ここから先は/var/emptyをリードオンリーにしておく必要がある
zfs set readonly=on zroot/var/empty
準備ができたので、本番環境にchroot する
chroot /mnt
まず /etcの配下で最低限の作業をする。
echo ‘zfs_enable=”YES”‘ > /etc/rc.conf
touch /etc/fstab
boot loaderの設定も忘れずに行う。
echo ‘vfs.zfs.prefetch_disable=”1″‘ > /boot/loader.conf
echo ‘vfs.root.mountfrom=”zfs:zroot”‘ >> /boot/loader.conf
echo ‘zfs_load=”YES”‘ >> /boot/loader.conf
rootのパスワードを設定する
passwd root
ここからは、後でもいいが、起動時にエラーメッセージにならないための作業をする。
timezoneの設定をする
tzsetup
次に sendmailのaliasesのDBを作成しておく
cd /etc/mail
make aliases
chrootでの作業はここまでである。
exit
ZFSの最終段階の作業
chrootから復帰したらZFSのコンフィグキャッシュファイルを作成する。
cd /tmp
zpool export zroot && zpool import zroot
cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache
ZFSのmountpoint設定作業を行う。
zfs unmount -a
zfs set mountpoint=legacy zroot
zfs set mountpoint=/tmp zroot/tmp
zfs set mountpoint=/usr zroot/usr
zfs set mountpoint=/var zroot/var
再起動
これで、最低限の設定が行われたので、再起動する。
さくらのクラウドの場合は、
- シャットダウンする
- DVDを取り出す
- 起動する。
今のさくらのクラウドでは、FreeBSDのGPTからの起動に妙に時間がかかる気がする。
まあ、これはFreeBSDの問題か。
さて、無事起動さえできれば、これ以降は、ネットワーク関係の設定、ネームサーバの設定、sshの設定などの通常のインストール作業をbsdinstallなどを使って行うこととなる。