|
Reiser 4 FS howto
Contributed by Itlain
这是我第一个尝试使用WiKi,所以请耐着点性子。无论改正什么,感觉都很好。这是社团集体努力的结果。警告,Reiser4仍旧没有稳定版,你可能需要为你的内核打上补丁。
Reiser4的有关信息:http://www.namesys.com/v4/v4.html
要升级到Reiser4,有3件重要的事必须在尝试之前完成。如下:
1.libaal
ftp://ftp.namesys.com/pub/reiser4progs/libaal-1.0.0.tar.gz
PKGBUILD
pkgname=libaal
pkgver=1.0.0
pkgrel=1
pkgdesc="libaal"
url="http://www.namesys.com"
depends=()
install=
source=(ftp://ftp.namesys.com/pub/reiser4progs/$pkgname-$pkgver.tar.gz)
md5sums=('f4580ec2969f79eb2d29b97f3cb9f04e')
build() {
cd $startdir/src/$pkgname-$pkgver
./configure --prefix=/usr
make || return 1
make prefix=$startdir/pkg/usr install
}
reiser4progs
ftp://ftp.namesys.com/pub/reiser4progs/reiser4progs-1.0.0.tar.gz
PKGBUILD
pkgname=reiser4progs
pkgver=1.0.0
pkgrel=1
pkgdesc="Reiser4 filesystem programs"
url="http://www.namesys.com/v4/v4.html"
depends=('e2fsprogs' 'libaal')
source=(ftp://ftp.namesys.com/pub/reiser4progs/$pkgname-$pkgver.tar.gz)
license=""
build() {
cd $startdir/src/$pkgname-$pkgver
./configure --prefix=/usr
make || return 1
make prefix=$startdir/pkg/usr install
}
Kernel Patch
你还需要重新编译打上补丁的内核。有两种方法。我推荐的是下载vanilla 2.6.8.1内核。我用来升级内核的补丁在:http://members.optusnet.com.au/ckolivas/kernel/
将内核及补丁下载下来,并全解压到/usr/src。
执行:
cd /usr/src/linux-2.6.8.1
patch -p1 < patch-2.6.8.1-ck4
补丁就打上了——没有任何提示。
接下来就是设置并编译新内核,确保你将下述两项编译进内核:
CONFIG_REISER4_FS=y
CONFIG_REISER4_LARGE_KEY=y
而且,必须确保4k stacks没有选。选了就会出错。编译完后,确保执行make modules和make modules_install。
接下就是备份当前的系统。我的系统是这样配置的:
/dev/hda2为Reiser3,根分区
/dev/hda3为Reiser3,/home分区
/dev/hda4是swap分区
我以root身份执行下面的命令:
cp -R /home /hometmp
这样,/home目录就备份好了,执行下面的命令,升级为Reiser4分区:
mkfs.reiser4 /dev/hda3
mkdir /reiser4
mount -t reiser4 /dev/hda3 /reiser4
现在我的分区已挂好了,执行下面的命令,将当前系统拷入新的Reiser4分区:
mkdir /reiser4/dev
mkdir /reiser4/proc
cp -a /etc /reiser4
cp -a /bin /reiser4
cp -a /var /reiser4
cp -a /hometmp /reiser4
cp -a /usr /reiser4
cp -a /lib /reiser4
cp -a /root /reiser4
cp -a /boot /reiser4
cp -a /tmp /reiser4
cp -a /sbin /reiser4
mkdir /reiser4/sys
确保已将全部文件及目录拷入了新的分区。接下来将调整/etc/fstab和/etc/lilo.conf。
我的新的lilo.conf
boot=/dev/hda
default=reiser4 #将默认的boot分区改为Reiser4
timeout=50
lba32
compact
prompt
image=/boot/arch
label=arch #老的reiser3 arch系统
root=/dev/hda2
read-only
append="devfs=nomount" #注意,我用的udev,如果你用的是devfs,就别加这一行,否则会出问题
image=/boot/reiser4arch
label=reiser4 #新的reiser4分区
read-only
root=/dev/hda3 #注意:这指向我的/home分区
append="devfs=nomount"
other=/dev/hda1
label=dos # What can I say. Need it for work
# End of file
/etc/fstab
none /proc proc defaults 0 0
none /dev/pts devpts defaults 0 0
none /dev/shm tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
usbfs /proc/bus/usb usbfs defaults 0 0
/dev/cdrom /mnt/cd iso9660 ro,user,noauto,unhide 0 0
/dev/dvd /mnt/dvd udf ro,user,noauto,unhide 0 0
/dev/hda4 swap swap defaults 0 0
#/dev/hda2 / reiserfs defaults 0 0 #注释掉旧系统(旧的根分区)
/dev/hda3 / reiser4 defaults 0 0 #将/home分区改为root,类型改成reiser4
这样就搞定了,重新运行lilo安装新核心。
重启进入新系统——没有任何问题。
以root身份登录,执行:
mv /hometmp /home
cd /home
chown -R username.group <userdir> #将属主改成各个用户,否则就会有问题了
#我的是这样的"chown -R itlain.users itlain"
Logout,并以普通用户登录,启动X。到现在为止,一切OK,我也不希望会出现什么问题。
我的下一目标就是无论如何也要将我的老的root分区移到新的/home分区,把两者分开。
我对整个过程感到很开心。如果你有什么问题或见解,你可以在irc上找到我——在我没睡觉的时候,或者你可以发邮件给我esears AT fluxback DOT net(译注:请转换一下,尊重原作者的保密愿望)。 |
|