未检测到按UUID的磁盘(initramfs),引导失败


18

我无法使用内置的启动外壳启动Ubuntu 10.04,并给出以下错误消息:

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中重新启动而引起的。

Update 3
通过实时USB chroot来安装较旧的内核,但内核仍然存在相同的问题,因此看来问题根本不是由于内核更新引起的。

我也早些时候也遇到过这个问题,但是那时候,我只是觉得重新安装发行版更容易(我过去经常发行发行版)。但是现在我把它配置得太远了,所以寻找最后的选择。

更新4
重新安装了Ubuntu。这次,由于有了单独的主分区和工作分区,因此配置更加容易。即使艰难,我现在也不需要解决此问题,但是如果您知道任何可能的解决方案,请在此处发布以获取将来的收益。


尝试从initramfs提示符下运行“ blkid”,以列出重新标识的设备uid。
若奥·平托

如果让计算机在忙碌框“(initramfs)”提示符下停留一分钟,然后键入“ exit”并按Enter键,会发生什么情况?
Li Lo 2010年

再次给出相同的提示,以上消息被附加到启动外壳中
crodjer 2010年

我遇到了完全相同的问题,并在这个“很少投票”的解决方案中找到了一个解决方案,但它确实有效!askubuntu.com/a/519814/223469
Aleks

Answers:


7

我遇到了与线程启动器相同的问题,并且无需重新安装即可解决该问题。

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

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

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

  • grub-mkconfig
  • update-grub

然后运行:

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

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

退出救援外壳后,ubuntu live cd将为您提供进入外壳的最后一个菜单。在此处选择“安装Grub”(或类似名称),然后输入用于放置引导扇区的设备。

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

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


1
这为我工作,但更新initramfs的命令是:更新initramfs的-k -u 2.6.YOURVERSION-HERE

5

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

请尝试以下操作:

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

  • 您应该看到一长串参数。将此添加到它: rootdelay=130

  • 点击Enter,然后b启动)。尝试看看您的系统是否现在启动。您可以增加该值(如果这对您没有帮助)(但是对于很多没有损坏的硬件来说,130已经足够多了)。

但是,也可能是硬盘驱动器出现故障。回到系统后,要做的第一件事就是备份数据。如果您想安全起见,请使用ubuntu cd对其进行备份。我强烈敦促您尽早这样做。


1
这是真的...发生了什么,请尝试使用实时CD或实时USB,并在启动到实时桌面后,连接一个外部硬盘驱动器(希望有一个),然后开始将数据备份到外部硬盘...
Salih Emin 2010年

rootdelay解决方案没有奏效。我的磁盘的uuid是否有可能被更改(可能是Windows),我可以更早地登录到Buntu,但是登录Windows之后,重新启动后会出现此错误。就备份而言,即使我有独立于Buntu安装的Home和Workspace分区,我也需要吗?
crodjer 2010年

5

事实上,我遇到了磁盘UUID自发更改一两次的情况。更改可能是某种损坏的结果。我会尝试以下方法:

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

与UUID一样重要的事情似乎没有明显的原因就不会发生变化,但是它的发生可能是由于一个错误。查看将UUID更改为新值是否有帮助。


1
initramfs提示符下的uuid,根磁盘和fstab相同。我仍然按照您指定的方式进行了更改,但仍然存在相同的问题
crodjer 2010年

也许这确实是与内核更新有关的问题。您可以从busybox shell内挂载文件系统吗?尝试使用设备文件/ dev / sda1(必要的更改)挂载它,该文件根本不应该与UUID相关。如果可行,则只需编辑fstab和GRUB配置以使用设备文件,而不使用UUID。
loevborg 2010年

另外,关于重新安装-如果您复制/ home目录并将其放入安装后,这没什么大不了的。然后,只需安装相同的软件包集即可(也可以自动完成)。我同意这实际上不是必须的,但是找到问题要干净得多。
loevborg 2010年

2

当我在系统上看到此消息时,这是由于在中将UUID设置为引导根参数而引起的/boot/grub/menu.lst

cat /proc/cmdline实际上显示了传递给initramfs的引导参数-如果您看到initramfs被告知要挂载一个不存在的根分区,则显然会失败。

update-grub 不会为我更新这些参数,而只是手动替换menu.lst中的旧UUID。


这也是过去我必须解决的问题。但是,上次我什至不理会UUID,只是用/ etc / fstab中的/ dev / xxx设备ID替换了不正确的UUID。对于其他尝试解决此问题的人,也请参见@loevborg的答案。
belacqua 2011年

1

你有一个旧的内核吗?它行得通吗?检查/ etc / fstab,因为loevborg谈到了可能的“过时”记录(我在安装lvm和grub2时遇到了同样的问题-/ boot分区存在一个旧记录,导致了错误)


不。...我习惯于在测试新安装4-5次后删除旧内核。此后发生的更新只是版本2.6.32-26的更新(没有新安装)。因此,我想这与该版本内核的最新更新有关。
crodjer

为什么不尝试使用实时CD chroot并重新安装此内核或最新的2.6.35-23?
Pavlos G.

是的....当前正在制作一个活的USB棒
crodjer

安装旧内核也不起作用....问题似乎根本不是因为内核更新。
crodjer 2010年

然后,您可以尝试运行bootsinfoscript(sourceforge.net/projects/bootinfoscript)并将结果粘贴到此处吗?
Pavlos G. 2010年

1

我不知道是什么原因引起的,但是作为解决方案,您可以尝试仅重新安装Grub。我认为它将解决您的问题。


1
我也chroot并尝试了此操作,但没有成功...最终,我重新安装了发行版。
crodjer 2010年

1

安装后,这个问题对我来说出现了libuuid。我能够手动修复它,现在它可以正常启动,但是每次它仍然显示有关missing的错误blkid。另外,在需要重新启动的更新之后,重新出现启动失败。

中的UUID /proc/cmdline是正确的,但是系统无法识别它。


1

如何修复Ubuntu错误:“ No init found. Try passing init= bootarg

今天早上,一个朋友带着无法启动的笔记本电脑来找我。在每次引导尝试时,他的Ubuntu 10.04 Lucid Lynx系统都会输出以下错误消息:

mount: mounting /dev/disk/by-uuid/***************************** on /root
failed: Invalid argument
mount: mounting /sys on /root/sys failed: No such file or directory
mount: mounting /dev on /root/dev failed: No such file or directory
mount: mounting /sys on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed: No such file or directory
Target file system doesn't have /sbin/init
No init found. Try passing init= bootarg



Busybox v1.13.3 (Ubuntu 1:1.13.3-1ubuntu7) built-in shell (ash)
Enter 'help' for a list of built-in commands
(initramfs) _

Booting into "Recovery Mode" as well as choosing the other kernels listed in grub didn't help at all.

解:

  1. 从Ubuntu Live CD引导;

  2. 打开/运行终端;

  3. 键入:(sudo fdisk -l以获取设备名称),然后按ENTER

    磁盘/ dev / sda:250.1 GB,250059350016字节255磁头,63扇区/磁道,30401柱面单位=柱面16065 * 512 = 8225280字节磁盘标识符:* ***

    设备引导启动结束块ID系统/ dev / sda1 * 1 30238 242886703+ 83 Linux / dev / sda2 30239 30401 1309297+ 5扩展/ dev / sda5 30239 30401 1309266 82 Linux swap / Solaris

基于以上所述,我朋友系统的设备名称: /dev/sda1

  1. 键入:sudo fsck /dev/sda1然后按ENTER;

  2. 重新启动系统并正常启动。

    • 修复后,笔记本电脑正常启动。

1

我看到了同样的问题-与额外的信息,我用过的BLKID(和tune2fs)检查UUID,这是完全匹配的。清单/ dev / disk / by-uuid也显示了预期的UUID。该驱动器也可以完美地安装在busybox中。存在[/ mnt] / boot /中预期的所有普通文件(对于内核3.13.0-36)。

我通过(从busybox内部)将根目录的/ etc / fstab的UUID引用更改为/ dev / sda1来启动计算机(根据您的设置进行修改)。但是,我不确定这一步骤是否重要,因为仅此一项并没有什么不同。什么是在下次重启时,坐在蛴螬,击中的“e”来编辑Ubuntu的默认开机,并剥出完整的“如果......网络”结构,而取代“LINUX”行的UUID =同在/ dev / sda1。这种方法允许计算机完全启动。

最后,问题出在第二块硬盘驱动器出了故障,这导致磁盘搜索顺序的大量延迟。


0

尝试了所有答案,但无法解决,因此最终不得不重新安装ubuntu :(。

我的朋友们也遇到了同样的错误,但是他也没有运气。


0

我自己修复了编辑文件/ etc / default / grub的问题

GRUB_CMDLINE_LINUX=" rootdelay=3 "
GRUB_DISABLE_LINUX_UUID=true

仅第一个,还不够。如前所述,我什至尝试了130。然后,我用第二个命令禁用了UUID。无论如何,这都是LVM根分区,因此UUID数据毫无意义。


0

就我而言:

操作系统通过Ubuntu 14.04安装在ext4中

但是我在Ubuntu 10.04之后安装其他Ubuntu版本(如10.04)时发现

并编译Ubuntu 10.04内核并使用dpkg进行安装。

错误出现。

最后,问题出在grub.cfg中。

因为Ubuntu 10.04默认使用ext2作为操作系统,所以initramfs将加载ext2的驱动程序而不使用ext4驱动程序...

因此,将grub.cfg中的ext2替换为ext4进行修复。


0

我经过几个小时的搜索后在ubuntu中遇到了同样的问题,我刚刚意识到grub尝试启动sdb5,而我的kali在sda5上,因此请使用live cd引导,并尝试使用mkdir和挂载命令挂载ur linux操作系统,如果存在,则尝试通过以下方式修复grub保持负载变化并命中e并更改root dev,如果可行,则使其永久不变



0

除了所有其他答案,请尝试转到grub菜单(在启动时按SHIFT键进入Ubuntu Advanced选项),然后选择较旧的工作内核。安装较新的内核版本后,必须已更新grub配置。


-3

我刚进入恢复模式。并选择一些指示在菜单中更新grub的内容。然后解决问题。


uuid的/ dev / disk不存在。我看不到更新grub如何解决此问题。
极客长老
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.