在GPT盘的ZFS上安装FreeBSD8
本文参考了Installing FreeBSD Root on ZFS using GPT
通过DVD或者Memstick启动,选择Fixit。
硬盘gpt分区
创建gpt盘
gpart create -s gpt ad0
创建引导区
gpart add -s 64K -t freebsd-boot ad0
创建swap分区(标记label,避免将来硬盘接口改变导致无法识别)
gpart add -s 8G -t freebsd-swap -l swap0 ad0
创建用于zfs的分区
gpart add -t freebsd-zfs ad0
写入freebsd的zfs引导
gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad0
创建zpool
加载zfs模块
kldload /mnt2/boot/kernel/opensolaris.ko
kldload /mnt2/boot/kernel/zfs.ko
创建zpool
mkdir /boot/zfs
zpool create zroot ad0p3
zpool set bootfs=zroot zroot
创建zfs分区(计划通过md加载/tmp,所以在这里没有建立/tmp)
zfs create zroot/var
zfs create zroot/usr
zfs create zroot/home
安装系统
export DESTDIR="/zroot"
cd /dist/8.*
cd base && ./install.sh
cd ../lib32 && ./install.sh
cd ../manpages && ./install.sh
cd ../src && ./install.sh all
cd ../kernels && ./install.sh generic
cp -Rlpv /zroot/boot/GENERIC/* /zroot/boot/kernel/
配置基础系统和zfs引导配置
chroot /zroot
基础配置文件
/etc/src.conf
LOADER_ZFS_SUPPORT=YES
/boot/loader.conf
zfs_load="YES"
vfs.root.mountfrom="zfs:zroot"
vfs.root.mountfrom.options="rw"
vfs.zfs.prefetch_disable=0
/etc/rc.conf
hostname="gptzfsboot.freebsd.org"
defaultrouter="10.0.0.1"
ifconfig_re0="inet 10.0.0.1 netmask 255.255.255.0"
tmpmfs="YES"
tmpsize="512M"
zfs_enable="YES"
/etc/resolv.conf
nameserver 8.8.8.8
/etc/fstab
/dev/gpt/swap0 none swap sw 0 0
编译安装支持zfs的bootloader
mount -t devfs devfs /dev
export DESTDIR=""
cd /usr/src/sys/boot/
make obj && make depend && make
cd i386/loader
make install
基础的设置命令
passwd
tzsetup
cd /etc/mail && make aliases
退出chroot
umount /dev
exit
完成安装
cp /boot/zfs/zpool.cache /zroot/boot/zfs/
export LD_LIBRARY_PATH=/mnt2/lib
zfs unmount -a
zfs set mountpoint=legacy zroot
zfs set mountpoint=/usr zroot/usr
zfs set mountpoint=/var zroot/var
zfs set mountpoint=/home zroot/home
exit
原文链接:http://wiki.freebsdchina.org/doc/z/8_gpt_zfs