转载自https://wiki.freebsdchina.org/doc/z/gptzfsboot

注意

由于 FreeBSD 9.0 采用了新的 bsdinstall,官方的 WIKI 指出,原先的可能会不适用(未验证),故有此文。

  • 本文介绍的是基于 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 ada0gpart add -s 8G -t freebsd-swap -l swap0 ada0gpart add -t freebsd-zfs -l disk0 ada0gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0#针对第二块硬盘,没有则略过。gpart add -s 64K -t freebsd-boot -l boot1 ada1gpart add -s 8G -t freebsd-swap -l swap1 ada1gpart add -t freebsd-zfs -l disk1 ada1gpart 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/tmpchmod 1777 /mnt/tmpzfs create zroot/usrzfs create zroot/varzfs create zroot/homeexit

4.退出 shell 之后,继续安装

5.当问及「create partitions」(创建分区)时,选择「Shell」,然后直接输入 exit (刚才我们已经分好了)

6.安装和配置结束后,选择「Live CD」选项,以用户名 root 登录

7.修正挂载点和 cachefile(zpool缓存文件,记录了存储池的所有配置信息)

echo  >> /mnt/etc/rc.confecho  >> /mnt/boot/loader.confecho  >> /mnt/boot/loader.confzfs unmount -azpool export zrootzpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt zroot zfs set mountpoint=/ zrootcp /tmp/zpool.cache /mnt/boot/zfs/zfs unmount -azpool set bootfs=zroot zrootzpool set cachefile='' zrootzfs set mountpoint=/tmp zroot/tmpzfs set mountpoint=/usr zroot/usrzfs set mountpoint=/var zroot/varzfs set mountpoint=/home zroot/home

8.输入 shutdown -r now,完成安装