新的 Ubuntu 14.04 上未使用交换分区

新的 Ubuntu 14.04 上未使用交换分区

当使用的内存达到最大值时,我的系统会冻结,我不知道为什么。原来交换区未被使用。这是我的分区表:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63       80324       40131   de  Dell Utility
/dev/sda4           81918   909195263   454556673    5  Extended
/dev/sda5       512121690   909195263   198536787   83  Linux
/dev/sda6           81920     3987455     1952768   83  Linux
/dev/sda7         3989504   140705791    68358144   83  Linux
/dev/sda8       492589056   512120831     9765888   82  Linux swap / Solaris
/dev/sda9       140707840   492584959   175938560   83  Linux

交换分区未打开且未显示,df但它在磁盘实用程序中显示:

Filesystem             Size  Used Avail Use% Mounted on
udev                   1.9G  4.0K  1.9G   1% /dev
tmpfs                  392M  1.3M  391M   1% /run
/dev/sda7               65G   19G   43G  31% /
none                   4.0K     0  4.0K   0% /sys/fs/cgroup
none                   5.0M     0  5.0M   0% /run/lock
none                   2.0G   26M  1.9G   2% /run/shm
none                   100M   48K  100M   1% /run/user
/dev/sda6              1.9G   89M  1.7G   6% /boot
/dev/sda9              166G   47G  111G  30% /home
/home/my-user-name/.Private  166G   47G  111G  30% /home/my-user-name

在此处输入图片描述

$ sudo swapon -s
Filename                Type        Size    Used    Priority

您可以注意到,我的主分区已加密,但我尚未加密交换分区。

交换似乎在 /etc/fstab 中声明:

# swap was on /dev/sda8 during installation
#UUID=df55bf68-b824-4f21-83f3-dfa80a0b74ab none            swap    sw              0       0
/dev/mapper/cryptswap1 none swap sw 0 0

我想知道为什么它不工作以及如何修复它?

更新 似乎有一个已报告错误这个问题已在多个版本中存在,但 14.04 版尚未修复。

结果如下cat /etc/crypttab

cryptswap1 UUID=df55bf68-b824-4f21-83f3-dfa80a0b74ab /dev/urandom swap,cipher=aes-cbc-essiv:sha256

以及AB

$ sudo /etc/init.d/cryptdisks reload
 * Stopping remaining crypto disks...                                                                    [ OK ]
 * cryptswap1 (stopped)...                   
 * Starting remaining crypto disks...
 * cryptswap1 (skipped, device /dev/disk/by-uuid/df55bf68-b824-4f21-83f3-dfa80a0b74ab does not exist)... [fail]
                                                                                                         [ OK ]
$ sudo swapon -a
swapon: /dev/mapper/cryptswap1: stat failed: No such file or directory

基于大卫·福斯特的答案我照做了cat /dev/disk/by-uuid/,得到了 6 个 uuid。blkid -U每个的 did 和 non 是/dev/sda8交换应该所在的。我得到了 sda 的 1、5、6、7、9 和/dev/mapper/luks-****。我认为最后一个是我在安装过程中未动过的另一个加密分区(由 12.04 加密)。

我也尝试了以下回答. 也不起作用。

更新: 我最终重新格式化了分区并重新安装了系统。现在看起来运行正常。

答案1

cryptswap1 (skipped, device /dev/disk/by-uuid/df55bf68-b824-4f21-83f3-dfa80a0b74ab does not exist)

UUID=df55bf68-b824-4f21-83f3-dfa80a0b74ab当该条目生成时,无论卷有什么/etc/crypttab,都不再存在。

如何修复

  • 运行sudo swapoff -a以确保所有交换空间都已释放。 的输出swapon -s现在应为空(除了列标题行)。

  • 删除(或注释掉)有关交换/etc/fstab和的行/etc/crypttab。如果不确定,请进行备份。

  • 你说你想把交换放在 上/dev/sda8。忽略它的当前内容,以完成本说明的其余部分;将其视为垃圾数据。在此过程中,您将丢失所有数据sda8!如果您珍视这些数据,请进行备份!

  • 在 上设置新的交换空间/dev/sda8未加密或者加密

我之前的建议(请使用上面的建议)

由于原始设备(或原始dm-crypt设备)没有 UUID,因此您需要求助于其他设备标识符。内核名称(/dev/sd*和相关名称)在启动过程中并不稳定,因此最好的办法是找到 中的条目/dev/disk/by-id/,该条目链接到您想要的加密交换分区。根据我的经验,这些已经足够稳定了(除非内核或 udev 脚本发生变化)。

假设这/dev/sda8是加密交换分区的预期位置,您可以在输出中找到其基于 ID 的路径

ls -l /dev/disk/by-id/* | grep sda8

或者更详细地使用:

find -L /dev/disk/by-id -samefile /dev/sda8

您可以将其中一个结果用作条目的第二列crypttab

答案2

我认为您的 /etc/fstab 文件中存在错误。您的交换区没有挂载点。

改变线路

/dev/mapper/cryptswap1 none swap sw 0 0

/dev/mapper/cryptswap1 swap swap defaults 0 0

相关内容