未检测到 UUID 磁盘(initramfs),启动失败

未检测到 UUID 磁盘(initramfs),启动失败

我无法启动 Ubuntu 10.04,内置启动 shell 给出以下错误:

Gave up waiting for root device. Common problems:
  — Boot args (cat /proc/cmdline)
    — Check rootdelay= (did the system wait long enough?)
    — Check root= (did the system wait for the right device?)
  — Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/disk/by-uuid/aa91b9fe-1e27-44d7-9c1b-72dd7d4e8575 does not exist.   
Dropping to a shell! 

BusyBox v.1.13.3 (Ubuntu 1:1.13.3-1ubuntu11) built-in shell (ash)   
Enter 'help' for list of built-in commands.  

(initramfs)

更新 1
2.6.32-26在我更新了我的版本内核并直接在 Windows 中启动 后,出现了这个错误。

rootdelay解决方案没有用。我的磁盘的 uuid 是否有可能被更改(可能是由 Windows 更改的),我可以更早地登录到我的 Ubuntu,但在登录到 Windows 并重新启动后,我收到此错误。就备份而言,即使我有与 Ubuntu 安装不同的主分区和工作区分区,我是否需要备份?

更新 2
发生这种情况的更新只是一次更新(没有新安装),version 2.6.32-26.所以我猜这与此版本内核的上次更新有关。此外,由于它不是新安装,因此没有添加新的菜单项。这可能是由于我的在 Windows 中重新启动内核更新后。

更新 3
通过实时 USB chrooting 安装了旧内核,内核仍然存在同样的问题,因此问题似乎不是由于内核更新毕竟。

我以前也遇到过这个问题,但当时我只是认为重新安装发行版更容易(我以前经常更换发行版)。但现在我已经配置得太过了,所以正在寻找最后的手段。

更新 4
重新安装了 Ubuntu。由于主分区和工作区分区分开,这次配置更加简单。虽然我现在不需要解决这个问题,但如果你知道任何可能的解决方案,请在此处发布,以备将来参考。

答案1

我遇到了与主题发起者相同的问题,并且无需重新安装就解决了它。

我在处理基于复制的磁盘映像的虚拟安装时遇到了问题。这导致 uuid 发生更改,并且无法启动复制。这是我所做操作的粗略概述。

首先使用救援系统(相同版本)启动,然后在非启动磁盘上运行 shell。通过为每个设备发出命令来查看/etc/fstab并确认那里的 uuid blkid。修复这些条目,因为它们很重要。

接下来我们用以下方法修复 grub:

  • grub-mkconfig
  • update-grub

然后运行:

  • update-initramfs -u /boot/initrd.img-2.6.YOURVERSION-HERE

这将为您的版本创建一个新的 initramdisk。如果您不知道所运行的确切版本,请查看 /boot/ 中的文件。选择最高版本号应该是安全的。

退出救援 shell 后,ubuntu live cd 将为您提供进入 shell 时的最后一个菜单。选择“安装 Grub”(或类似选项),然后输入放置引导扇区的设备。

在大多数系统上(标准安装)/dev/sda是安全的选择。请注意:Windows 或其他多引导系统可能需要此处的其他条目!

最后您应该能够从修复后的磁盘启动。

答案2

问题似乎是您的硬盘或控制器响应不够快。

请尝试以下操作:

  • 当启动菜单出现时,列表顶部突出显示,按e(例如编辑)。

  • 您应该会看到一长串参数。添加以下参数: rootdelay=130

  • 击中Enter然后b引导)。尝试查看系统是否现在启动。如果第一次没有帮助,您可以增加该值(但不要增加太多,对于任何未损坏的硬件来说 130 已经足够了)。

但是,也可能是你的硬盘出现故障。恢复系统后要做的第一件事是备份你的数据。如果你想要安全,请使用 ubuntu cd 进行备份。我强烈建议你尽早这样做。

答案3

事实上,我曾经历过磁盘 UUID 自发更改一两次。更改可能是某种损坏的结果。我会尝试以下方法:

  • 从实时媒体启动您的计算机;
  • fdisk -l /dev/sda找到您要查找的分区;或者使用硬盘上的cfdisk; or usegparted sda`)。(replace
  • blkid /dev/sda1sda1用您找到的分区替换);或者使用vol_id;
  • 看看是否可以挂载该分区(使用设备文件/dev/sda1);
  • 检查显示的 UUID 是否与根分区中的 UUID 匹配/etc/fstab
  • 使用 生成新的 UUIDuuidgen并将其应用于分区tune2fs -U
  • 相应地更改fstab条目。

像 UUID 这样重要的东西无缘无故地发生变化似乎不太可能,但这种情况确实发生了,可能是因为出现了错误。看看将 UUID 更改为新值是否有帮助。

答案4

您是否有一个较旧的内核?它能正常工作吗?检查 /etc/fstab,正如 loevborg 所说,可能存在“过时”的记录(我在安装 lvm 和 grub2 时遇到了同样的问题 - /boot 分区有一个旧记录,导致错误)

相关内容