blfs_lfs / 未分类 · 2012年8月6日

lfs成功记

时间:第一天16:16—第二天 12点
昨天,又是星期6, 突然起床后,看书又看不下,心痒痒的, 对gentoo 已 算是用了好久一阵了,又想折腾lfs ,
记得上次(5月份) 一路做下来 没有错,但重启后 进不了系统
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device “sda2”or unknown-block(2,0)
Please append a correct “root=” boot option; here are the available partitions:
0b00 1048575 sr0 driver: sr
Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
还记得 第一次lfs 是在 09年 ,有一家公司面试要求这个,并给了 几天的时间,可惜当时没弄成功,后来 因为各种原来,一直想再lfs,但 因为各原因 没弄,在 今年 2,4,5,月 折腾了好几次,但都以失败收场,心情那个不爽呀!
说弄就在,在PC 搞了个虚拟机, 挂载lfslivecd ,设置网络后 启动openssh , 然后 在自己的gentoo上 连可以 ,这样就不用 手工打命令了,可以一边看官方的,一边往终端 复制命令,又快又不出错! 记得自己09年那阵 ,竟然是手工打命令的 ,结果又慢,又出错 崩溃死了!
从 10点半 开始,当然 中间去了吃午餐, 但 折腾到 16点的时候,竟然报错 ,杯具呀 ! 想了好久 , 另建立一个 虚拟机 ,再来一次,于是 真正的开始时间变成了 16:16分 到了临时工具链 时的 glibc 比较耗时间, 便在哪时 出去买菜,自己回来随便DIY个晚餐 ,接下来的 情况是一边 做晚餐,一边回来打命令,结果 一路暂时没出错, 但到早上那个出错的 那个命令时,我特别怕又出来, 查看log 果真又说 找不到ld,搞了 半个小时,才明白,原来多了个空格呀 坑呀 !
搞定这个后,又一路 向前走, 吃完自己做的饭后, lfs当然还没好,只到目标系统的制作 的 Berkeley DB, 还没完成一半呀 。无聊死了
24点了,依然还没好 ,才到 autoconf and amtomake 这两个 特别浪费时间,睡了一觉起来,还没好呢 ,便又睡觉去了,当然 没有关机 !
早上 4点醒来了,又一路往前,在 10点左右 ,终于 弄完,重启的过程中 ,那个紧张呀 ,结果是 又是 5月出现的那个错误呀
google 了 半天,都说是sata硬盘的问题, 于是 重新挂载livecd chroot ,按网上说的 重新编译kernel 可惜重启后 还是 当然的错误还是进入不了系统 ,又再 google 又是失败 我都不知这样 多少个来回, 心情是真的烦死了呀!差点想把pc给 灭了的想法都有了,人又非常困, 最讨厌就是这样了,用了 10个小时 坚持做一件事,结果却是失败的 !
差点想不弄了,但又很不 甘心 ,又是google 了一阵,都与前面的教程 差不多后,后来, 结合了几个教程,把sata 有关的 在make menuconfig 全都选择上了, 再编译,再重启 , 等重启完成的那个心情 好 怕又是失败呀 结果 结果 ,终于 OK呀 那个鸡动呀! 最后 午餐都没吃就睡着了 睡到 3点多,现在还熊猫中!代码好大呀 不知这算不算进步 !!又困了 早知 去 轮滑好了 !
出现错误后,能解决是最有收获的,现在想起,要是上次出现错误,我有好好努力找解决方法,就不会 昨天又弄了一次呀,都怪自己!
海勇兄说得很好“遇到问题并不可怕,只要认真对待问题,这些问题往往会成为我们知识增加的有效途径。第一次就能制作成功固然可喜,但在解决问题中完成制作也会成为不可多得的经验积累过程”
###错误的解决
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device “sda2”or unknown-block(2,0)
Please append a correct “root=” boot option; here are the available partitions:
0b00 1048575 sr0 driver: sr
Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
虚拟机的硬盘使用的 SCSI 适配器为 LSI Logic。
需要增加对 Fusion MPT base driver 的支持(见 dmesg 日志)
Device Drivers —>
— Fusion MPT device support
<*> Fusion MPT ScsiHost drivers for SPI
<*> Fusion MPT ScsiHost drivers for FC
<*> Fusion MPT ScsiHost drivers for SAS
(128) Maximum number of scatter gather entries (16 – 128)
<*> Fusion MPT misc device (ioctl) driver
必须添加这个驱动,否则系统启动时可能出现类似以下错误:
第一 LFS zh.doc 里面的 kernel选项
第二
虚拟机的硬盘使用的 SCSI 适配器为 LSI Logic。
需要增加对 Fusion MPT base driver 的支持(见 dmesg 日志)
Device Drivers —>
— Fusion MPT device support
<*> Fusion MPT ScsiHost drivers for SPI
<*> Fusion MPT ScsiHost drivers for FC
<*> Fusion MPT ScsiHost drivers for SAS
(128) Maximum number of scatter gather entries (16 – 128)
<*> Fusion MPT misc device (ioctl) driver
必须添加这个驱动,否则系统启动时可能出现类似以下错误:
第三
— 在宿主机查看硬件配置
root [ ~ ]# lspci | grep -i "sata"
00:0d.0 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 02)
root [ ~ ]# lspci | grep -i "ide"
00:01.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
root [ ~ ]#
— 内核选项配置
$ make menuconfig
Device Drivers
|—> SCSI device support
|—> <*> SCSI device support
|—> <*> SCSI disk support
|—> <*> Serial ATA (prod) and Parallel ATA (experimental) drivers
|—> <*> AHCI SATA support
|—> <*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (NEW)
|—> <*> Intel PATA old PIIX support (NEW)
File systems
|—> <*> Ext3 journalling file system support
|—> [*] Ext3 extended attributes
|—> [*] Ext3 POSIX Access Control Lists
— 验证配置选项
$ grep -i sata .config | grep "^[^#]"
CONFIG_SATA_AHCI=y
$ grep -i scsi .config | grep "^[^#]"
CONFIG_SCSI=y
CONFIG_SCSI_NETLINK=y
CONFIG_SCSI_WAIT_SCAN=m
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=y
CONFIG_SCSI_AIC7XXX=y
CONFIG_SCSI_AIC79XX=y
$ grep -i ahci .config | grep "^[^#]"
CONFIG_SATA_AHCI=y
$
重新编译内核,重启,成功 嘻嘻
##这两个 结合在一起就行了
#下面是一些参考资料
http://ouroboros.blog.51cto.com/2468486/500124