如何处理“/dev/mapper/cryptswap1 的磁盘驱动器尚未准备好或不存在”?

如何处理“/dev/mapper/cryptswap1 的磁盘驱动器尚未准备好或不存在”?

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

答案1

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

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

假设系统正在启动,您应该能够轻松解决问题。

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

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

大多数带有交换的 Ubuntu 系统都有一个交换分区。假设情况确实如此,这篇博文中描述的技术可能会有所帮助:

以下是一份摘要,其中包含一些可能对新手有帮助的附加信息,并且是我自己的话。不过,我建议也看一下那篇文章(假设它仍然可以访问),因为它包含一些示例和其他我为了简洁而省略的信息。

  1. 打开终端窗口(Ctrl++ AltT或虚拟控制台并运行:sudo swapoff -a
  2. 打开/etc/crypttab(例如,sudo nano -w /etc/crypttabsudo -H gedit /etc/cryptab用于 GUI 编辑器)并将 放在#以 开头的行的开头cryptswap1。保存文件。
  3. /dev/mapper/cryptswap1对以in开头的行执行相同的操作/etc/fstab
  4. 安装分区安装 gparted。运行它并将交换分区格式化为linux-swap。确保获取正确的分区;如果获取错误的分区,您可能会丢失重要的数据!注释掉的行crypttab应该给出正确的分区名称(它紧随其后/dev/)。
  5. 运行sudo mkswap /dev/......使用相同的设备名称。该命令的输出部分应为文本,说明UUID=.....其中.....是一串字母和数字。
  6. 在文件中,找到上一步中/etc/initramfs-tools/conf.d/resume显示的行,RESUME=UUID=后面跟着类似(但不完全相同)的字母和数字。将它们替换为(即,使用后面给出的字母和数字。..........mkswapUUID=
  7. 运行(与上面的步骤 4 和 5sudo swapon /dev/...相同)。/dev/...
  8. 跑步sudo ecryptfs-setup-swap

swapon -s将检查交换是否已成功启用。请参阅那篇博客文章以获取更多信息和示例输出,以检查这一点。

来源: http://punygeek.blogspot.com/2012/10/ubuntu-1204-how-to-solve-disk-drive-for.html(在http://punygeek.blogspot.com/) 经过Litmus / 弱小的极客。有些命令是抄袭的;散文不是抄袭的,但往往表达的是同样的想法。

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

答案2

利用 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 中的交换配置

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

注释掉 /etc/fstab 中的交换配置

#/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

相关内容