如何在具有镜像 RAID 的 FreeBSD 11 Root-On-ZFS 系统上更改 GELI 密码?
交换设备也被镜像和加密。
我有 /dev/ada0p5.eli /dev/ada1p5.eli 和 /dev/mirror/swap.eli 设备。
谢谢。
答案1
在加密磁盘上安装有 ZFS 的 vanilla FreeBSD 11 中,您只能在关闭镜像设备时更改数据磁盘的加密密钥。
数据磁盘:
在原始安装中,加密设备是 da0p3.eli 和 da1p3.eli,对于您来说,您必须对您拥有的设备(ada0p5.eli、ada1p5.eli)重复该过程:
$ zpool status
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
da0p3.eli ONLINE 0 0 0
da1p3.eli ONLINE 0 0 0
$ zpool offline tank da0p3.eli # take one drive off the mirror
$ zpool status
NAME STATE READ WRITE CKSUM
tank DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
7324435067442038086 OFFLINE 0 0 0 was /dev/da0p3.eli
da1p3.eli ONLINE 0 0 0
$ geli detach da0p3.eli # detach encryption
$ geli setkey da0p3 # set new encryption pass phrase
Enter passphrase:
Enter new passphrase:
Reenter new passphrase:
$ geli attach da0p3 # reattach with new pass phrase
Enter passphrase:
$ zpool online tank da0p3.eli # take the drive online again to the mirror
现在,等待驱动器再次重新同步。如果中间没有太多写入,这个过程应该很快,驱动器的内容没有被更改,因为主密钥仍然相同,只有其密码发生了变化:
$ zpool status
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
da0p3.eli ONLINE 0 0 0
da1p3.eli ONLINE 0 0 0
现在一切都恢复正常,您应该对第二个驱动器应用相同的步骤。
交换驱动器
在原始安装中,每次启动时都会为您的交换驱动器生成一个新的随机密钥,之后会被遗忘,因此无需进行任何更改(您的密码不会在那里使用)。
危险!
请注意:虽然镜像中有一个磁盘,但当剩余磁盘发生故障时,它很容易丢失数据。您可以通过向镜像添加临时的第三个磁盘来避免这种情况,然后等到它重新镀银后再进行密钥更改,并在完成整个过程后再次将其移除。