UEFI+GPT 纯 UFS 根分区加密安装 FreeBSD 教程(ZFS同样适用)

首先说明一下,这篇教程是以前写的 (2016年6月) ,刚开始玩 FreeBSD ,当时对 ZFS 不是太了解,所以用的是 UFS ,但同样适用于 ZFS ,只需要把 UFS 的操作改成相应的 ZFS 操作即可。

这里假设安装的硬盘为 ada1,EFI 分区为 ada1p1,/boot 为 ada1p2 ,/ 为 ada1p3 ,实际操作时请注意修改

至少要建三个分区

EFI       至少800K,如果是打算多系统共用的话建议128M
/boot  建议至少1G,太小的话后续系统更新会导致空间不足
/           适量

建立 GPT 分区表

gpart create -s gpt ada1 #如果硬盘上有其他分区请跳过此步

建立分区

gpart add -t efi -s 800K ada1  #这是EFI 分区
gpart add -t freebsd-ufs -s 1G ada1 #这是 /boot
gpart add -t freebsd-ufs -s 65G ada1 #这是 / ,本文中需要加密的分区

把 bootx64.efi 写入 EFI 分区

# 实际上 FreeBSD 的 UEFI 镜像里的 bootx64.efi 和 /boot/boot1.efifat
# 里面的 bootx64.efi 散列值一样,可以直接复制过去
dd if=/boot/boot1.efifat of=/dev/ada1p1 

格式化 /boot 并挂载

newfs /dev/ada1p2
mount /dev/ada1p2 /media
# 由于 FreeBSD 提供的 bootx64.efi 默认引导所需文件在 boot 目录下,
# 所以要建立一个 boot 目录,否则引导会出问题
mkdir /media/boot

创建主密钥

dd if=/dev/urandom of=/media/boot/ada1p3.key bs=256 count=1

创建与格式化加密分区并挂载

#提示输入新密码,重复两次
geli init -l 256 -b -s 4096 -K /media/ada1p3.key /dev/ada1p3
#把 ada1p3.eli 的备份复制到 /boot 的 boot 目录中
cp /var/backups/ada1p3.eli /media/boot
#输入密码
geli attach -k /media/ada1p3.key /dev/ada1p3
newfs -U -j -L FreeBSD /dev/ada1p3.eli
mount /dev/ada1p3.eli /mnt
#新建 /boot 的挂载目录,放哪都可以,只要在新系统的 / 下就行
mkdir -p /mnt/usr/bootdir
umount /dev/ada1p2
mount /dev/ada1p2 /mnt/usr/bootdir
# 由于上面描述的引导问题,/boot 不能直接挂载到 / 下,
# 需要创建一条软链接
ln -s /mnt/usr/bootdir/boot /mnt/boot 

然后是安装与基本配置,我用 bsdinstall ,略过……
用 bsdinstall 安装完后先不要重启,根据提示进入 chroot 环境,把刚才的软链接删掉,并重新建立软链接

rm boot #注意是 boot 不是 boot/
ln -s /usr/bootdir/boot /boot

配置 loader.conf

ee /boot/loader.conf

然后输入以下内容:

geli_ada1p3_keyfile0_load="YES"
geli_ada1p3_keyfile0_type="ada1p3:geli_keyfile0"
geli_ada1p3_keyfile0_name="/boot/ada1p3.key"
aesni_load="YES"
geom_eli_load="YES"
geom_eli_passphrase_prompt="YES"
vfs.root.mountfrom="ufs:/dev/ada1p3.eli"
kern.geom.label.gptid.enable="0"

保存退出,然后重启就可以了。


《“UEFI+GPT 纯 UFS 根分区加密安装 FreeBSD 教程(ZFS同样适用)”》 有 1 条评论

  1. walgreens cialis prices 的头像

    Saved as a favorite, I love your website!