如何以编程方式在启动时挂载 zfs?

如何以编程方式在启动时挂载 zfs?

我使用 zfs 加密了我的硬盘,运行 ubuntu 22.04。

我是个傻瓜,忘记了密码。不过,我很确定我的密码就在我所知道的约 300 个密码列表中。

当我启动时,我看到一个输入密码的字段,下面有文字“请解锁磁盘 keystore-rpool”

问题是,在达到最大尝试次数之前,我只能尝试输入密码 3 次。失败 3 次后,我看到一个终端显示以下错误:

command: mount -o zfsutil -t zfs rpool/ROOT/ubuntu_{redacted} /root//
message: zfs_mount_at() failed: encryption key not loadedzfs_mount_at() failed: encryption key not loadedmount: mounting rpool/ROOT/ubuntu_{redacted} on /root// failed: Permission denied
Error: 2

Failed to mount rpool/ROOT/ubuntu_{redacted} on /root//.
Manually mount the filesystem and exit

并且终端中的用户是(initramfs)。

当我尝试zfs_mount_at() failed: encryption key not loaded在此终端运行命令时,我立即收到与上述消息相同的错误。

这时我陷入了困境并被迫硬重启。

我的问题是:我可以编写一个脚本,以编程方式尝试列表中的 3 个密码,等到我可以再次尝试(不确定如何设置等待部分,目前我必须手动硬重启),然后尝试接下来的 3 个,直到密码成功?

任何帮助都将不胜感激,硬盘非常重要,我通过惨痛的经历学到了这个教训。

相关内容