You are looking at the HTML representation of the XML format.
HTML is good for debugging, but probably is not suitable for your application.
See complete documentation, or
API help for more information.
<?xml version="1.0"?>
<api>
<query-continue>
<allpages gapfrom="Reiser4 Hybrid transaction model" />
</query-continue>
<query>
<pages>
<page pageid="17" ns="0" title="Reiser4 Howto">
<revisions>
<rev xml:space="preserve">= Reiser4 =
As <tt>reiser4</tt> is not in mainline yet, we have to apply the right [[Reiser4_patchsets|patch]] to get this working:
wget http://downloads.sourceforge.net/project/reiser4/reiser4-for-linux-5.x/reiser4-for-5.8.10.patch.gz
cd /usr/src/linux
gzip -dc ~/reiser4-for-5.8.10.patch.gz | patch -p1
Now enable <tt>CONFIG_REISER4_FS</tt> and build (and install) your kernel. Do not enable debugging option: this is for developers only. Reboot.
If your kernel older than 4.10, make sure that your operating system uses a swap partition of standard recommended size.
To create/check/debug Reiser4 filesystems, you'll need the [[Reiser4progs|reiser4progs]].
Format your partition with mkfs.reiser4 utility. To protect your metadata by [[Reiser4_checksums | checksums]]
use mkfs option "-o node=node41". If you create reiser4 on [[Reiser4_discard_support | SSD drive]],
then use mkfs option "-d".
NOTE: mkfs.reiser4 of version 1.1.0 (and greater) by default turns intelligent compression on. To disable compression, override it by mkfs option
"create=reg40". Compression is highly recommended e.g. for root partitions, which contain system data. It is because default reiser4
intelligent compression heuristic works perfectly on a mix of well-compressible text files and non-compressible binaries. However,
intelligent compression is suboptimal for large media-files (ISO images, MP4, etc). Currently it is impossible to specify compression
per-file, or per-directory, so for large media-files we recommend to use a separate partition with disabled compression.
Choose a [[Reiser4_transaction_models|transaction model]], which is most suitable for you:
{| class="wikitable"
|-
! Mount option
! Description
! Intended for
! Default
|-
| txmod=journal
| Classic journaling with wandering logs. All blocks of a transaction are overwritten.
| HDD users, who performs a lot of random overwrites (e.g. databases)
| no
|-
| txmod=wa
| Classic Write-Anywhere. All blocks of a transaction except system ones get new location on disk.
| SSD users
| no
|-
| txmod=hybrid
| Hybrid transaction model. Some blocks are overwritten, other ones are written to new location on disk.
| HDD users, who don't perform a lot of random overwrites
| yes
|}
Mount your reiser4 partition. Use the mount option "-o discard" for SSD drives. More details are [[Reiser4_discard_support | here]].
[[Bugs|Report bugs]] if something is going wrong.
= ReiserFS =
Since <tt>reiserfs</tt> is in mainline, just enable the following options in your kernel <tt>.config</tt>:
CONFIG_REISERFS_FS
CONFIG_REISERFS_FS_XATTR (optional)
CONFIG_REISERFS_FS_POSIX_ACL (optional)
CONFIG_REISERFS_FS_SECURITY (optional)
Todays distributions should have this options enabled already, no need to build your kernel. However, not every Linux distribution ''supports'' <tt>reiserfs</tt>. But if you disregard your distribution's recommended settings, you'll probably know what you're doing anyway.
* [[ReiserFS/kerneloptions | Compile-Time Options for Configuring ReiserFS]]
To create/check/debug/resize ReiserFS filesystems, you'll need the [[Reiserfsprogs|reiserfsprogs]].
= Booting off a ReiserFS/Reiser4 partition =
Booting ''off a ReiserFS/Reiser4 partition'': what we mean here is that the kernel (usually a file in <tt>/boot</tt>) is actually located on a ReiserFS/Reiser4 partition. If you have a separate partition for <tt>/boot</tt> (e.g. a (readonly-mounted) ext2 partition at the beginning of your disk) and your ''root-filesystem'' is on a ReiserFS/Reiser4 partition, you only need to make sure that ReiserFS/Reiser4 support is enabled in your kernel - but that's true for every filesystem and has nothing to to with the bootloader.
As far as the writer is informed, booting off a ReiserFS partition is fully supported by [http://freshmeat.net/projects/lilo/ LiLo] or [http://www.gnu.org/software/grub/grub.html GRUB].
For Reiser4, LiLo is [http://wiki.archlinux.org/index.php/Reiser4FShowto#Packages known to work] out of the box. To install GRUB on a Reiser4 partition, [[Reiser4_Howto/GRUB|a few more steps are needed]].
= Links =
* [[Reiser4 checksums]]
* [[Reiser4 Mirrors and Failover]]
* [[Debug Reiser4|Reiser4 Debugging]]
* [http://web.archive.org/web/20061113154749/www.namesys.com/install_v4.html Getting started with Reiser4] (from archive.org, 2006-11-13)
[[category:ReiserFS]]
[[category:Reiser4]]</rev>
</revisions>
</page>
<page pageid="58" ns="0" title="Reiser4 Howto/GRUB">
<revisions>
<rev xml:space="preserve"><font color=red>NOTE: this is currently WIP '''and NOT TESTED AT ALL'''</font>
=== GRUB ===
Before building GRUB with [[Reiser4]] support, we have to [[Reiser4progs|build and install (<tt>libaal</tt> and) <tt>reiser4progs</tt>]]. Once we have done that, we can build GRUB. Unfortunately, comilation was not that easy, see the [[{{TALKPAGENAME}}|talkpage for details]], in short:
* compilation against <tt>reiser4progs-1.0.7</tt> fails
* add <tt>-fno-stack-protector</tt> to disable [https://wiki.ubuntu.com/GccSsp SSP], since this seems to be the default for Ubuntu.
Well, here is the whole procedure again; you may have to adjust the pathnames used here:
$ wget http://www.kernel.org/pub/linux/utils/fs/reiser4/libaal/libaal-1.0.5.tar.bz2
$ wget http://www.kernel.org/pub/linux/utils/fs/reiser4/libaal/libaal-1.0.5.tar.bz2.sign
$ gpg --recv-keys [http://kernel.org/signature.html 517D0F0E]
$ gpg --verify libaal-1.0.5.tar.bz2.sign libaal-1.0.5.tar.bz2
$ tar -xjf libaal-1.0.5.tar.bz2
$ cd libaal-1.0.5
$ ./configure --prefix=/opt/libaal
$ make && sudo make install
$ wget wget http://www.kernel.org/pub/linux/utils/fs/reiser4/reiser4progs/reiser4progs-1.0.6.tar.gz
$ wget wget http://www.kernel.org/pub/linux/utils/fs/reiser4/reiser4progs/reiser4progs-1.0.6.tar.gz.sign
$ gpg --verify reiser4progs-1.0.6.tar.gz.sign reiser4progs-1.0.6.tar.gz
$ tar -xzf reiser4progs-1.0.6.tar.gz
$ cd reiser4progs-1.0.6
$ sed '999 s/^#elif/#else/' -i plugin/node/node40/node40.c
$ CFLAGS="<font color="red">-fno-stack-protector</font> -I/opt/libaal/include" LDFLAGS="-L/opt/libaal/lib" \
./configure --prefix=/opt/reiser4progs-1.0.6
$ make && sudo make install
$ wget http://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz
$ wget http://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz.sig
$ gpg --recv-keys [http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=grub FE06BDEF]
$ gpg --verify grub-0.97.tar.gz.sig grub-0.97.tar.gz
$ tar -xzf grub-0.97.tar.gz
$ cd grub-0.97
$ patch -p1 < ../[[Media:Grub-0.97-libaal-1.0.5-reiser4progs-1.0.5.patch.txt|grub-0.97-libaal-1.0.5-reiser4progs-1.0.5.patch]]
$ CFLAGS="<font color="red">-fno-stack-protector</font> -I/opt/reiser4progs-1.0.6/include" \
CPPFLAGS="-I/opt/libaal/include -I/opt/reiser4progs-1.0.6/include" \
LDFLAGS="-L/opt/libaal/lib -L/opt/reiser4progs-1.0.6/lib" \
./configure --prefix=/opt/grub-r4
$ make && sudo make install
Strangely enough, the resulting GRUB binary seems to be linked to <tt>libaal</tt>, twice:
$ ldd /opt/grub-r4/sbin/grub | grep libaal
libaal-minimal.so.0 => not found
libaal-minimal.so.0 => /opt/libaal/lib/libaal-minimal.so.0 (0xb7e69000)
$ LD_LIBRARY_PATH=/opt/libaal/lib ldd /opt/grub-r4/sbin/grub | grep libaal
libaal-minimal.so.0 => /opt/libaal/lib/libaal-minimal.so.0 (0xb807f000)
Maybe I've added to many <tt>*FLAGS</tt> during <tt>./configure</tt>....
=== GRUB v2 ===
* 2009-06-17 - Reiser4 support for GRUB 2 ist still on the [http://grub.enbug.org/TodoList TODO list]
* [http://lists.gnu.org/archive/html/grub-devel/2008-02/msg00263.html 2008-02-09] - [http://www.linkedin.com/pub/yuriy-umanets/6/49a/856 Yuriy Umanets] asks if anybody is interested in Reiser4 support for GRUB 2, nobody replies :-\
=== Misc ===
* [[file:Grub-0.97-libaal-1.0.5-reiser4progs-1.0.5.patch.txt]] (MD5: 423d04e95c4c2d90b840f67e8a3a5024)
* [http://bugs.gentoo.org/46410 Gentoo #46410] - reiser4 support for grub
* [http://wiki.archlinux.org/index.php/Reiser4FShowto Reiser4FShowto in ArchLinux]
[[category:Reiser4]]</rev>
</revisions>
</page>
</pages>
</query>
</api>