转载自:https://wiki.freebsdchina.org/doc/z/gptzfsboot
注意
由于 FreeBSD 9.0 采用了新的 bsdinstall,官方的 WIKI 指出,原先的 GPT ZFS boot 安装方法可能会不适用(未验证),故有此文。
本文介绍的是基于 GPT 以 ZFS 为根分区安装 FreeBSD 9.0-Release。
本文基于 官网这篇文章 翻译而来,并且实际操作过。
原文修订日期(注意更新): 2012-05-01 19:57:09 by PaulChvostek
4K对齐:
下文出现 gpart add 的地方增加参数 -a 4k
创建 zpool 之前,执行 gnop create -S 4096 ada0p3(第三个分区,-S为大写)
创建 zpool 时,/dev/gpt/disk0 改为 ada0p3.nop
zpool export 之后 import 之前,执行 gnop destroy ada0p3.nop
步骤
1.从 FreeBSD 的 CD1安装盘/DVD安装盘/USB Memstick 启动
2.进入安装界面后,到了 「Partitioning」(分区)这一步时,选择 「Shell」 选项
3.创建分区
#1.将硬盘设为 GPT 分区格式。 # gpart create -s gpt ada0 #假设你有两块硬盘,这是第一块。 gpart create -s gpt ada1 #没有第二块硬盘则略过。 #2.在第一块硬盘上,分别创建标签(label)名为 boot0, swap0, disk0 这三个分区,最后把引导码写入第1个分区,即 boot0。 ##gpart add:添加分区 # -s 指定分区大小,-t 指定分区类型, # -l 指定标签名字,可以自由取名,记得前后一致, # ada0 是 /dev 下面的设备名字,这里是第一块硬盘。 # #gpart bootcode: 安装引导码 # -b -p (无需改动,照抄即可) # -i 指定分区的编号,从1开始。这里第一个创建的是 boot0,要写入 boot0, 所以是1。 # gpart add -s 64K -t freebsd-boot -l boot0 ada0 gpart add -s 8G -t freebsd-swap -l swap0 ada0 gpart add -t freebsd-zfs -l disk0 ada0 gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0 #针对第二块硬盘,没有则略过。 gpart add -s 64K -t freebsd-boot -l boot1 ada1 gpart add -s 8G -t freebsd-swap -l swap1 ada1 gpart add -t freebsd-zfs -l disk1 ada1 gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1 #3.创建 zpool 和 zfs # #「zroot」是zpool的名字,可随意起名,注意保持一致。 #如果你有两块硬盘,可用 mirror(RAID 1) 模式组建。 zpool create -o altroot=/mnt zroot mirror /dev/gpt/disk0 /dev/gpt/disk1 #如果你只有一块硬盘 zpool create -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
4.退出 shell 之后,继续安装
5.当问及「create partitions」(创建分区)时,选择「Shell」,然后直接输入 exit (刚才我们已经分好了)
6.安装和配置结束后,选择「Live CD」选项,以用户名 root 登录
7.修正挂载点和 cachefile(zpool缓存文件,记录了存储池的所有配置信息)
echo >> /mnt/etc/rc.conf echo >> /mnt/boot/loader.conf echo >> /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=/tmp zroot/tmp zfs set mountpoint=/usr zroot/usr zfs set mountpoint=/var zroot/var zfs set mountpoint=/home zroot/home
8.输入 shutdown -r now,完成安装
转载于:https://blog.51cto.com/wjcaiyf/1599255