当前位置: 首页>>技术教程>>正文


交换不使用加密的家庭干净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并按照此处列出的步骤操作:How do I setup an encrypted swap file?

然而,当我重新启动计算机时问题仍然存在,我运行时不会出现/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

使用它打开磁盘时,图形化”Disks”实用程序不会抱怨任何错误。

$ 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).
#
# <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

我的猜测是sda5的设置有问题,但我不知道如何修复它,因为它设置为加密。将不胜感激如何继续前进。

最佳解决方法

已知错误

有一个错误(见下文),一旦数据被写入,就会覆盖分区的UUID。因此,您无法使用UUID引用要用于加密交换的分区。

这些天,几乎没有使用交换空间。在我的机器上,交换仅在我打开第40个选项卡时使用。当我没有交换时,突然我的电脑开始滞后,浏览器自行关闭。或者在Chromium浏览器的情况下,很多标签会突然’die’。因此,在/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帐户登录并转到Bug #1310058 on Launchpad并选择(或单击此处):“This bug affects me too”,那么该错误将获得’popularity’并且更容易被修复。


更新2014-10-27

我也偶然发现了这一点。我没有核实过。看起来像offset的伎俩有更多的冗长和关于重建破坏的交换的评论。

https://bugs.launchpad.net/ubuntu/+source/ecryptfs-utils/+bug/1310058/comments/22

次佳解决方法

我在Ubuntu 14.04中遇到了同样的问题并遇到了这个问题;提供突变体的this link对我来说效果很好。我使用了/dev/disk/by-id引用而不是/dev /sdXY,因为该引用并不总是指向同一个物理分区。我的/etc/crypttab结果如下:

cryptswap1 /dev/disk/by-id/wwn-0x500...-part6 /dev/urandom swap, cipher=aes-cbc-essiv:sha256

第三种解决方法

只需使用未加密的交换

…并保持/家庭加密

我在这里尝试了其他一些解决方案。即使他们在热重启后继续工作,最终他们在关机和冷启动后都失败了。

这告诉我们我们实际上正在处理一个双重错误:

  1. 交换驱动器的UUID被加密系统覆盖,并且

  2. 引导期间存在超时问题。

这些想法也反映在对相关bug filed at Launchpad的评论中。然而,随着从Upstart到systemd的未决移动,很少解决当前LTS系统上的错误。

在这一点上,我想到了以下想法:

  1. 在系统安装期间,我要求只加密我的\home分区,没有别的。

  2. 没有加密交换分区所涉及的风险相当有限。

  3. 由Canonical来清理他们的行为。我将不再浪费时间。

所以,这是我的解决方案,将交换恢复为正常的,未加密的交换,而无需重新安装整个操作系统。

  1. 如果您还没有这样做,请安装blkid$ sudo apt-get install blkid

  2. 编辑/etc/crypttab并删除整个cryptswap1行:$ sudo nano /etc/crypttab

  3. 从系统设置菜单启动GParted。

  4. 您将看到带有感叹号的分区。这应该是错误的交换分区。仔细选择它并将其重新格式化为linux-swap分区。应用此操作后,将通知您已恢复的正常交换分区的新UUID。您将有机会保存此信息。如果不这样做,请知道您始终可以使用blkid从命令行检索新的UUID:$ sudo blkid

  5. 现在,是时候将/etc/fstab恢复到昔日的辉煌:$ sudo nano /etc/fstab

    • 删除包含对/dev/mapper/cryptswap1的引用的整行。

    • 通过删除UUID=...前面的哈希#来取消注释旧的swap行。

    • 现在,将旧的UUID替换为之前获得的新UUID。

    • 通过点击Ctrl + O写出文件,并用Ctrl + X退出nano

  6. 完成所有这些后,您就可以开始使用新的未加密交换:$ sudo swapon -a

  7. 这种解决方案在热重启和冷启动关机后都能存活。

第四种方法

看看this。我通过简单地用/etc /crypttab中的/dev /sda3替换UUID = …来解决这个问题。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6745.html,未经允许,请勿转载。