我无法启动 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)
更新 12.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 use
gparted sda`)。(replace
blkid /dev/sda1
(sda1
用您找到的分区替换);或者使用vol_id
;- 看看是否可以挂载该分区(使用设备文件
/dev/sda1
); - 检查显示的 UUID 是否与根分区中的 UUID 匹配
/etc/fstab
; - 使用 生成新的 UUID
uuidgen
并将其应用于分区tune2fs -U
; - 相应地更改
fstab
条目。
像 UUID 这样重要的东西无缘无故地发生变化似乎不太可能,但这种情况确实发生了,可能是因为出现了错误。看看将 UUID 更改为新值是否有帮助。
答案4
您是否有一个较旧的内核?它能正常工作吗?检查 /etc/fstab,正如 loevborg 所说,可能存在“过时”的记录(我在安装 lvm 和 grub2 时遇到了同样的问题 - /boot 分区有一个旧记录,导致错误)