歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

讓redhat8安裝時使用reiserfs

  先說明一點: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。




Copyright © Linux教程網 All Rights Reserved