ajn*_*ajn 28 encryption partitioning swap 14.04 cryptswap
我决定从头开始重新安装系统以删除任何旧的残留物,因为我在升级后也遇到了一些其他问题。然而,这个问题一直存在。
在全新安装中,选择使用“加密主页”进行安装会导致加密交换配置损坏。
我修复了 cfdisk 抱怨的分区顺序,但他的问题仍然存在。交换现在在 /dev/sda6 上,我可以按如下方式启动并运行它:
~$ sudo mkswap /dev/sda6
Setting up swapspace version 1, size = 7998460 KiB
no label, UUID=18881d0f-d9ec-43be-a23f-0cbd78ea6d22
$sudo nano /etc/crypttab # Update crypttad with new UUID
$ sudo /etc/init.d/cryptdisks reload
* Stopping remaining crypto disks...
* cryptswap1 (stopped)... [ OK ]
* Starting remaining crypto disks...
* cryptswap1 (starting)..
* cryptswap1 (started)... [ OK ]
$ sudo swapon -a
$ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 May 11 09:04 08b07f88-6da5-4b40-b062-42b3bb1c5f00 -> ../../sda3
lrwxrwxrwx 1 root root 10 May 11 09:08 18881d0f-d9ec-43be-a23f-0cbd78ea6d22 -> ../../sda6
lrwxrwxrwx 1 root root 10 May 11 09:04 19aa372c-05c8-4226-8f09-c54e5566e816 -> ../../sda5
lrwxrwxrwx 1 root root 10 May 11 09:04 A800B16E00B143DA -> ../../sda1
lrwxrwxrwx 1 root root 10 May 11 09:04 D28230E68230D129 -> ../../sda2
lrwxrwxrwx 1 root root 10 May 11 09:08 fcc8c419-8fec-4d4d-b55e-9e4c3b04d21d -> ../../dm-0
Run Code Online (Sandbox Code Playgroud)
但是在重新启动后交换无法激活,它再次看起来像这样:
$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 May 11 09:12 08b07f88-6da5-4b40-b062-42b3bb1c5f00 -> ../../sda3
lrwxrwxrwx 1 root root 10 May 11 09:12 19aa372c-05c8-4226-8f09-c54e5566e816 -> ../../sda5
lrwxrwxrwx 1 root root 10 May 11 09:12 A800B16E00B143DA -> ../../sda1
lrwxrwxrwx 1 root root 10 May 11 09:12 D28230E68230D129 -> ../../sda2
Run Code Online (Sandbox Code Playgroud)
我目前的猜测是,当将磁盘设置为加密时,linux 不再识别分区类型,因此无法正确加载它,导致它无法注册它的 UUID,因此 cryptswap 找不到它导致失败。但我不知道如何解决它..
进一步的测试表明,我可以通过运行 $ mkswap /dev/sda5 来启动并运行交换
然后使用正确的 UUID 更新 /etc/crypttab 并按照此处概述的步骤操作: 如何设置加密的交换文件?
但是,当我重新启动计算机时问题仍然存在,运行时没有出现 /dev/sda5
$ ls -l /dev/disk/by-uuid/
Run Code Online (Sandbox Code Playgroud)
如果我做:
$ cfdisk /dev/sda
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
FATAL ERROR: Bad logical partition 6: enlarged logical partitions overlap
Press any key to exit cfdisk
Run Code Online (Sandbox Code Playgroud)
图形“磁盘”实用程序在使用它打开磁盘时不会抱怨任何错误。
$ sudo fdisk -l
Disk /dev/sda: 256.1 GB, 256060514304 bytes
255 heads, 63 sectors/track, 31130 cylinders, total 500118192 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x619aebf1
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 206847 102400 7 HPFS/NTFS/exFAT
/dev/sda2 206848 100870143 50331648 7 HPFS/NTFS/exFAT
/dev/sda3 191397888 192397311 499712 83 Linux
/dev/sda4 192399358 500117503 153859073 5 Extended
/dev/sda5 484118528 500117503 7999488 82 Linux swap / Solaris
/dev/sda6 192399360 484118527 145859584 83 Linux
Partition table entries are not in disk order
Run Code Online (Sandbox Code Playgroud)
升级到 14.04(从 13.04 开始)后,我的计算机出现了严重的减速,在运行 top 时我注意到 kswap0 占用了大量 CPU 时间。我还注意到我没有任何交换空间!
$ sudo swapon -a
swapon: /dev/mapper/cryptswap1: stat failed: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我的加密交换设置似乎有问题(甚至不知道我有一个)
$ cat /etc/crypttab
cryptswap1 UUID=abe3c568-c8fd-4dfb-b8e9-0520d442dd61 /dev/urandom swap,cipher=aes-cbc-essiv:sha256
$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 May 6 11:00 08b07f88-6da5-4b40-b062-42b3bb1c5f00 -> ../../sda3
lrwxrwxrwx 1 root root 10 May 6 11:00 19aa372c-05c8-4226-8f09-c54e5566e816 -> ../../sda6
lrwxrwxrwx 1 root root 10 May 6 11:00 A800B16E00B143DA -> ../../sda1
lrwxrwxrwx 1 root root 10 May 6 11:00 D28230E68230D129 -> ../../sda2
Run Code Online (Sandbox Code Playgroud)
看着我的 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/sda6 during installation
UUID=19aa372c-05c8-4226-8f09-c54e5566e816 / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda3 during installation
UUID=08b07f88-6da5-4b40-b062-42b3bb1c5f00 /boot ext2 defaults 0 2
# swap was on /dev/sda5 during installation
#UUID=abe3c568-c8fd-4dfb-b8e9-0520d442dd61 none swap sw 0 0
/dev/mapper/cryptswap1 none swap sw 0 0
Run Code Online (Sandbox Code Playgroud)
我的猜测是 sda5 的设置有问题,但我不知道如何修复它,因为它已设置为加密。将不胜感激有关如何进行的一些帮助。
Red*_*dro 16
有一个错误(见下文),UUID一旦数据写入分区,它就会覆盖分区。因此,您不能使用UUID来引用用于加密交换的分区。
如今,几乎从未使用过交换空间。在我的机器上,仅当我打开第 40 个标签时才使用交换。当我没有交换时,突然我的计算机开始滞后并且浏览器自行关闭。或者在Chromium浏览器的情况下,很多标签会突然“死亡”。
出于这个原因,引用/dev/disk/by-uuid/您/etc/crypttab可能似乎是工作了一段时间,但只要你的交换空间实际使用,它将覆盖UUID,因为整个分区用于加密数据存储。
简单的解决方法是在您的 中按设备引用交换分区/etc/crypttab,例如:
cryptswap1 /dev/sda5 /dev/urandom swap,cipher=aes-cbc-essiv:sha256
Run Code Online (Sandbox Code Playgroud)
警告:这在笔记本电脑上可能是安全的(我像这样使用它),但是如果您使用的是带有可交换驱动器的台式机或有其他原因需要更改驱动器/分区布局,您不想这样做,因为正常的存储分区可能会突然用于交换。
注意:您需要重新启动才能使此更改生效,因为只有在启动时才会/dev/mapper/cryptswap1创建。
解决此问题的正确方法是确保存储 的原始分区部分UUID不会被加密交换数据覆盖,因此在重新启动时它仍然存在。但是,我不确定UUID写入的位置以及占用的字节数。您可以自行承担风险,像这样测试它:
cryptswap1 UUID=abe3c568-c8fd-4dfb-b8e9-0520d442dd61 /dev/urandom swap,offset=36,cipher=aes-cbc-essiv:sha256
Run Code Online (Sandbox Code Playgroud)
请注意offset=36.
如果您有Ubuntu One帐户,请登录并转到Launchpad上的错误 #1310058并选择(或单击此处):“此错误也影响我”,因此该错误将获得“流行度”并且更容易得到修复。
我也偶然发现了这一点。未经本人验证。它看起来像offset一个更冗长的技巧和关于重建损坏的交换的评论。
https://bugs.launchpad.net/ubuntu/+source/ecryptfs-utils/+bug/1310058/comments/22
小智 9
我在 Ubuntu 14.04 中遇到了同样的问题,并遇到了这个线程;突变体提供的这个链接对我来说效果很好。我使用了/dev/disk/by-id引用而不是 /dev/sdXY,因为该引用并不总是指向同一个物理分区。我的/etc/crypttab结果是:
cryptswap1 /dev/disk/by-id/wwn-0x500...-part6 /dev/urandom swap, cipher=aes-cbc-essiv:sha256
Run Code Online (Sandbox Code Playgroud)
...并保持 /home 加密
我尝试了这里建议的其他几个解决方案。尽管它们在热重启后继续工作,但最终它们在关机和冷重启后都失败了。
这告诉我们我们实际上正在处理一个双重错误:
这些想法也反映在对Launchpad 上提交的相关错误的评论中。然而,随着从 Upstart 到 systemd 的转移,目前的 LTS 系统上的错误几乎没有被解决。
此时,我的脑海里闪过以下想法:
\home分区,没有别的。因此,这是我的解决方案,可以将交换恢复为正常的未加密交换,而无需重新安装整个操作系统。
blkid:$ sudo apt-get install blkid/etc/crypttab并删除整cryptswap1行:$ sudo nano /etc/crypttablinux-swap分区。应用此操作后,您会被告知恢复的普通交换分区的新 UUID。您有机会保存此信息。如果不这样做,请知道您始终可以使用以下命令从命令行检索新的 UUID blkid:$ sudo blkid现在,是时候恢复/etc/fstab昔日的辉煌了:$ sudo nano /etc/fstab
/dev/mapper/cryptswap1。swap除去散线#前面UUID=...。nano使用Ctrl+退出X。$ sudo swapon -a