- 论坛徽章:
- 0
|
原帖由 platinum 于 2009-8-6 11:14 发表
你看一下你的内核选项的 filesystem 里,ext2 是编译成 还是
如果是后者的话,我猜测有可能是后者
如果是的话,导致这个问题的原因有可能是这样的:
1、原来的系统是编译为 的
2、加载 /boot 的过程是在 ...
kernel借助与initrd来识别存储设备,
initrd中并没有挂载/boot分区的进程,
下边是解压initrd后查看init文件
echo Creating root device.
mkrootdev -t ext3 -o defaults,ro sda3
echo Mounting root filesystem.
mount /sysroot
echo Setting up other filesystems.
setuproot
echo Switching to new root and running init.
switchroot
1,挂载文件系统是由/etc/rc.sysinit来读取/etc/fstab来完成的,
2,编译成M的模块在需要的时候可以加到initrd文件中,把驱动编译进内核是因为太需要了,而不是用不到
我理解你的意思就是“由于ext2被编译进了内核,initrd无法加载ext2.ko,所以无法识别/boot分区,就不能挂载”,
照你这样讲的话,如果把ext3也编译进内核,initrd里边没有ext3.ko,那就无法挂载root了?是不是就无法进入系统了?
怎么可能的事情,如果内核已经编译了ext3,并且把对应的存储设备的驱动也集成进去了,完全就可以不用initrd里边的/lib文件夹的,因为内核已经可以完全识别硬件了。
欢迎斧正 |
|