|
|

楼主 |
发表于 2006-2-21 16:50:34
|
显示全部楼层
有几个关键性的问题,咨询一下
Post by lvjinhua
注:我使用的版本为:LFS-LiveCD6.2-pre2
首先,内核得支持squashfs文件系统格式,如果不支持得重新编译,否则不能挂载 LFS-LiveCD中的光盘镜像文件(。root。sqfs)(前边已经有人提到了),当然其Live-CD中的内核本身是带上的。
然后,[color="Red"]1。将CD中的 .root.sqfs 挂载到一个目录下,将其里面边的内容完全拷贝到另一个单独的分区中(我的是/mnt/hda7),使用 cp -a 就行,还可以保留文件的各种属性。
这样拷贝过去的文件系统默认缺少 /tmp ,/proc ,/boot ,将其补充完整。并修改 /tmp的权限: chmod a+w /tmp
接着,得[color="red"]2。重新编译内核以便让其起动时支持你的文件系统类型。因为LiveCD将Ext2,Ext3等均编译为模块的形式。因此,将其愿有不完整的内核源码树删除,并重新解压内核到其/usr/src目录下:
rm -rf /mnt/hda7/usr/src/*
tar xpf lfs-sources/linux-2.6.12.5.tar.bz2
配置内核(make menuconfig),将Ext2,Ext3选择为编译到内核中,再增加选择 -> Pseudo filesystems->/dev file system support (OBSOLETE)和 Automatically mount at boot (这两项好像不选也行)
(注意,我编译内核的时候使用 chroot /mnt/hda7 切换了环境)
将编译得到的内核复制到 /mnt/hda7/boot 下,在以前系统的GRUB启动项中加入相关语句:
title lfs-livecd6.1
root (hd0,6)
kernel /boot/linux root=/dev/hda7 rw vga=791
注意:kernel项一定得选择rw,不然后最后得到的文件系统“只读”,好像在LFS的启动脚本中没有将根文件系统重新挂载为“读写”状态。
接着,修改 /mnt/hda7/etc/fstab 文件以达到我们的要求。
大概就这样,我就是在这个环境中写的这些内容。不过还是有点小问题,好像有些启动脚本没有启动,并且重启有错误,还得再研究研究。
1。这个过程,你的主机系统是什么?kernel是多少?rootfilesystem从哪里来的?
2。为什么要重新编译内核呢?内核没有把对ext2的支持编译进去,可是提供了模块啊。
在这个过程中,你仅仅把root.sqfs拷贝出来了,/boot/isolinux/下面的linuxz和initrramfs_data_cpio怎么没有看到使用呢? |
|