常常听到一些初次玩LFS的朋友讲:经历了千辛万苦,终于编译完了全部LFS系统,怀着激动的心情重启机器,期待着自己亲手构建的LFS顺利运行时,经常会遇到Kernel panic ----内核打出类似下面的一段话,然后死机:
VFS: Cannot open root device "sda8" 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)
这个问题应该怎么解决?
已我的经验,造成这个问题的原因十有八九是没有把root文件系统所在的硬盘控制器的驱动程序编译到内核中。解决的也很直接:找到硬盘控制器的型号,然后把相应的驱动程序编译到内核中。
更详细的解决步骤是:
1、在构建LFS的host系统上,运行lspci命令,列出机器的硬件信息。
2、在硬件信息中,查找 IDE interface 或 SATA Controller 或 SAS Controller 等关键字,得到到硬盘控制器的型号
3、在内核配置中,把对应的驱动程序编译到内核(不能编译成模块)。对 IDE硬盘,驱动程序在Device Drivers-->ATA/ATAPI/MFM/RLL配置项下找;对于 SATA硬盘,驱动程序在Device Driver-->SCSI device support-->SCSI low-level drivers配置项下找。
4、重启机器,在LFS的新内核下,问题解决。