当前位置: 首页>>技术问答>>正文


该怎么办“/dev/mapper/cryptswap1的磁盘驱动器还没有准备就绪或不存在”?

, , ,

问题描述

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

最佳解决办法

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

无法使用交换可能会导致速度减慢,尤其是如果您的计算机没有安装太多RAM。

假设系统正在启动,您应该能够解决问题而不会有太多麻烦。

如果在启动CD /DVD或USB闪存驱动器以安装Ubuntu时发生这种情况,那么假设安装仍在工作,则可以忽略它。一旦创建,您安装的系统可能会或可能不会出现相同的问题 – 如果是,则可以在已安装的系统中解决该问题。

如果在硬盘上安装的系统上发生这种情况,那么您的系统可能仍然运行正常,但最好修复它 – 如果您有交换分区(或交换文件),您也可以使用它。

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

这是一个摘要,其中包含一些可能对新手有帮助的其他信息,用我自己的话说。我建议看一下那篇文章(假设它仍然可以访问),因为它包含了一些我为了简洁而遗漏的例子和其他信息。

  1. 打开终端窗口(Ctrl + Alt + T)或虚拟控制台并运行:sudo swapoff -a

  2. 打开/etc/crypttab(例如,用于GUI编辑器的sudo nano -w /etc/crypttabsudo -H gedit /etc/cryptab)并将#放在以cryptswap1开头的行的开头。保存文件。

  3. /etc/fstab中以/dev/mapper/cryptswap1开头的行做同样的事情。

  4. 安装gparted。运行它并将交换分区格式化为linux-swap。确保获得正确的分区;如果你弄错了,你可能会失去重要的数据!您在crypttab中注释掉的行应该提供正确的分区名称(它恰好在/dev/之后)。

  5. 运行sudo mkswap /dev/...,使用相同的设备名称重新调整...。该命令输出的一部分应该是文本,其中显示UUID=.....,其中.....是一串字母和数字。

  6. 在文件/etc/initramfs-tools/conf.d/resume中,找到说明RESUME = UUID =的行,然后是最后一步的字母和数字,如(但不相同)…..用…..替换它们(即用UUID =后mkswap给出的字母和数字。

  7. 运行sudo swapon /dev/...(使用与上述步骤4和5中相同的/dev/...)。

  8. 运行sudo ecryptfs-setup-swap

swapon -s将检查交换是否成功启用。有关详细信息,请参阅that blog post,以及示例输出,以进行检查。

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

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

次佳解决办法

关于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重新格式化交换分区。进行交换,并记下为您生成的UIID mkswap

sudo mkswap /dev/sdXX

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

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

使用noauto更新您的/etc/fstab

/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

参考资料

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