出现“无法打开根设备”错误的内核恐慌,我应该在哪里附加“ root =”选项?


9

每当我尝试使用Linux内核3.0.0.13(由升级安装的内核)引导时,都会出现内核恐慌错误:

VFS:无法打开根设备“ sda1”或未知块(0,0),请附加正确的“ root =”引导选项;

幸运的是,如果我使用以前的版本启动,则没有任何问题。我该如何解决?我应该在哪里附加正确的root= option?如果我无法使用此内核,如何将其作为默认内核删除并坚持使用较旧的内核?


这里同样的问题。我观察到的主要区别是,直到3.0.0.12,grub conf都尝试使用其UUID来标识硬盘,而3.0.0.13现在使用的是/ dev / sda6 ..怪异的……
Dan Soap

Answers:


11

您没有提供太多的日志信息,可以继续进行下去,但我猜您最有可能遇到此错误,这是因为内核被IDE / SATA驱动器弄糊涂了。快速Google搜索使我链接链接1链接2链接3

以下是从摘录提到的链接通过上面的链接之一

最有可能是最经常发生的问题之一(但是一旦解决了它,就很可能再也看不到它了):

Unable to mount root fs on unknown-block(0,0)

要么

VFS: Cannot open root device "sda3" or unknown-block(8,3)
Please append a correct "root=" boot option; here are the available partitions:
  sda driver: sd
    sda1 sda2

根据您的情况,数字0,08,3可以不同-它是指内核尝试访问的设备(发生故障的设备)。一般来说,可以说,如果第一个数字为0,则内核无法识别硬件。如果它是另一个数字(例如8),则它无法识别文件系统(但能够访问硬件)。

这里的问题是,正在引导的内核无法将root=/dev/...您赋予它的参数(在引导加载程序配置中)转换为真实的,可访问的文件系统。导致这种失败的原因有以下几种:

  • 内核配置缺少HDD控制器的驱动程序(情况1、4、5)
  • 内核配置缺少HDD控制器使用的总线驱动程序
  • 内核配置缺少正在使用的文件系统的驱动程序
  • 设备在您的root =参数中被错误标识(情况2、3)

如果您知道原因是什么,则解决问题很容易。您很可能不会,因此这里有一个快速检查。

打开内核配置向导(make menuconfig部分),以便您可以相应地更新内核配置。

  • 检查您是否已内置(而非作为模块)对硬盘控制器使用的总线/协议的支持。
  • 最有可能的是PCI支持,SATA支持(低于SCSI设备支持),...
  • 检查您是否对所使用的HDD控制器提供了内置(而不是作为模块)支持。最常见的情况之一:您选择了对硬盘控制器协议(IDE,SATA,SCSI等)的支持,但是却忘记了
    选择HDD控制器驱动程序本身(例如Intel PIIX)。尝试
    运行以下lscpi命令,并将其输出粘贴到
    http://kmuto.jp/debian/hcl/上。该站点将向您显示需要为系统选择的内核驱动程序。在menuconfig中,
    您可以键入“ /”以打开搜索功能,并键入驱动程序
    名称以查找其驻留位置。 # lspci -n
  • 检查您是否已内置(而非作为模块)对所使用文件系统的支持。
  • 假设您的根文件系统使用btrfs(我绝对不建议这样做),但是您没有选择它,也没有选择将其作为
    模块构建,那么您将看到错误。确保文件系统
    支持内置在内核中。
  • 检查的内核参数root=是否指向正确的分区。

    这并不像听起来那么愚蠢。当您使用一个内核引导时,它可能会将磁盘列出为/ dev / sda,而(已配置的)内核期望它是/ dev / hda。这不是因为内核彼此不一致,而是因为使用了驱动程序:较旧的驱动程序使用hda语法,较新的sda。

    尝试使用sda切换hda(使用sdb切换hdb,然后...)。

    同样,最近的内核概述了它们在所告知的设备上找到的分区。如果是这样,它可能会帮助您确定是否选择了一个分区(在本节开头给出的示例中,仅找到两个分区,而指示内核引导第三个分区)。如果不是,则很可能是因为内核不知道该设备以什么开头(因此它无法尝试显示分区)。

  • 检查由引导加载程序引导的内核是否为正确的内核。我见过那些在构建第一个内核(无法启动)之后忘记安装/boot新内核之前必须挂载的人。结果,他们将内核复制到根文件系统(/),而引导加载程序仍希望内核映像位于/boot分区上。


1
嗨,它花了很多时间,但是谢谢。我的CD-ROM出现故障,删​​除了所有内容,一切正常!
lucacerone 2012年

Link 1,Link 4和Link 5现在都死了。
Questionmark

0

阅读此答案(说明正在发生的情况)后,请尝试使用[Boot-Reapir CD] [1] [1]:https://help.ubuntu.com/community/Boot-Repair

在修复“设备在您的root =参数中被错误识别(情况2、3)”方面表现出色。

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.