我已经在 ZFS 上安装了 Ubuntu 20.10 并启用了加密,现在我想更改用于启动计算机的密码。
我该怎么做呢?
$ zfs get keylocation,encryption,keyformat rpool
NAME PROPERTY VALUE SOURCE
rpool keylocation file:///run/keystore/rpool/system.key local
rpool encryption aes-256-gcm -
rpool keyformat raw -
答案1
据我所知,正确答案是
$ sudo cryptsetup luksAddKey /dev/zvol/rpool/keystore
添加新密码
$ sudo cryptsetup luksRemoveKey /dev/zvol/rpool/keystore
并删除旧的
答案2
这比这容易多了。
zfs change-key -o keyformat=passphrase rpool
答案3
如上所述,Ubuntu 20.04-21.10 在 zfs 卷上使用 luks 卷,该卷是池存储用于解锁 zfs 池的 256 位密钥池
如果您有密码:
cryptsetup luksChangeKey /dev/zvol/rpool/keystore 输入要更改的密码: 输入新密码: 验证密码:
如果你不是有密码:
你要做的是将此密钥存储在不同的 已知密码
- 如果 luks 卷已打开,则有可能
- 如果 luks 卷未打开,并且您没有系统密钥文件,游戏结束了,重新安装
- 我们无法更改或删除密码,但可以创建一个具有已知密码的新 luks 容器并存储可访问的系统密钥那里
该密钥可以在正在运行的系统上显示:
od --address-radix=x --format=x1 /run/keystore/rpool/system.key 0000000 4a 19 54 d0 b6 ac 38 a7 0d 41 f3 02 c7 05 db 82 0000010 03 18 d5 d5 cb dc 3c e9 71 0e b6 a8 1b 87 25 68 0000020
基本上这是应该做的:
zfs 创建 -oencryption=off -V500m rpool/keystore2 cryptsetup luksFormat /dev/zvol/rpool/keystore2 警告! 这将不可撤销地覆盖 /dev/zvol/rpool/keystore2 上的数据。 你确定吗?(用大写字母输入‘是’):是 输入 /dev/zvol/rpool/keystore2 的密码: 验证密码: cryptsetup 打开 /dev/zvol/rpool/keystore2 k2 输入 /dev/zvol/rpool/keystore2 的密码: mkfs --type ext4 /dev/mapper/k2 mkdir --parents --mode=700 /mnt/f/k 挂载 /dev/mapper/k2 /mnt/f/k cp --archive --no-clobber /run/keystore/rpool/system.key /mnt/f/k 卸载/mnt/f/k cryptsetup 关闭 k2
从具有适当安装的其他安装(如 Ubuntu 桌面 USB 介质)重新启动文件系统命令,然后类似:
zpool 导入 池:rpool 编号:2704475622193776801 # 如果你已经有一个 rpool,可能会列出一些有用的 ID zpool 导入 2704475622193776801 rpool2 zfs 重命名 rpool2/keystore rpool2/keystore-nopwd zfs 重命名 rpool2/keystore2 rpool2/keystore
再次掌管一切