对于“ / dev / mapper / cryptswap1的磁盘驱动器尚未准备就绪或不存在”该怎么办?


39

在启动Ubuntu 12.04时,the disk drive for /dev/mapper/cryptswap1 is not ready yet or not present显示。为什么是这样?


您可能在安装过​​程中对主目录进行了加密,但未进行交换。如果RAM不足,可能会降低系统速度,否则应注意其他事项。
danijelc

Answers:


36

此错误消息表明系统无法使用其加密的交换分区。

无法使用交换可能会导致速度变慢,尤其是在您的计算机没有安装太多RAM的情况下。

假设系统正在启动,您应该可以轻松解决此问题。

如果在启动CD / DVD或USB闪存驱动器以安装Ubuntu时发生这种情况,则假定安装仍在进行,则可以忽略它。创建后,已安装的系统可能会或可能不会出现相同的问题-如果确实存在,则可以在已安装的系统中解决该问题。

如果这是在安装在硬盘上的系统上发生的,则您的系统可能仍然可以正常运行,但是修复它是一个好主意-如果您有交换分区(或交换文件),则可以使用它。

大多数具有swap的Ubuntu系统都有一个swap分区。假设是这种情况,此博客文章中描述的技术可能会有所帮助:

用我自己的话,这是一个摘要,其中包含一些可能对新手有用的其他信息。我建议同时查看该帖子(假设它仍然可以访问),因为其中包含一些示例和其他为简洁起见而忽略的信息。

  1. 打开终端窗口(Ctrl+ Alt+ T)或虚拟控制台,然后运行:sudo swapoff -a
  2. 打开/etc/crypttab(例如,sudo nano -w /etc/crypttabsudo -H gedit /etc/cryptab对于GUI编辑器)并#在以开头的行的开头放置a cryptswap1。保存文件。
  3. /dev/mapper/cryptswap1in 开头的行做同样的事情/etc/fstab
  4. 安装gparted安装gparted。运行它,并将交换分区格式化为linux-swap。确保获得正确的分区;如果您输错了,您可能会丢失重要数据!您在其中注释掉的行crypttab应提供正确的分区名称(紧随其后/dev/)。
  5. 运行sudo mkswap /dev/...,重新输入...相同的设备名称。该命令输出的一部分应该是文字,UUID=.....其中.....包含字母和数字的字符串。
  6. 在文件中/etc/initramfs-tools/conf.d/resume,找到最后一行,RESUME=UUID=然后说出字母和数字的行(例如(但不完全相同)).....。将它们替换为.....(即,用在mkswap之后的字母和数字UUID=
  7. 运行sudo swapon /dev/...(与上述/dev/...步骤4和5中的操作相同)。
  8. 运行sudo ecryptfs-setup-swap

swapon -s将检查是否已成功启用交换。有关更多信息和示例输出,请参阅该博客文章以进行检查。

来源: Litmus / Puny的http://punygeek.blogspot.com/2012/10/ubuntu-1204-how-to-solve-disk-drive-for.html(在http://punygeek.blogspot.com/上极客。一些命令被复制;散文没有被复制,但经常表达相同的想法。

最后,请注意,这可能是一个错误。(我相信有多种因素可能会导致此问题,其中只有一些是bug。)特别是,它类似于Launchpad Bug#1153661。如果您认为这是您的情况,则可能需要订阅,将自己标记为受影响(在页面顶部使用绿色的“此错误影响...”链接),并且如果您有其他需要提供的信息,请发表评论用它。


1
这对我有用。只是一句话,我不得不在步骤3和4之间重新启动计算机,因为gparted不会格式化交换分区。
geoffrey,2013年

从某种意义上说,我仍然无法/dev/mapper/cryptswap1在开机时看到消息,但是,如果我swapon -s在终端上运行,则好像已经安装了swap:,/dev/mapper/cryptswap1 partition 9765884 0 -1那么事情还是可以正常工作吗?(free -m还显示了当前的交换)
fpghost

顺便说一句,我认为sudo update-initramfs -u至少在您链接的博客上,您可能需要执行第6步之后的操作
fpghost 2013年

2
使用Ubuntu 14.04#6对我不起作用-该文件不存在。但是我只是跳过了这一步,这完美地解决了我的问题!我在启动时收到该错误消息,并且启动时间比现在慢得多。谢谢
redbmk

1
@Len您是对的-仅当您可以引导系统时,此方法才有效。您可以尝试从恢复模式启动(首先尝试),或者从实时CD / DVD / USB chroot并以这种方式执行(更复杂,但可行)。在恢复模式的root shell或在实时环境中创建的chroot中,所有命令都以root身份运行,因此您可以sudo在命令中省去。gedit在这两种情况下都不太可能工作,但nano应该可以正常工作。如果您使用实时系统,则只需运行其GParted(在chroot 外部)即可;否则,请使用fdiskmkswap。我建议发布一个新问题。
伊莱亚·卡根

7

搭载Eliah的解决方案以及ubuntu的错误报告(1310058),我能够解决重新启动ubuntu 14.04时加密交换丢失的问题。

信用帮助转到

http://punygeek.blogspot.com/2012/10/ubuntu-1204-how-to-solve-disk-drive-for.html https://bugs.launchpad.net/ubuntu/+source/ecryptfs-utils/ + bug / 1310058(注释#3,#17和#22)

sudo swapoff -a

注释掉/ etc / crypttab中的swap配置

#cryptswap1 UUID={your uuid} /dev/urandom swap,cipher=aes-cbc-essiv:sha256

注释掉/ etc / fstab中的swap配置

#/dev/mapper/cryptswap1 none swap sw 0 0

重新启动计算机,以便随后可以使用gparted重新格式化交换分区。进行交换,并记下mkswap为您生成的UIID 。

sudo mkswap /dev/sdXX

/etc/initramfs-tools/conf.d/resume使用以前的UUID 更新mkswap

RESUME=UUID={your uuid goes here}

并启用交换分区:

sudo update-initramfs -u
sudo swapon /dev/sdXX
sudo ecryptfs-setup-swap

更新您的/etc/crypttab设置以包括noautooffset=8(在ubuntu 14.04中进行调试)(我建议在这里使用vim,这样选项卡就不会弄乱了)。

cryptswap1 UUID={your uuid} /dev/urandom noauto,swap,offset=8,cipher=aes-cbc-essiv:sha256

更新您/etc/fstabnoauto

/dev/mapper/cryptswap1 none swap noauto,sw 0 0

使用中的以下配置手动启动交换/etc/init/cryptswap1.conf。注意:您可能必须从头开始手动创建该配置文件。您可以使用任何文本编辑器代替VIM。

sudo vim /etc/init/cryptswap1.conf

并填写以下内容:

start on started mountall
script
  /sbin/cryptdisks_start cryptswap1
  /sbin/swapon /dev/mapper/cryptswap1
end script
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.