如何修复启动时未找到 Manjaro 错误休眠设备?

use*_*026 9 linux boot arch-linux linux-kernel manjaro

安装更新并重新启动后,我收到了这些错误。

ERROR: resume: hibernation device 'UUID=long number here' not found
ERROR: device '/dev/mapper/ManjaroVG-ManjaroRoot' not found. Skipping fsck.
ERROR: Unable to find root device '/dev/mapper/ManjaroVG-ManjaroRoot'.
Run Code Online (Sandbox Code Playgroud)

然后我被丢弃到带有消息的恢复外壳SH: can't access tty: job control turned off

这是一个不到一周的安装,我在图形安装程序上检查了 lvm 和 luks 加密。

小智 6

我在Arch LinuxManjaro 中一直遇到这个问题,当我的笔记本电脑处于待机状态时电池电量耗尽。

我在 Arch 中的解决方案是运行:

sudo mkinitcpio -p linux
Run Code Online (Sandbox Code Playgroud)

Manjaro 下,您可能需要确定要使用哪个内核,然后运行添加特定内核版本的命令(如果有两个可用,请选择较大的数字),您也可能需要重新启动,直到一切再次正常运行:

ls /etc/mkinitcpio.d
sudo mkinitcpio -p linux44 #in my case...
Run Code Online (Sandbox Code Playgroud)

顺便说一句,由于如果您遇到此问题,系统将不再启动,因此 Arch/Manjaro 中的回退启动通常有助于首先启动系统。(如果有人想知道;-))

它似乎mkinitcpio重置了启动过程而没有任何副作用。我很乐意在这里为该问题提供正确的答案和解释,但现在我很高兴找到了解决方案。

mkinitcpio 是一个用于创建初始 ramdisk 环境的 Bash 脚本。


进一步阅读


小智 6

你重新分区你的交换吗?如果是这样,则用于休眠的交换分区的 UUID 可能已更改。那么这个程序可能会有所帮助。

  1. 实时启动并通过挂载访问您的文件系统。
  2. 通过以下方式查找新的交换 UUID sudo blkid
  3. 替换旧的,错误的UUID在新的UUID/etc/fstab//etc/default/grub

细节:

启动实时启动 USB。使用sudo fdisk -l找到你的Linux分区的名称。然后挂载。例如,如果您的分区是/dev/sda1run sudo mount /dev/sda1 /mnt

现在cd /mnt,您可以探索您的文件系统。运行sudo blkid以查找交换分区的 UUID。如果没有标记,首先使用gparted来识别哪个分区是swap。

注释掉旧的 UUID /etc/fstab//etc/default/grub/并在下面编写一行新的代码来替换新的 UUID。编辑第一个文件将告诉您的系统交换目录所在的位置。编辑第二个文件将抑制错误,因为它会搜索先前的交换 UUID。