LFS学习笔记(二)

根据LFS7.2文档的指导,完成了整个系统的编译安装等步骤,最后在引导的时候出现了下面的问题:

内核打出类似下面的一段话,然后死机:  

VFS: Cannot open root device "hda0" or unknown-block(0,0) Please append a correct "root=" boot option

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

通过google得知这是由于没有编译硬盘驱动到内核中,我主要参考了连个网络资料,我用的是vmware8.0版本的虚拟机,通过搜集网络资料如下的方式解决了问题:

如下为网络搜寻的解决办法,原地址为http://blog.csdn.net/q472599451/article/details/7992647

经研究分析,得知是硬盘驱动器的驱动模块没有加入到Linux内核中。

解决的也很直接:找到硬盘控制器的型号,然后把相应的驱动程序编译到内核中。更详细的解决步骤是:

1、在构建LFS的host系统上,运行lspci命令,列出机器的硬件信息。

2、在硬件信息中,查找 IDE interface 或 SATA Controller 或 SAS Controller 等关键字,得到到硬盘控制器的型号

3、在内核配置中,把对应的驱动程序编译到内核(不能编译成模块)。对 IDE硬盘,驱动程序在DeviceDrivers-->ATA/ATAPI/MFM/RLL配置项下找;对于 SATA硬盘,驱动程序在DeviceDriver-->SCSI device support-->SCSI low-level drivers配置项下找。

4、重新编译内核,copy到相应的/boot文件夹,重启机器,在LFS的新内核下,问题解决。

这是两外一个方法,原地址为:http://blog.csdn.net/qihuanfengyun/article/details/5189789

 在选择模块前,要先弄清楚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 

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) 
这个 让人心烦的错误。
另外如果提示“No file system” 没有文件系统之类的东西说明你内核里没有把文件驱动编译进内核。

     Linux Kernel Configuration

       ->File Systems

          ->里面选上什么ext2、ext3、ext4、xfs之类的都可以选上。(多了可以少了不行)

猜你喜欢

转载自blog.csdn.net/xiebingsuccess/article/details/91860427