|
楼主 |
发表于 2002-12-13 17:27:40
|
显示全部楼层
LFS最后一步之终结
doooom兄不好意思啊,前两天俗务缠身LFS这最后一步就晾了些时候
后来发现root分区mount不上是硬盘驱动的问题,我用的是SCSI硬盘(Intel PC Server,双CPU,内存1G,编译内核真是飞一般的感觉,呵呵),boot的时候比一般IDE硬盘要麻烦一些。
现已可成功使用我的LFS。
解决方法如下:
1.编译安装内核及内核模块
make mrproper
make menuconfig
这一步的要点是:
a)在“Block devices”配置节中“RAM disk support”设定为built-in方式("<*>"),这时会出现“Initial RAM disk (initrd) support”选项,选中它("")。
b)在“SCSI support”配置节中的“SCSI low-level drivers”子配置节中选择相应的SCSI设备(我选择了所有Adaptec的支持,以module方式("<M>"))。
c)选择最下面的“Save Configuration to an Alternate File ”把当前配置保存到一个文件中以便以后的调整和使用。
make bzImage && make modules && make modules_install
在编译和安装模块过程中会出现一些奇怪的问题。重新执行make menuconfig调整一下配置选项即可。
cp arch/i386/boot/bzImage /boot/lfskernel && cp System.map /boot
2.生成initrd映像文件
initrd提供了系统启动时加载一个RAM文件系统的能力,该RAM系统被临时加载为root文件系统,然后载入一些必要的内核模块(如SCSI支持时),一旦最终的root分区被加载,RAM系统即被卸除。详细见内核源码目录下的Documentation/initrd.txt。
因我chroot的LFS系统中无initrd命令,转到宿主系统MDK8.2下
ln -s /lib/modules/2.4.20 $LFS/lib/modules/2.4.20
mkinitrd initrd-lfs.img 2.4.20 && cp initrd-lfs.img $LFS/boot
3.然后修改lilo.conf加入对LFS内核的支持,我的配置如下:
image=/boot/lfskernel
label=lfs
root=/dev/sda2
initrd=/boot/initrd-lfs.img
read-only
然后执行lilo -v
4.一个需注意的地方是:在reboot前必须手工在LFS的root分区中建立一个空目录/initrd供上面生成的initrd-lfs.img在系统boot时挂载用。
最后就是init 6待lilo界面出现时选择“lfs”看着一行行的启动信息蹦出来,最后出现login:
哈哈好爽!!
下个礼拜就可以进入我的BLFS啦:) |
|