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

bit*_*ttu 40 encryption boot swap

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

Eli*_*gan 38

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

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

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

如果在启动 CD/DVD 或 USB 闪存驱动器以安装 Ubuntu 时发生这种情况,则假设安装仍在进行,则可以忽略它。一旦创建,您安装的系统可能会或可能不会有同样的问题——如果有,问题可以在安装的系统中解决。

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

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

这是一个总结,用我自己的话来说,还有一些可能对新手有帮助的附加信息。不过,我建议你也看看那篇文章(假设它仍然可以访问),因为它包含一些示例和其他信息,我为了简洁而省略了这些信息。

  1. 打开一个终端窗口(Ctrl+ Alt+ T)或虚拟控制台和运行:sudo swapoff -a
  2. 打开/etc/crypttab(例如,sudo nano -w /etc/crypttabsudo -H gedit /etc/cryptab用于 GUI 编辑器)并#在以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将检查交换是否成功启用。有关更多信息和示例输出,请参阅该博客文章以进行检查。

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

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

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

Ant*_*ony 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
Run Code Online (Sandbox Code Playgroud)

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

#cryptswap1 UUID={your uuid} /dev/urandom swap,cipher=aes-cbc-essiv:sha256
Run Code Online (Sandbox Code Playgroud)

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

#/dev/mapper/cryptswap1 none swap sw 0 0
Run Code Online (Sandbox Code Playgroud)

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

sudo mkswap /dev/sdXX
Run Code Online (Sandbox Code Playgroud)

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

RESUME=UUID={your uuid goes here}
Run Code Online (Sandbox Code Playgroud)

并启用交换分区:

sudo update-initramfs -u
sudo swapon /dev/sdXX
sudo ecryptfs-setup-swap
Run Code Online (Sandbox Code Playgroud)

更新您的/etc/crypttab设置以包含noautooffset=8(ubuntu 14.04 中的错误)(我建议在此处使用 vim,因此选项卡不会被弄乱)。

cryptswap1 UUID={your uuid} /dev/urandom noauto,swap,offset=8,cipher=aes-cbc-essiv:sha256
Run Code Online (Sandbox Code Playgroud)

更新您/etc/fstabnoauto

/dev/mapper/cryptswap1 none swap noauto,sw 0 0
Run Code Online (Sandbox Code Playgroud)

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

sudo vim /etc/init/cryptswap1.conf
Run Code Online (Sandbox Code Playgroud)

并填写以下内容:

start on started mountall
script
  /sbin/cryptdisks_start cryptswap1
  /sbin/swapon /dev/mapper/cryptswap1
end script
Run Code Online (Sandbox Code Playgroud)