我安装了 Kubuntu 14.04,主目录已加密。虽然我在安装过程中设置了交换空间,但安装后交换空间却不存在。很多人都遇到过这种情况,似乎某个地方有错误。我谷歌了一下,找到了解决方案 这里。
我按照那里的步骤操作,省略了与恢复有关的步骤,因为无论如何在我的安装中它被禁用了。所以我基本上做了:
sudo swapoff -a (turns off swap)
comment existing swap configuration in /etc/crypttab
comment existing swap configuration in /etc/fstab
re-format swap partition with gparted as linux-swap
sudo mkswap /dev/sdXX
sudo swapon /dev/sdXX
sudo ecryptfs-setup-swap
然后我有一个可以工作的交换分区,我很高兴,直到我重新启动笔记本电脑,一切又回到原点。使用 gparted 查看分区,它显示(以前的)交换分区的文件系统未知,不用说,我没有任何可用的交换空间。
所以,现在我的问题是:为什么文件系统格式(如 linux-swap)在重启后无法保留?我能做些什么吗?
如果我执行 blkid,交换分区根本不会显示,所以我的问题似乎与这个问题。
编辑:仍在努力,因此我再次执行了上述过程,之后 /etc/crypttab 如下所示:
cryptswap1 UUID=xxxx /dev/urandom swap,cipher=aes-cbc-essiv:sha256
加上一些被注释掉的行。并且 /etc/fstab 包含此行:
/dev/mapper/cryptswap1 none swap sw 0 0
但是,新生成的两条线路看起来与前两次生成的线路完全相同(UUID 除外)。因此,我并不指望它在重启后还能保留下来。Gparted 现在显示我使用的分区为 linux-swap。(重启前)blkid 还给出了以下线路:
/dev/sda7: UUID="xxxx" TYPE="swap"
我测试了交换并且它可以工作,即我启动了一个使用大量内存的程序并检查了系统监视器中加载到交换中的内存量。
编辑 2:事实证明 3 并不是解决此问题的神奇数字。两个文件的内容没有改变,blkid 不再显示带有 /dev/sda7 的行,并且 gparted 将交换分区显示为“未知”。
任何关于我可以查看的输出或我可以尝试的其他操作的建议都非常受欢迎。我目前的解决方法是不重新启动,但有时当有更新时,我的笔记本电脑确实想要重新启动。
编辑 3:真的没有其他办法可以解决这个问题吗?我可以尝试哪些命令?我可以查看哪些输出?
答案1
重启后不会发生这种情况。完成设置(运行ecryptfs-setup-swap
)后,返回gparted
并重新加载表格并打开终端并运行:sudo fdisk -l /dev/sda
。您会发现该分区仍然有Id 83
Linux 交换并成为未知格式。
这是为什么呢?!它已经变成加密分区了。
在/etc/fstab
:
- 旧的交换分区已被注释。
已插入新映射:
/dev/mapper/cryptswap1 none swap sw 0 0
这可以。
在/etc/crypttab
:
添加新行来映射交换:
cryptswap1 UUID=xxxx /dev/urandom swap,cipher=aes-cbc-essiv:sha256
但这里有点不对劲,加密分区有UUID(非加密)吗?!!!
因此直接设置 dev 路径,如本例所示:
cryptswap1 /dev/sdXX /dev/urandom swap,cipher=aes-cbc-essiv:sha256
重新启动后,Swap 将会打开。
顺便说一句,这应该被报告为一个错误。ecryptfs-setup-swap
应该使用设备路径而不是 uuid。
更新:我找到了相同的已回答问题,其中也包括错误报告。
offset=
它通过在 crypttab 选项中添加来包含规范答案。
答案2
您可以从终端尝试这个:
sudo -i
umount -a
gedit /etc/fstab
然后在底部输入:
uuid name mount type
xxxxx swap / sw sw errors=noremount 0
然后在终端中输入:
mount -a
然后使用 gpart,并设置交换驱动器 swap /。这样它可能可以正常工作。