手动更改文件“crypttab”和“fstab”时是否需要“cryptsetup”?

手动更改文件“crypttab”和“fstab”时是否需要“cryptsetup”?

我正在设置一个新的 Linux 主机,并希望有一个加密的 SWAP 分区。该文件/etc/crypttab丢失了,所以我安装了包cryptsetup,创建了该文件。之后,我只需使用 VI 手动编辑该文件,然后/etc/fstab重新启动,加密的 SWAP 就可用了。我更新了整个系统,结果出现了以下错误消息:

cryptsetup: ERROR: Couldn't resolve device rpool/ROOT/pve-1
cryptsetup: WARNING: Couldn't determine root device
cryptsetup: WARNING: The initramfs image may not contain cryptsetup binaries
    nor crypto modules. If that's on purpose, you may want to uninstall the
    'cryptsetup-initramfs' package in order to disable the cryptsetup initramfs
    integration and avoid this warning.

需要注意的是,我没有加密任何其他分区或任何东西,只是 SWAP。所以我只是尝试了一下,并成功重新启动。之后,我尝试按照错误消息的操作并删除了软件包cryptsetup-initramfs,这迫使我也删除了软件包cryptsetup本身。剩下的只有cryptsetup-bincryptsetup-run,之后我通过它们删除了apt autoremove

让我感到疑惑的是:在最后一次重启并cryptsetup删除了所有这些文件后,我似乎仍然加密了 SWAP。我预计 SWAP 会因为缺少 而不可用cryptsetup

root@pve:~# blkid | grep swap
/dev/mapper/swap_crypt: UUID="ccb3e6b9-ccaa-4c38-b34b-aa434134023c" TYPE="swap"

所以,我猜cryptsetup真的只是顾名思义,设置一下?但之后运行时就不再需要了?所以/etc/crypttab从一开始就使用 VI 手动创建也可以,cryptsetup根本不需要安装?

当然,这只是因为我的用例不需要处理initramfs等。不过,我总觉得cryptsetup在启动过程中也需要正确设置,例如 SWAP。

答案1

我敢打赌你还有一个 libcryptsetup 包:

https://packages.ubuntu.com/hirsute/libcryptsetup12

Systemd 有自己的内置可执行文件,它利用库来处理 crypttab 条目:

https://github.com/systemd/systemd/blob/main/src/cryptsetup/cryptsetup.c

https://www.freedesktop.org/software/systemd/man/[电子邮件保护]

PS 值得一提的是,如果您有一个加密的根文件系统,并且您的 initramfs init 不是 systemd,那么您仍然需要 cryptsetup-bin 等来打开/解锁加密块设备。

相关内容