Chinaunix

标题: 如何将ext3以模块方式工作 [打印本页]

作者: alexgaowei    时间: 2005-08-10 18:27
标题: 如何将ext3以模块方式工作
大家好!
我的机器是RedHat9,我在编译2.6 kernel时,尝试将ext3编成模块方式,想通过initrd.img来启动ext3的文件系统,以此也好好理解一下initrd的工作方式。网上找了的一大堆资料无一例外地都是将ext3编成内核中去。但实际上,在redhat的发行版中,ext3都是默认作为模块方式工作的。所以,我想ext3编译成模块应该是可行的。
我在内核config配置时,也选上了:
RAM disk support
Initial RAM disk(initrd) support
也选上了ext2 support
但编译后,重启还是同网上常提的错误一样:
mount: error 19 mounting ext3
Freeing unused kernel memory: 244k freed
Kernel panic – not syncing: No init found. Try passing init = option to kernel.

我也尝试修改了grub.conf中root=LABLE=\路径,比如修改成绝对分区编号
root=/dev/hda2,但问题依旧。
请问,在2.6内核编译中,如何配置才能将ext3以模块方式工作?
谢谢!
作者: yuguanglou    时间: 2005-08-11 00:21
标题: 如何将ext3以模块方式工作
你这个跨度也挺大的
你这样升级好象有些障碍吧 2.6 的内核对GCC 的版本有要求
而且你也没有生成新版本的 initrd.img 文件
你就编了个内核而已 其他的驱动啥的都没有 你怎么个加载 又怎么个映射呢?
编内核完了以后要编模块 然后安装模块 然后生成2.6内核的 initrd.img 文件。
作者: platinum    时间: 2005-08-11 00:26
标题: 如何将ext3以模块方式工作
原帖由 "alexgaowei" 发表:
大家好!
我的机器是RedHat9,我在编译2.6 kernel时,尝试将ext3编成模块方式,想通过initrd.img来启动ext3的文件系统

你可否打开过 initrd.img 看过?是否看过里面 /etc/linuxrc 的内容?(2.4、2.6 都可以)
默认的 ext3 都是以 module 形式载入的,你遇到的问题应该是 make menuconfig 时犯的错误
作者: alexgaowei    时间: 2005-08-11 10:45
标题: 如何将ext3以模块方式工作
原帖由 "yuguanglou" 发表:
你这个跨度也挺大的
你这样升级好象有些障碍吧 2.6 的内核对GCC 的版本有要求
而且你也没有生成新版本的 initrd.img 文件
你就编了个内核而已 其他的驱动啥的都没有 你怎么个加载 又怎么个映射呢?
编内核完了..........


1) 2.6内核对GCC的版本要求是:
Gnu C                  2.95.3         # gcc --version
但RedHat9已经是gcc version 3.2.2
2)我查了一下网上资料,在编译内核最后执行make install时,其实是完成了
mkinitrd /boot/initrd-2.6.12.3.img 2.6.12.3
命令,因此是生成了新的initrd.img文件。只是我这个有问题……
作者: bingosek    时间: 2005-08-11 11:31
标题: 如何将ext3以模块方式工作
教你一个方法,你试试行不行:
mkdir /tmp/initrd;cp /boot/initrdxxxx.img /tmp/initrd/initrdxxxx.img.gz;gunzip /tmp/initrdxxxx.img.gz;mkdir /mnt/initrd; mount -o loop /tmp/initrd/initrdxxxx.img /mnt/initrd
然后你把ext3.o copy到/mnt/initrd/lib,再修改/mnt/initrd/linuxrc,看看有没有insmod ext3.o这一行,如果没有在加上
然后执行umount,压缩,重命名,拷贝回去的操作就可以了
作者: alexgaowei    时间: 2005-08-12 17:31
标题: 如何将ext3以模块方式工作
谢谢,我回头试了后,再告诉结果。

原帖由 "bingosek" 发表:
教你一个方法,你试试行不行:
mkdir /tmp/initrd;cp /boot/initrdxxxx.img /tmp/initrd/initrdxxxx.img.gz;gunzip /tmp/initrdxxxx.img.gz;mkdir /mnt/initrd; mount -o loop /tmp/initrd/initrdxxxx.img /mnt/ini..........





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2