Ubuntu 上未激活加密交换

Ubuntu 上未激活加密交换

如果我检查操作系统中交换分区的使用情况(Ubuntu 14.04)

$ cat /proc/swaps 
Filename                Type        Size    Used    Priority
$

我得到一个空结果。但这个分区实际上应该存在、命名/dev/sda6且大小为 8 GB。

$ sudo parted
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print free
Model: ATA Hitachi HTS54323 (scsi)
Disk /dev/sda: 320GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size        Type      File system    Flags
        32,3kB  1049kB  1016kB                Free Space
 1      1049kB  160GB   160GB       primary   ext4           boot
        160GB   160GB   1048kB                Free Space
 2      160GB   320GB   160GB       extended
 5      160GB   312GB   152GB       logical   ext4
 6      312GB   320GB   7997MB      logical
        320GB   320GB   352kB                 Free Space

在分区号 6 中,File system为空,应该改为linux-swap。这些分区是使用 Ubuntu 安装向导创建的。有什么不对?那么如何使用这 8 GB 空间作为交换分区呢?


根据评论中的要求,这是 的内容/etc/fstab

$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=bd20abfc-6ff1-4c3c-a77d-0e85f5c19af9 /               ext4    errors=remount-ro 0       1
# /home was on /dev/sda5 during installation
UUID=29599282-3815-4aa7-80ba-9058898e7a73 /home           ext4    defaults        0       2
# swap was on /dev/sda6 during installation
#UUID=c34d62e9-68e8-495a-869b-b107b5741c7e none            swap    sw              0       0
/dev/mapper/cryptswap1 none swap sw 0 0

在安装过程中,我选择加密我的主目录(然后我选择稍后进行加密,但我从未这样做过)。我也不记得交换的加密!我不需要加密的交换分区。

而且:

$ cat /etc/crypttab 
cryptswap1 UUID=c34d62e9-68e8-495a-869b-b107b5741c7e /dev/urandom swap,cipher=aes-cbc-essiv:sha256
$ free -m
             total       used       free     shared    buffers     cached
Mem:          3005       2082        922         42         46        534
-/+ buffers/cache:       1500       1504
Swap:            0          0          0

答案1

正如 Jan Henke 所提到的,这是一个已知错误适用于 Ubuntu 14.04(和 12.04)。如果在安装过程中用户选择加密其主分区,则交换分区也会被加密,但它会被加密。无法使用到操作系统。

mkswap由于感兴趣分区的加密,直接可能不起作用(如 Stephen Kitt 所建议)。

适用于我的系统的解决方案如下:

  1. 运行sudo fdisk -l并找到作为交换分区的分区。在本例中,/dev/sda6将使用。如果您发现另一个分区,请使用其名称而不是sda6在所有步骤中使用
  2. 将其名称与安装期间(即加密之前)用作交换分区的分区进行比较,如/etc/fstab行 (1) 中所示

    # swap was on /dev/sda6 during installation

    并确保它们是相同的。

  3. sudo -s然后umount /dev/sda6

  4. 跑步mkswap /dev/sda6。在输出中,应生成 UUID。

  5. 使用要运行的 UUID

    echo "RESUME=UUID=143c43d8-0a77-4d62-a7ae-f53a8e0229a9" > /etc/initramfs-tools/conf.d/resume

    (这里使用的UUID只是一个例子)。

  6. 跑步

    echo "cryptswap1 /dev/sda6 /dev/urandom swap,cipher=aes-cbc-essiv:sha256" > /etc/crypttab

  7. 跑步

    update-initramfs -u exit

  8. 重启。

重新启动后,验证您的系统是否确实使用交换分区。用cat /proc/swaps或检查它swapon -s。后一个命令的输出应如下所示:

Filename                                Type            Size    Used    Priority
/dev/mapper/cryptswap1                  partition       8787964 0       -1

这个解决方案来自这个链接。我根据 Stackexchange 指南在这里完全重写了它。


/etc/fstab(1) 在我的问题中,我发布了我的文件的所有内容。

答案2

这是 Ubuntu 上加密交换的一个众所周知的问题。在默认设置中,通常无法在启动时安装交换区。

如果我没记错的话,您可以将noauto选项添加到 中的交换条目/etc/fstab,然后编辑/etc/rc.local并将这些行添加到其中(在return 0最后之前,保留这一点很重要)

sleep 1
swapon /dev/mapper/cryptswap1

这对我有用,但我不确定是否需要重新创建交换分区。我也不再使用 Ubuntu,所以上面的解决方案是我也受到这个问题影响时的记忆。

答案3

您需要执行以下命令:

# mkswap <Your_Swap_Partition>
# swapon <Your_Swap_Partition>

您刚刚创建了分区,但尚未使用文件系统类型进行格式化。

相关内容