首页 > 开发 > 综合 > 正文

在RedHat 7.x 上实现reiserfs & quota

2024-07-21 02:37:07
字体:
来源:转载
供稿:网友

  一、本文的目的
  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:aqian@yeah.net)
  作者只就实现以上功能就一般的配置将本人的安装过程做一描述,本人无法保障在您的系统可以现实,不承担因按本文操作而对您及您的关联人、关联法人造成直接或间接损失的一般及连带责任。
                aqian@yeah.net

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表