让redhat8安装时使用reiserfs

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

先说明一点:redhat所使用的kernel是不支持reiserfs的,所以要让redhat的根分区

使用reiserfs,一般的方法是重编译内核。这篇短文不是教你怎么重编译内核,这是谁都

会的,不用我原创。事实上这里仍然使用redhat安装时提供的内核。

论坛上有朋友问起redhat不重编译内核在根分区使用reiserfs的方法,开始觉得不可

能,因为挂根分区是内核加载完之后做的第一件事情,那个时候还没文件系统,而红帽的

kernel不支持reiserfs,要支持的话必须 modprobe reiserfs 插入reiserfs的驱动,这

个时候连文件系统都没有,更别说找到reiserfs.o这个文件了。

后来想想其实是有办法的。仔细研究一下redhat的启动过程就可以知道,内核加载完

后首先挂的不是安装时所指定的硬盘分区(如hda1,hda5等),而是和vmlinuz-2.4.18.14同

在一个目录下的/boot/initrd-2.4.18-14.img。initrd-2.4.18-14.img 这个文件是个压

缩文件,解压后被放到内存里面,对内核来说就是ramdisk(/dev/ram0)。而这个ramdisk

的格式是ext2。在ramdisk加载完后运行一些ramdisk里面指定的命令后才加载真正的根分

区设备:/dev/hda1,/dev/hda5等,然后ramdisk被卸载。

可以这样理解,之所以有/boot/initrd-2.4.18-14.img这个东西,是让redhat linux

在挂根分区之前有能力作一些kernel没做的处理(一般是加载scsi驱动)

问题简单了:我们只要做个initrd文件,让他加载reiserfs.o这个驱动,那么reiserfs

的根分区不就能挂上去了吗?事实上这个initrd文件也不用自己一步一步做,有个工具:

mkinitrd。执行:

mkinitrd aaa.img 2.4.18-14 --preload=reiserfs

在当前目录下产生一个叫做aaa.img的initrd文件,把它拷到同kernel同一目录,重

新编辑一下lilo.conf或grub.conf就可以了

又有了新问题:本文不是叫做“如何让redhat8安装时使用reiserfs”吗,可redhat

的安装程序里面在分区的时候明明没有提供reiserfs这个选项啊?没错,往下看。大家都

知道使用redhat的时候可以通过同时按下alt+f1 -- fn选择多个终端,其实在安装的时候

你也可以这样做。试试看在安装程序显示完前面几个没用的消息之后按下 alt+f2,你得

到了一个shell!这样做:手工使用fdisk分区(很简单,一学就会),mkreiserfs把分区格

成reiserfs,然后在redhat安装程序的分区工具(就是那个名字叫d什么什么的东西)里只

选择各个分区的挂载点就行了,然后选软件包往下装。

装完之后重起会出错提示没办法挂载根分区,这个时候就要用一张软盘上的linux(或

其他可用的linux)把刚装的东西挂上去,然后把上面所说的自己字所制作的那个aaa.img

拷过去,改grub.conf就ok了

本文次序上可能有点凌乱,大家将就着看吧,能看明白的自然知道我是什么意思,看

不明白的应该也不会喜欢reiserfs。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航