FrontPage

http://www.aisecure.net/2011/11/28/root-zfs-freebsd9/

FreeBSD 9.0C+ZFS

今回はNEC Express5800/S70タイプPJ を使ってバックアップファイルサーバ

http://wiki.kinusati.net/index.php/FreeBSD:FreeBSD9.0(amd64)_on_ZFS

(1) FreeBSD 9.0のインストールDVDで起動します。

ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.0/ からインストールイメージ FreeBSD-9.0-RC3-i386-disc1.iso をDL。 CD-Rに焼いてプート。

(2) Installを選択します

(3) KeymapをJapanese 106にします

(4) ホスト名をつけます

(5) パーティショニングを行います。ここでは「Shell」を選択します。

gpart add -b 34 -s 64k -t freebsd-boot da0

の時に 4036byte でないので??みたいなエラーあった

(6) zpool.cacheを書き込む必要があるため、/tmpを書き込み可能にします。

# umount -f /dev/md1
# mdmfs -s 512M md1 /tmp

(7) デバイス名を調査します

# dmesg | fgrep MB

=> ada0/da0等出力されるので、それがデバイス名になります。今回の場合はada0になります。

(8) GPT形式で、パーティションを切ります。4GB swapで、それ以外は全領域を割り当てます。

# gpart create -s gpt da0
# gpart add -b 34 -s 64k -t freebsd-boot da0
# gpart add -s 4G -t freebsd-swap -l swap0 da0
# gpart add -t freebsd-zfs -l disk0 da0
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0

(9) zpoolを作成します。エラーが出ますが、気にせず進めましょう。

後ほどの手順でexport -> importすることで問題解決するからです。

# zpool create zroot /dev/gpt/disk0
# zpool set bootfs=zroot zroot
# zfs set checksum=fletcher4 zroot

(10) ZFSパーティションを作成します。ここでもエラーが出ますが、気にせず進めましょう。

# zfs set mountpoint=/mnt zroot
# zfs create zroot/usr
# zfs create zroot/usr/home
# zfs create zroot/var
# zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp
# 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 -o compression=lzjb -o exec=off -o setuid=off zroot/usr/src
# 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

(11) poolをexportしたのちimportします。

キャッシュファイルは、書き込み許可を与えた/tmp上に作成します。

# zpool export zroot
# zpool import -o cachefile=/tmp/zpool.cache zroot

(12) symlink/sticky bitをたてます。

# chmod 1777 /mnt/tmp
# cd /mnt ; ln -s usr/home home
# chmod 1777 /mnt/var/tmp

(13) FreeBSDのKernel/バイナリ等を展開します

# sh
# cd /usr/freebsd-dist
# export DESTDIR=/mnt
# for file in base.txz lib32.txz kernel.txz doc.txz ports.txz src.txz;
# do (cat $file | tar --unlink -xpJf - -C ${DESTDIR:-/}); done

(14) zpool.cacheをコピーします

# cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache

(15) 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
cat << EOF > /mnt/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/gpt/swap0 none swap sw 0 0
EOF
# echo 'zfs_load="YES"' >> /mnt/boot/loader.conf
# echo 'vfs.root.mountfrom="zfs:zroot"' >> /mnt/boot/loader.conf
# cat << EOF > /mnt/etc/fstab
# #Device Mountpoint FStype Options Dump Pass#
  /dev/gpt/swap0 none swap sw 0 0
  EOF
# echo 'zfs_enable="YES"' >> /mnt/etc/rc.conf

(16) すべての領域をアンマウントします。

# zfs set readonly=on zroot/var/empty
# zfs umount -a

アンマウントが失敗した場合は強制アンマウントします

# umount -f /mnt

(17) マウントポイントをセットします。

# zfs set mountpoint=legacy zroot
# zfs set mountpoint=/tmp zroot/tmp
# zfs set mountpoint=/usr zroot/usr
# zfs set mountpoint=/var zroot/var

(18) 再起動します。

# sync;sync;sync
# reboot

(19) OS再起動後、キーマップ・インタフェースを設定します

# vi /etc/rc.conf

=> 以下を追加する。適宜自分の環境に合わせて設定する。

hostname="host1.example.com"
ifconfig_re0="DHCP"
keymap="jp.106"

(20) rootアカウントのパスワード設定・タイムゾーン設定を行う

# passwd
# tzsetup

(21) 再起動します。

# sync;sync;sync
# reboot

以上で完成です。お疲れ様でした。ZFS生活をおもう存分楽しめます。


http://www.aisecure.net/2011/05/01/root-on-zfs-freebsd-current/

http://wiki.freebsd.org/RootOnZFS/GPTZFSBoot

http://sns.openpne.jp/communityTopic/7955


トップ   編集 凍結解除 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-02-06 (月) 13:22:41