如何在具有镜像 RAID 的 FreeBSD 11 Root-On-ZFS 系统上更改 GELI 密码?

如何在具有镜像 RAID 的 FreeBSD 11 Root-On-ZFS 系统上更改 GELI 密码?

如何在具有镜像 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

现在一切都恢复正常,您应该对第二个驱动器应用相同的步骤。

交换驱动器

在原始安装中,每次启动时都会为您的交换驱动器生成一个新的随机密钥,之后会被遗忘,因此无需进行任何更改(您的密码不会在那里使用)。

危险!

请注意:虽然镜像中有一个磁盘,但当剩余磁盘发生故障时,它很容易丢失数据。您可以通过向镜像添加临时的第三个磁盘来避免这种情况,然后等到它重新镀银后再进行密钥更改,并在完成整个过程后再次将其移除。

相关内容