加密交换分区未显示在 /dev/mapper 中

Byt*_*der 4 encryption swap cryptsetup

我按照以下步骤将/dev/sda4(UUID 5da9c956-e544-47e3-bb8e-fe18d9531b2f)上的正常交换转换为 16.04 上的加密交换分区:

但是,这最后一步给了我以下错误消息:

swapon: stat of /dev/mapper/cryptswap failed: No such file or directory
Run Code Online (Sandbox Code Playgroud)

确实,加密的设备文件似乎没有被创建:

$ ls -la /dev/mapper/
total 0
drwxr-xr-x  2 root root      60 Aug 10 18:50 .
drwxr-xr-x 20 root root    4780 Aug 10 20:16 ..
crw-------  1 root root 10, 236 Aug 10 18:50 control
Run Code Online (Sandbox Code Playgroud)

这里出了什么问题,如何让我的加密交换分区工作?

Kaz*_*lfe 5

您的/etc/crypttab文件有问题导致所有内容都向南,并且您的交换分区有问题。

首先,您需要mkswap用于加密交换文件的分区。cryptdisk 实用程序希望您的分区被交换,因此您应该保持它如下:

sudo mkswap /dev/sda4
Run Code Online (Sandbox Code Playgroud)

现在,请注意这将更改分区的 UUID。使用以下命令获取新的,并记下它:

sudo blkid /dev/sda4
Run Code Online (Sandbox Code Playgroud)

现在,我们需要处理手头更大的问题:您的/etc/crypttab文件。将其替换为以下内容:

# <target name>  <source device>        <key file>     <options>
cryptswap        UUID=<Your new UUID>   /dev/urandom   swap,offset=1024
Run Code Online (Sandbox Code Playgroud)

重新启动系统,你应该有一个有效的交换!


cryptswap当前已设置为将整个分区重新创建为加密交换。这不是 Good™,因为我们需要保留 UUID。通过将交换偏移 1024 个块,我们保留了关键文件系统信息,包括 UUID。