From ArchWiki
Revision as of 18:10, 19 August 2008 by Ilikenwf (talk | contribs)
Jump to navigation Jump to search

Contributed by Itlain and others "Updated after a long time by ilikenwf"

Short Introduction

Reiser4 is a new file system developed by Namesys (site now dead). It is a very fast file system (according to Namesys, the fastest) with such features as transparent compression with little to no extra processing cost. You can find benchmarks between the different file systems available on Linux. It is also an atomic file system, "which means that your file system operations either entirely occur, or they entirely don't, and they don't corrupt due to half occurring."

Since the original writing, this tutorial has been retooled to focus more on moving everything but /boot to Reiser4.

Important Notes

  • Reiser4 requires a patched kernel
  • If you're still using a 2.4 kernel, note that Reiser4 is developed for the 2.6 kernel and is not backported
  • Reiser4 consumes a little more CPU than other filesystems
  • Be warned that Reiser4 is still not considered a stable release.

Required materials

  • One empty partition for the new Reiser4 system
  • One small (12 - 200 MB) non-Reiser4 partition, such as ext2 for /boot
  • A Reiser4 enabled LiveCD. Only a few are still in existance for some reason:

I highly reccomend the PLD RescueCD, as it seems to be one of the few in existance that still have working Reiser4 support. You will probably need Gparted's livecd as mentioned above too.


You will need to use yaourt, since the unstable repo was recently emptied.

1. Install reiser4progs

yaourt -S reiser4progs

2. You'll need a reiser4 patched kernel. I recommend kernel26zen-git from AUR, but you could also try installing kernel26mm from the repos. Note that it seems the mainline kernels have had broken Reiser4 support in the recent past.

yaourt -S kernel26zen-git

3. Bootloader

a) Reccomended: make a small (as mentioned above, 20-200mb) partition for /boot with a filesystem other than Reiser4 with gparted, and then copy your /boot folder to the partition. Update the menu.lst accordingly, making a new entry for your Reiser4 partition.

b) lilo is reccomended if you with to put everything including /boot on a Reiser4 partition. This is not advised, as you'll get an error when trying to update lilo.conf.

c) If you wish to use grub with /boot residing on a Reiser4 partition, the grub package should be rebuilt applying the reiser4 patch. This site has a great guide, however I (ilikenwf) have tried this but failed.

Install and reboot

You'll have to install the new packages, and update your kernel and your bootloader. Then, check and make sure it all works.

Remember to run lilo as root if you choose it as bootloader.

Moving to Reiser4

In the next steps we'll copy the data from your current root partition to the new Reiser4 partitions. Make sure you have enough disk space on the Reiser4 partition. You can check this disk information with df.

Sample system

* /dev/hda1: (10 Gb, 5 Gb free); Reiserfs /mnt/reiser4
* /dev/hda2: (10 Gb, 10 Gb free); Reiser4 /
* /dev/hda3: (200 Mb, 180 Mb free); ext2 /boot


Run the following commands:

mkfs.reiser4 /dev/hda1
mkdir /mnt/reiser4
mount -t reiser4 /dev/hda1 /mnt/reiser4

It is recommended that you use the amazing Cryptcompress plugin by formatting with the following command:

mkfs.reiser4 -o create=ccreg40,compress=lzo1 /dev/hda1

Copy system

Once the partition is formated, copy you current system to the new partition and create the system directories. You may either do this from Archlinux, or to make it easier (so that you don't have to use makedev later), just boot up with the PLD Rescue CD and mount both your new Reiser4 partition and your current root partition. Then, just copy everything over (as root) like so:

cd /mnt
mkdir oldroot
mkdir reiser4
mount /dev/hda1 oldroot
mount /dev/hda2 reiser4 (the Reiser4 partition)
cp -R -a /mnt/oldroot/* /mnt/reiser4/

Then, you need to mount your /boot partition, and if you haven't already, copy /boot from your original root partition over to it. Note that it is suggested you remove /boot from your new Reiser4 partition and then make an empty folder called boot in the root of the partition to use as a mountpoint for it, which is reflected later in your fstab.

mkdir bootpart
mount /dev/hda3 bootpart
cp -R -a /mnt/oldroot/boot/* /mnt/bootpart/

Don't forget to edit your bootloader's config appropriately (see examples at the bottom of the article).


Note: If Reiser4 works out well for you, I'd (at least in the sample system) format the old root partition once everything is confirmed working with a stable fs and use it for storage.

# /etc/fstab: static file system information
# <file system>        <dir>         <type>    <options>          <dump> <pass>
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/cdroms/cdrom0     /mnt/cd   iso9660   ro,user,noauto,unhide   0      0
/dev/cdroms/cdrom0     /mnt/dvd  udf       ro,user,noauto,unhide   0      0

/dev/hda1              reiser4           defaults,noatime,nodiratime,notail           0      1
/dev/hda2              /mnt/storage         ext3      defaults           0      0
/dev/hda3              /storage              ext2   defaults           0      1

Bootloader Examples


(on ext2 /boot partition, mind you)

color light-blue/black light-cyan/blue
timeout 0
default 0

# (0) Arch Linux
title  Arch Linux
root   (hd0,1) '''# You will have to change this to appopriately point to your /boot partion'''
kernel /boot/vmlinuz26zen '''root=/dev/sdaX''' ro noatime nodiratime notail acl init=/sbin/bootchartd
initrd /boot/kernel26zen.img

# (1) Arch Linux
title  Arch Linux Fallback
root   (hd0,1)  '''# You will have to change this to appopriately point to your /boot partion'''
kernel /boot/vmlinuz26 '''root=/dev/sdaX''' ro
initrd /boot/kernel26.img

# (1) Windoze
#title Windows
#rootnoverify (hd0,1)  '''# You will have to change this to appopriately point to your /boot partion'''
#chainloader +1


# /etc/lilo.conf

# This line often fixes L40 errors on bootup
# disk=/dev/hda bios=0x80


        append="video=vesafb:1024x768-24@56,ywrap,mtrr splash=verbose,theme:darch console=tty1 resume2=swap:/dev/hdb1"

        append="video=vesafb:1024x768-24@56,ywrap,mtrr splash=verbose,theme:darch console=tty1 resume2=swap:/dev/hdb1"

Run lilo to install new kernels.


You are hopefully done now, you can reboot your system and try to run the 'new' reiser4 installation. If you plan to format /dev/hda3, make sure you run lilo or grub from the new system and configure them like above.

Possible Issues

  • Permissions: chown -R <userdir>
  • If you have problem with "su" command after the change of fs, you should reinstall coreutils package.
  • The first time you start the new system, no modules are loaded:
    • Run hwdetect --load-modules
    • Restart some daemons from /etc/rc.d
    • Everything works fine now and the next time you reboot.

External Links