FreeBSD 9.0 的 GPT 纯 ZFS 安装

转载自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,完成安装


你可能感兴趣的:(FreeBSD,ZFS)