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

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

  • 禁用旧的交换分区并用零覆盖它:

     sudo swapoff -a sudo dd if=/dev/zero of=/dev/sda4 bs=4M 
  • 安装cryptsetup

     sudo apt install cryptsetup 
  • 编辑/etc/crypttab以包含此内容:

     #     cryptswap UUID=5da9c956-e544-47e3-bb8e-fe18d9531b2f /dev/urandom swap 
  • 编辑/etc/fstab以删除旧的交换行并将其替换为以下内容:

     # cryptswap on /dev/sda4 configured in /etc/crypttab /dev/mapper/cryptswap none swap sw 0 0 
  • 重新加载cryptdisks配置:

     sudo service cryptdisks reload sudo service cryptdisks-early reload 
  • 启用新的加密交换:

     sudo swapon -a 

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

 swapon: stat of /dev/mapper/cryptswap failed: No such file or directory 

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

 $ 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 

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

你的/etc/crypttab文件有问题导致eveything向南,以及你的交换分区出现问题。

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

 sudo mkswap /dev/sda4 

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

 sudo blkid /dev/sda4 

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

 #     cryptswap UUID= /dev/urandom swap,offset=1024 

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


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