当前位置:Linux教程 - RedHat - 安装启动 - 让redhat8安装时使用reiserfs

安装启动 - 让redhat8安装时使用reiserfs

让redhat8安装时使用reiserfs
2004-04-23 15:18 pm
来自:Linux文档
现载:Www.8s8s.coM
地址:无名

  先说明一点: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。