FreeBSD-10RELEASE on ZFS

投稿日:

年末にFreeBSD機が壊れてしまってさみしくなってしまったのでUbuntuを入れているPCにFreeBSDを入れた.

以前,9.1RC2をZFSに入れたけど,もう少し細かく設定したので手順を書き直し.

1. インストーラの起動

1GBのSDカードに10-Rの64ビット版 FreeBSD-10.0-RELEASE-amd64-memstick.img を書き込んでUSBブート.

普通にインストーラを使ってインストールを進めるが,途中のディスクの設定のところはZFSを選ばず,Shellを選ぶ.一度ZFSにしてみたが,パーティションの切り方に満足できなかったので,一度作ったZFSを参考に手動で作ることにした.

2. ZFSの設定

WD REDの1TB 1本のみ使う.ミラーにはしない.4kセクターなディスクなのでzfsパーティションを作るときにちょっと気を使ってあげる.swapはZFSのプール内に作る.

GPTパーティションを作る.

# gpart destroy -F ada0
# gpart create -s gpt ada0
# gpart add -s 512k -a 4k -t freebsd-boot -l boot0 ada0
# gpart add -a 4k -t freebsd-zfs -l disk0 ada0

4kセクタ対応ZFSパーティション(ashift=12)を作る.

一旦,gnopで作ったラッパーデバイスでzfsを作り,export,nop削除,importする.

# gnop create -S 4096 /dev/gpt/disk0
# kldload zfs
# zpool create -o altroot=/mnt -O canmount=off -m none rpool /dev/gpt/disk0.nop
# zpool export rpool
# gnop destroy /dev/gpt/disk0.nop
# zpool import -o altroot=/mnt -o cachefile=/tmp/zpool.cache rpool

3. ファイルシステムの詳細設定

# zfs set checksum=fletcher4 rpool
# zfs set atime=off rpool

ルート

# zfs create -o mountpoint=none rpool/ROOT
# zfs create -o mountpoint=/ rpool/ROOT/default

各ディレクトリ

/直下のフォルダにはmountpointプロパティを設定し,それ以下は単に作るだけ.必要に応じて圧縮とsetuidなどを設定する.

# zfs create -o mountpoint=/tmp -o compression=lz4 -o setuid=off rpool/tmp
# chmod 1777 /mnt/tmp
# zfs create -o mountpoint=/usr rpool/usr
# zfs create rpool/usr/local
# zfs create rpool/usr/obj
# zfs create -o compression=lz4 -o setuid=off rpool/usr/ports
# zfs create -o compression=off -o exec=off -o setuid=off rpool/usr/ports/distfiles
# zfs create -o compression=off -o exec=off -o setuid=off rpool/usr/ports/packages
# zfs create -o compression=lz4 -o exec=off -o setuid=off rpool/usr/src

# zfs create -o mountpoint=/home rpool/home

# zfs create -o mountpoint=/var rpool/var
# zfs create -o compression=lz4 -o exec=off -o setuid=off rpool/var/crash
# zfs create -o compression=lz4 -o exec=off -o setuid=off rpool/var/log
# zfs create -o compression=lz4 -o atime=on rpool/var/mail
# zfs create -o compression=lz4 -o exec=on -o setuid=off rpool/var/tmp
# chmod 1777 /mnt/var/tmp

ブート設定

# zpool set bootfs=rpool/ROOT/default rpool

Swap作成

# zfs create -V 12G -o org.freebsd:swap=on -o checksum=off rpool/swap

4. インストールの続き

shellをexecで抜けてインストールの続きを実行.

5. インストール後の設定(1)

# echo 'zfs_enable="YES"' >> /mnt/etc/rc.conf
# echo 'zfs_load="YES"' >> /mnt/boot/loader.conf
# cp /tmp/zpool.cache /mnt/boot/zfs/

6. インストール後の設定(2)

これだけだとなぜか起動せず.PMBRの1番目のパーティションにアクティブフラグがついていない.
fdisk -aを実行するため,一度インストーラを抜けてもう一度USBからブートし,Live CDを選択.

# 前回のときは起動した気がするんだけどなぁ.

# fdisk -a /dev/ada0

これでおしまい.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です