一、本文的目的
RedHat 7.x是最常用也是取容易取得的linux發行版,由於rh公司的原因,日記文件默認支持的是ext3,雖然其內核也支持reiserfs文件系統,但是無論如果配置都無法quota(配額)。而對於File /mail/cache Server,使用reiserfs文件系統是最佳的選擇,為此在網上搜了一下有關的文章,還真沒有完整的介紹,這就是本文的目的。
二、關於本文的作者
本人無任何專業的編程經驗,對於linux只是了解皮毛,所以的編譯過程全部是依靠readme & install文件,有不當之處請指正。
三、准備與基本知識
1、獨立按rh的安裝向導,定制並選擇編譯程序(compile tools)的包
,建議安裝7.2以上的版本。
2、可以使用rpm 命令安裝/刪除/查找包及包內的文件;
3、可以通過tar ball(*.tar.gz)的readme & install文件安裝程序。
4、可以用vi編輯文件
四、基本的假設
你已有一台已安裝了rh 7.2以上版本的機器,在安裝過程中你已為准備使用reiserfs& quota而設立了獨立的分區,可以使用gcc,你了解你的機器包括但不限於以下配置: 網卡的芯片、scsi的芯片(如果有)、cpu的類型。
五、安裝新的內核
根據www.reiserfs.org的說明,你需要下載最新的kernel 2.4.20,並安裝最新quota for 2.4.20的補丁。
cd /tmp
wget -c --passive-ftp ftp://ftp.jp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.20.tar.bz2(jp的速度比較快)
bzip2 -df linux-2.*.bz2 |tar -zxvf //超過了150M
mv linux-2.4.20 /usr/src/
cd /usr/src
rm linux
ln -s linux-2.4.20 linux
下載補丁:
cd /tmp
wget -c --passive-ftp ftp://ftp.namesys.com/pub/reiserfs-for-2.4/testing/quota-2.4.20/*
gzip -d 01*.gz
gzip -d 02*.gz
gzip -d 03*.gz
gzip -d 04*.gz
mv *.diff /usr/src/ //必須是這個目錄
cd /usr/src
patch -p0 < 01-*.diff
patch -p0 < 02-*.diff
patch -p0 < 03-*.diff
patch -p0 < 04-*.diff
建立新的鏈接:
cd /usr/include
rm -r asm linux scsi
ln -s /usr/src/linux/include/asm-i386 asm
ln -s /usr/src/linux/include/linux linux
ln -s /usr/src/linux/include/scsi scsi
編譯新的內核:
cd /usr/src/linux
make menuconfig //需要以下的兩個包:ncurses & ncurses-devel
本文僅涉及 reiserfs & quota 的部分配置,其它的配置請閱讀其它相關的文件(為本安裝過程的順暢,記到將網卡和scsi卡和其它你認為需要的都編譯上,不然後安裝後你也干不了什麼)
file system ->
[*] quota support
Old quota format support
[*] Compatible quota interface
Kernel automounter support
Kernel automounter vesion 4 support
Reiserfs support
[]Enable reserfs debug mode //不需要
[*]Stats in /proc/fs/reiserfs
Ext3 Jornalling files system support // 這是rh需要的
編譯內核開始,大約要半個小時,你大可去喝杯茶。
make dep ;make clean ; make zImage ;make bzImage ; make modules ;make modules_install
下面就是安裝了,本處假設你是用grub做為啟動(lilo的啟動我沒有試,網上就有)
cp System.map /boot/System.map-2.4.20
cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.20
cd /boot
rm System.map vmlinuz module-info //以下5步我覺得沒有也可,都是按網上來的
ln -s System.map-2.4.20 System.map
ln -s vmlinuz-2.4.20 vmlinuz
cp module-info-2.4.7-10 module-info-2.4.20
ln -s module-info-2.4.20 module-info // 到此
下面就是生成 initrd.img (這是干什麼的我也不清楚,照葫蘆畫瓢,網上可以找到說明)
cd /usr/src
mkinitrd /boot/initrd-2.4.20.img 2.4.20 (你需要mkinitrd*.rpm )
修改啟動程序
vi /boot/grub/grub.conf (下面的是我機器上的文件)
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda3
# initrd /initrd-version.img
#boot=/dev/sda
default=1
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.7-10)
root (hd0,0)
kernel /vmlinuz-2.4.7-10 ro root=/dev/sda3
initrd /initrd-2.4.7-10.img
title Red Hat Linux (2.4.20)
root (hd0,0)
kernel /vmlinuz-2.4.20 ro root=/dev/sda3
initrd /initrd-2.4.20.img
重新啟動機器,看啟動後系統是否正常,如果有問題需要以舊內核重啟後重新編譯內核。
六、安裝新的reiserfs 工具
rpm -e reiserfs-utils //刪除已有的工具
cd /tmp
wget -c --passive-ftp ftp://ftp.namesys.com/pub/reiserfsprogs/reiserfsprogs-3.6.5.tar.gz
tar -zxvf reiserfsprogs*.gz
cd reiserfsprogs-3.6.5
/configure
make & make install
在 /usr/local/sbin/下會有幾個文件,要用到的mkreiserfs
init 1 //進入單用戶模式
假設你的要將 /home --/dev/sd5 設為reiserfs & quota,你還沒有建立除root外的用戶。
#umount /dev/sd5
#mkreiserfs /dev/sd5 // 按提示 yes
修改 /etc/fstab ,將 /home的一行修改為:
/dev/sd5 /home reiserfs default, usrquota 1,2
對你/var分區,也可以用以上的方法,進入單用戶, 假設/var 對應/dev/sd6
cd /
tar -czvf var.tar.gz /var
umount /dev/sd6
mkreiserfs /dev/sd6
再按上面的修改/etc/fstab,重啟進入單用戶,
tar -zxvf var.tar.gz //把var目錄恢復
重啟後會有出現timestamp錯誤,沒關系的,再重啟就沒能問題了。
七、配置quota
我沒有安裝新的quota,用的還是rh 自帶的quota,用關quota的配置有更詳細的文檔支持,我這只說幾點注意:
cd /home
touch quota.user
rh重啟後,rc.sysinit在執行到quota的腳本會出錯,不用管它。
/sbin/quotacheck -avug
/sbin/quotaon -avug
再次重啟後rc.sysinit就沒有問題了,現在可以加用戶並配置quota文件:
edquota -u yourname
修改block hard soft inode hard soft 下面對應的數字就可以了。
八、關於作者的義務 (email:[email protected])
作者只就實現以上功能就一般的配置將本人的安裝過程做一描述,本人無法保障在您的系統可以現實,不承擔因按本文操作而對您及您的關聯人、關聯法人造成直接或間接損失的一般及連帶責任。
[email protected]
2003-04-08