未检测到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.的更新(无新安装) version 2.6.32-26. 所以我想这与此版本内核的上次更新有关。 此外,由于它不是新安装,因此未添加任何新菜单条目。 这可能是由于我内核更新后在Windows中重启而造成的。

更新3
通过实时USB chrooting安装较旧的内核,内核仍然存在同样的问题,所以看来这个问题毕竟不是由于内核更新造成的。

我之前也遇到过这个问题,但那时候,我只是考虑重新安装分发更容易(我曾经多次发布分配)。 但是现在我把它配置得太远,所以寻找最后的手段。

更新4
重新安装Ubuntu。 由于独立的家庭和工作区分区,这次配置更容易。 即使很难,我现在也不需要解决这个问题,但如果您知道任何可能的解决方案,请在此处发布,以便将来获益。

我有同样的问题,如线程启动器,我解决了它,而无需重新安装。

我在基于复制的磁盘映像进行虚拟安装时遇到了问题。 这导致更改的uuid并且副本无法启动。 这是我所做的粗略草图。

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

接下来我们修复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或其他多引导系统可能需要其他条目!

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

问题似乎是你的硬盘或控制器没有足够快的响应。

请尝试以下方法:

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

  • 您应该看到一长串参数。 添加这个: rootdelay=130

  • 按Enter键 ,然后按b启动 )。 尝试查看系统是否现在启动。 如果第一次没有帮助,你可以增加值(但不是很多,130已经绰绰有余,对于任何未被破坏的硬件来说已经足够了)。

但是,它也可能是您的硬盘驱动器出现故障。 重新进入系统后要做的第一件事就是备份数据 。 如果您想要安全,请使用ubuntu cd进行备份。 我强烈建议你早点而不是晚点。

事实上,我经历过一次或两次磁盘UUID自发改变。 这种变化可能是某种腐败的结果。 我会尝试以下方法:

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

像UUID这样重要的东西似乎不太可能在没有明显原因的情况下发生变化,但它可能会因为一个错误而发生。 查看是否将UUID更改为新值有帮助。

当我在我的系统上看到这个时,问题是将错误的UUID设置为/boot/grub/menu.lst的启动根参数。

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

update-grub没有为我更新这些参数,只是简单地在menu.lst中手动替换旧的UUID为我修复了它。

你有一个较旧的内核吗? 它有用吗? 检查/ etc / fstab为loevborg说可能的’陈旧’记录(我在安装lvm和grub2时遇到了同样的问题 – / boot分区有一个旧记录导致错误)

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

安装libuuid后,这个问题出现了。 我能够手动修复它,现在它启动正常,但每次它仍然显示有关丢失blkid错误。 此外,在需要重新启动的更新后,重新启动引导故障。

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

如何修复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. 重启系统并正常启动。

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

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

我让计算机通过(从busybox内部)启动,将根分区的/ etc / fstab的UUID引用更改为/ dev / sda1(根据您的设置进行修改)。 但是,我不确定这一步是否重要,因为单独它并没有什么不同。 在下次重启时做了什么,坐在grub上,点击“e”编辑Ubuntu默认启动,并删除整个“if … fi”结构,并用/ dev替换“linux”行的UUID = / sda1。 这种方法允许计算机完全启动。

最后问题是失败的第二个硬盘驱动器导致磁盘搜索序列的大量延迟。

尝试了所有的答案,但无法解决它,所以最终重新安装ubuntu :(。

同样的错误也出现在我的朋友comp中,但他也没有运气。

我自己修改了这个文件/ etc / default / grub

 GRUB_CMDLINE_LINUX=" rootdelay=3 " GRUB_DISABLE_LINUX_UUID=true 

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

就我而言:

使用Ubuntu 14.04将操作系统安装在ext4中

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

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

错误出现了。

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

因为Ubuntu 10.04默认使用ext2 for OS所以initramfs会加载ext2的驱动程序而不使用ext4驱动程序…

所以在grub.cfg中将ext2替换为ext4来修复它。

我在ubuntu中遇到同样的问题,我搜索后我刚刚意识到grub尝试启动sdb5而我的kali是在sda5所以使用live cd启动并尝试使用mkdir和mount命令安装你的linux操作系统如果它存在尝试修复grub保持负载转移并命中e并更改root dev,如果有效则使其永久化

如果您使用dd克隆了分区或特别是整个硬盘驱动器和分区表,也可能发生这种情况。 如果发生这种情况,通常所讨论的所有分区的fsck都将解决它。

资料来源: http : //realtechtalk.com/UbuntuDebianLinux_wont_boot_and_drops_to_Busybox_shell_after_cloning_HDD_with_dd-1978-articles

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

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