安装LFS6.2 VFS:Cannot open root device "sda"

  1. 云栖社区>
  2. 博客>
  3. 正文

安装LFS6.2 VFS:Cannot open root device "sda"

科技小先锋 2017-11-22 23:44:00 浏览602 评论0

摘要: LFS:6.2宿主机OS:ubuntu server 7.10这两天一直在安装lfs6.2,安装到最后编译完内核,修改完fstab,最后安装grub后,启动lfs报错提示   VFS:Cannot open root device "sda" or unknow-block(0,0)Please append a correct "root=" boot optionkernel panic:VFS:Unable to mount root fs on unknown-block(0,0) 看到这个错误的时候,我快崩溃了,我等了这么久,到最后一步出现了这个错误。

LFS:6.2
宿主机OS:ubuntu server 7.10

这两天一直在安装lfs6.2,安装到最后编译完内核,修改完fstab,最后安装grub后,启动lfs报错提示   
VFS:Cannot open root device "sda" or unknow-block(0,0)
Please append a correct "root=" boot option
kernel panic:VFS:Unable to mount root fs on unknown-block(0,0) 
看到这个错误的时候,我快崩溃了,我等了这么久,到最后一步出现了这个错误。大概意思是没有把root文件系统所在的硬盘控制器的驱动编译到内核中去,编译的时候我选择了scsi驱动了很奇怪,于是开始goole,baidu得到结果,大多都是集中在:
Device Drivers--->SCSI device support--->SCSI disk support
Device Drivers--->SCSI device support--->SCSI low-level drivers--->BusLogic SCSI support 


一、磁盘(!!!)
        在选择模块前,要先弄清楚VMware虚拟机的硬件类型,下面这个表是VMware6中自定义虚拟机配置时给出的配置,不难发现当您使用 VMware推荐向导给出的配置时,实际使用的是SCSI类型设备中的LSI Logic设备。这里要注意的一个地方是,既然有两个SCSI设备能够供其选择,那么该如何判断呢?很简单,因为他是通过内核主版本号来划分的。感兴趣的 朋友能够通过新建虚拟机Custom-Linux下Version列表中Other Linux2.6.X kernel 和 Other Linux2.4.X kernel来比较。2.4内核之前使用BusLogic,2.6内核使用的是  LSI Logic 。
       VMware 6.0:
            I/O ADapter Types
                IDE adapter: ATAPI
              SCSI adapter: BusLogic
                                 LSI Logic
这是Other Linux2.6.X kernel配置系统信息
00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
  
这是Other Linux2.4.X kernel配置系统信息
00:10.0 SCSI storage controller: BusLogic BT-946C (BA80C30) [MultiMaster 10] (rev 01)
    现在分别介绍模块选择路径
    这个是SCSI磁盘设备模块,必须选择。
    Linux Kernel Configuration
        -> Device Drivers
            -> SCSI device support
                - > SCSI disk support
    这个是BusLogic设备驱动模块。使用这个设备的的朋友需要选取。
    Linux Kernel Configuration
        -> Device Drivers
            -> SCSI device support
              -> SCSI low-level drivers
                 -> BusLogic SCSI support 
    这个是LSI Logic设备驱动模块。使用这个设备的的朋友需要选取。
    Linux Kernel Configuration
       -> Device Drivers 
           -> Fusion MPT device support
                -> Fusion MPT (base + ScsiHost) drivers 
    二、网卡
这个设备和内核版本没有关系,下面是系统信息参考:
02:00.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)
    
    Linux Kernel Configuration
    -> Device Drivers
        -> Networking support 
            -> Ethernet (10 or 100Mbit)
                -> AMD PCnet32 PCI support

我的内核是kernel-2.6.16.27,但是安装了上面提示的
Fusion MPT (base + ScsiHost) drivers。问题依旧存在.所以我修改虚拟机的“.vmx",vmware默认的是LSI Logic,找到 ".vmx" 文件 里的scsi0.virtualDev = "lsilogic" 
改为 scsi0.virtualDev = "buslogic
从新编译内核,启动系统`终于跳过了

VFS:Cannot open root device "sda" or unknow-block(0,0)
Please append a correct "root=" boot option
kernel panic:VFS:Unable to mount root fs on unknown-block(0,0) 
这个 让人心烦的错误,但是虽之而来的又是一个错误。
The superblock could not be read or does not describe a correct ext2 filesystem. If the device is valid and it really contains an ext2 filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
google查看不到什么`然后就在 grub与编译内核里找,无意中启动系统的时候发先错误 /de/sdb1 ,晕死。原来fstab 写错了,应该是/dev/sdb1,呵呵犯下的低级错误,终于进到了系统,现在的LFS 是一个非常干净的系统,需要什么功能慢慢添加吧,呵呵,用源码一个包一个包装的系统自己用着真的很舒服呢。




本文转自Deidara 51CTO博客,原文链接:http://blog.51cto.com/deidara/99930,如需转载请自行联系原作者

【云栖快讯】阿里巴巴小程序繁星计划,20亿补贴第一弹云应用立即开通购买,限量从速!  详情请点击

网友评论