当前位置:Linux教程 - Linux业界 - 在RedHat 7.x 上实现reiserfs & quota

在RedHat 7.x 上实现reiserfs & quota

一、本文的目的
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