交换不使用加密的家庭干净14.04安装工作
更新3:
我决定从头开始重新安装系统以移除任何旧的残骸,因为我在升级后遇到了一些其他问题。 但是,这个问题仍然存在。
在全新安装中,选择使用“encrypted home”进行安装会导致加密交换配置中断。
更新2:
我修复了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
但是在重新启动交换失败后,它再次看起来像这样:
$ 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
我现在的猜测是,当将磁盘设置为加密时,linux不再识别分区类型,因此不会正确加载它,导致它没有注册它的UUID,因此cryptswap无法找到它导致失败。 但我不知道如何解决它..
更新的问题:
进一步的测试显示我可以通过运行$ mkswap / dev / sda5来获得交换和运行
然后使用正确的UUID更新/ etc / crypttab并按照此处概述的步骤操作: 如何设置加密的交换文件?
但是当我重新启动计算机时问题仍然存在,我运行时不会出现/ dev / sda5
$ ls -l /dev/disk/by-uuid/
如果我做:
$ cfdisk /dev/sda
我收到以下错误:
FATAL ERROR: Bad logical partition 6: enlarged logical partitions overlap Press any key to exit cfdisk
使用它打开磁盘时,图形“磁盘”实用程序不会抱怨任何错误。
$ 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
原始问题:
在升级到14.04(从13.04开始)之后,我的计算机一直在经历严重的减速,当跑步时我注意到kswap0占用了大量的cpu时间。 我也注意到我没有任何交换空间!
$ sudo swapon -a swapon: /dev/mapper/cryptswap1: stat failed: No such file or directory
我的加密交换设置似乎有些问题(甚至不知道我有一个)
$ 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
看着我的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). # # # / 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
我的猜测是sda5的设置有问题,但我不知道如何修复它,因为它设置为加密。 将不胜感激如何继续前进。
已知错误
有一个错误(见下文),一旦数据被写入,就会覆盖分区的UUID
。 因此,您无法使用UUID
引用要用于加密交换的分区。
这些天,几乎没有使用交换空间。 在我的机器上,交换仅在我打开第40个选项卡时使用。 当我没有交换时,突然我的电脑开始滞后,浏览器自行关闭。 或者在Chromium
浏览器的情况下,很多标签会突然“死”。
出于这个原因,在/etc/crypttab
引用/dev/disk/by-uuid/
似乎有效,但是只要实际使用了交换空间,它就会覆盖UUID
因为整个分区都是用于加密数据存储。
轻松修复
简单的解决方法是在/etc/crypttab
引用设备的交换分区,例如:
cryptswap1 /dev/sda5 /dev/urandom swap,cipher=aes-cbc-essiv:sha256
警告:这在笔记本电脑上可能是安全的(我这样使用它),但是如果你在带有可交换驱动器的桌面上或者有其他原因需要更改驱动器/分区布局,你不希望这样做,作为一个正常的存储分区可能会突然用于交换。
注意:您需要重新启动才能使此更改生效,因为只有在启动时才会创建/dev/mapper/cryptswap1
。
正确修复
解决此问题的正确方法是确保存储UUID
的原始分区的部分不会被加密的交换数据覆盖,因此在重新启动时它仍然存在。 但是,我不确定UUID
的写入位置和占用的字节数。 你可以自担风险,测试它如下:
cryptswap1 UUID=abe3c568-c8fd-4dfb-b8e9-0520d442dd61 /dev/urandom swap,offset=36,cipher=aes-cbc-essiv:sha256
注意offset=36
。
如果您有一个Ubuntu One帐户登录并在Launchpad上转到Bug#1310058并选择(或点击此处): “此bug也会影响我”,因此该bug将获得“流行度”并且更容易被修复。
更新2014-10-27
我也偶然发现了这一点。 没有经过我的validation。 它看起来像offset
技巧,有更多的冗长和关于重建破坏的交换的评论。
https://bugs.launchpad.net/ubuntu/+source/ecryptfs-utils/+bug/1310058/comments/22
我在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
只需使用未加密的交换
…并保持/家庭加密
我在这里尝试了其他一些解决方案。 即使它们在热重启后继续工作,最终它们在关机和冷启动后都会失败。
这告诉我们实际上是在处理双重错误:
- 交换驱动器的UUID被加密系统覆盖,并且
- 引导期间存在超时问题。
这些想法也反映在对Launchpad提交的相关错误的评论中。 但是,随着从Upstart到systemd的未决移动,解决当前LTS系统上的错误的工作很少。
在这一点上,我想到了以下想法:
- 在系统安装期间,我要求只加密我的
\home
分区,没有别的。 - 没有加密交换分区所涉及的风险相当有限。
- 由Canonical来清理他们的行为。 我将不再浪费时间。
所以,这是我的解决方案, 将交换恢复为正常的,未加密的交换,而无需重新安装整个操作系统。
- 如果你还没有这样做,请安装
blkid
:$ sudo apt-get install blkid
- 编辑
/etc/crypttab
并删除整个cryptswap1
行:$ sudo nano /etc/crypttab
- 从系统设置菜单启动GParted。
- 您将看到带有感叹号的分区。 这应该是错误的交换分区。 仔细选择它并将其重新格式化为
linux-swap
分区。 应用此操作后,将通知您已恢复的正常交换分区的新UUID。 您将有机会保存此信息。 如果不这样做,请知道您始终可以使用blkid
从命令行检索新的UUID:$ sudo blkid
-
现在,是时候将
/etc/fstab
恢复到昔日的辉煌:$ sudo nano /etc/fstab
- 删除包含对
/dev/mapper/cryptswap1
的引用的整行。 - 通过删除
UUID=...
前面的哈希#
来取消注释旧的swap
行。 - 现在,将旧的UUID替换为之前获得的新UUID。
- 通过按Ctrl + O写出文件,然后使用Ctrl + X退出
nano
。
- 删除包含对
- 完成所有这些后,您就可以开始使用新的未加密交换:
$ sudo swapon -a
- 此解决方案在热重启和冷启动关闭后都能够存在。
看看这个 。 我通过简单地用/ etc / crypttab中的/ dev / sda3替换UUID = …来解决这个问题。
我有这个问题, 问题332625的人也是如此 。 挂起和重新启动的某些组合会丢失交换分区的UUID(如/ etc / fstab中的注释所示,请使用sudo blkd
确认),因此/ etc / crypttab中使用该UUID作为加密交换的行将失败。
我没有运气切换/ etc / crypttab来使用分区的/dev
名称(在你的情况下为/ dev / sda6 )或dev/disk/by-id/
name而不是消失的UUID。
遗憾的是,放弃加密交换是最简单,也是最好的解决方案。