.\" -*- nroff -*-
.\" Copyright 1996-2004 Hans Reiser.
.\" 
.TH REISERFSTUNE 8 "January 2009" "Reiserfsprogs-@PACKAGE_VERSION@"
.SH NAME
reiserfstune \- The tunning tool for the ReiserFS filesystem.
.SH SYNOPSIS
.B reiserfstune
[ \fB-f\fR ]
[ \fB-h\fR | \fB--help\fR ]
[ \fB-j\fR | \fB--journal-device\fR \fIFILE\fR ]
[ \fB--no-journal-available\fR ]
[ \fB--journal-new-device\fR \fIFILE\fR ] [ \fB--make-journal-standard\fR ]
[ \fB-s\fR | \fB--journal-new-size\fR \fIN\fR ]
[ \fB-o\fR | \fB--journal-new-offset\fR \fIN\fR ]
[ \fB-t\fR | \fB--max-transaction-size\fR \fIN\fR ]
[ \fB-b\fR | \fB--add-badblocks\fR \fIfile\fR ]
[ \fB-B\fR | \fB--badblocks\fR \fIfile\fR ]
[ \fB-u\fR | \fB--uuid \fIUUID\fR ]
[ \fB-l\fR | \fB--label \fILABEL\fR ]
[ \fB-c\fR | \fB--check-interval \fIinterval-in-days\fR ]
[ \fB-C\fR | \fB--time-last-checked \fItimestamp\fR ]
[ \fB-m\fR | \fB--max-mnt-count \fIcount\fR ]
[ \fB-M\fR | \fB--mnt-count \fIcount\fR ]
.I device
.SH DESCRIPTION
\fBreiserfstune\fR is used for tuning the ReiserFS. It can change two journal 
parameters (the journal size and the maximum transaction size), and it can move 
the journal's location to a new specified block device. (The old ReiserFS's 
journal may be kept unused, or discarded at the user's option.) Besides that
\fBreiserfstune\fR can store the bad block list to the ReiserFS and set UUID
and LABEL.
Note: At the time of writing the relocated journal was implemented for a special 
release of ReiserFS, and was not expected to be put into the mainstream kernel
until approximately Linux 2.5.  This means that if you have the stock kernel you 
must apply a special patch. Without this patch the kernel will refuse to mount 
the newly modified file system.  We will charge $25 to explain this to you if 
you ask us why it doesn't work.
.PP
Perhaps the most interesting application of this code is to put the
journal on a solid state disk.
.TP
\fIdevice
is the special file corresponding to the newly specified block device (e.g
/dev/hdXX for IDE disk partition or /dev/sdXX for the SCSI disk partition).
.SH OPTIONS
.TP
\fB-h\fR | \fB--help\fR
Print usage information and exit.
.TP
\fB-j\fR | \fB--journal-device\fR \fIFILE
\fIFILE\fR is the file name of the block device the file system has
the current journal (the one prior to running reiserfstune) on. This option is required when the journal is
already on a separate device from the main data device (although it
can be avoided with \fB--no-journal-available\fR). If you don't
specify journal device by this option, reiserfstune suppose that
journal is on main device.
.TP
\fB--no-journal-available
allows \fBreiserfstune\fR to continue when the current journal's block
device is no longer available.  This might happen if a disk goes bad
and you remove it (and run fsck).
.TP
\fB--journal-new-device \fIFILE
\fIFILE\fR is the file name of the block device which will contain the
new journal for the file system. If you don't specify this,
reiserfstune supposes that journal device remains the same.				
.TP	
\fB \-s\fR | \fB\--journal-new-size \fIN
\fIN\fR is the size parameter for the new journal. When journal is to
be on a separate device - its size defaults to number of blocks that
device has. When journal is to be on the same device as the filesytem - its size defaults
to amount of blocks allocated for journal by \fImkreiserfs\fR when it
created the filesystem. Minimum is 513 for
both cases.
.TP
\fB \-o\fR | \fB\--journal-new-offset \fIN
\fIN\fR is an offset in blocks where journal will starts from when journal is to
be on a separate device. Default is 0. Has no effect when journal is
to be on the same device as the filesystem.  Most users have no need
to use this feature.  It can be used when you want the journals from
multiple filesystems to reside on the same device, and you don't want
to or cannot partition that device.
.TP
\fB \-t\fR | \fB\--maximal-transaction-size \fIN
\fIN\fR is the maximum transaction size parameter for the new
journal. The default, and max possible, value is 1024 blocks. It
should be less than half the size of the journal. If specifed
incorrectly, it will be adjusted.
.TP
\fB \-b\fR | \fB\--add-badblocks\fR \fIfile\fR
\fIFile\fR is the file name of the file that contains the list of blocks to be marked 
as bad on the fs. The list is added to the fs list of bad blocks.
.TP
\fB \-B\fR | \fB\--badblocks\fR \fIfile\fR
\fIFile\fR is the file name of the file that contains the list of blocks to be marked 
as bad on the fs. The bad block list on the fs is cleared before the list specified 
in the \fIFile\fR is added to the fs.
.TP
\fB\-f\fR | \fB--force\fR 
Normally \fBreiserfstune\fR will refuse to change a journal of a
file system that was created before this journal relocation code. This
is because if you change the journal, you cannot go back (without special
option \fB--make-journal-standard\fR) to an old kernel that lacks this feature and be able to use your filesytem.  This option forces it to do that. Specified more
than once it allows to avoid asking for confirmation.
.TP
\fB--make-journal-standard\fR 
As it was mentioned above, if your file system has non-standard journal, 
it can not be mounted on the kernel without journal relocation
code. The thing can be changed, the only condition is that there is reserved
area on main device of the standard journal size 8193 blocks  (it will be so for
instance if you convert standard journal to non-standard). Just 
specify this option when you relocate journal back, or without relocation
if you already have it on main device.
.TP
\fB-u\fR | \fB--uuid \fIUUID\fR
Set  the  universally  unique  identifier (\fB UUID \fR) of the filesystem to
\fIUUID\fR (see also \fBuuidgen(8)\fR). The  format  of  the  UUID  is  a
series  of  hex  digits  separated  by  hypthens,  like  this:
"c1b9d5a2-f162-11cf-9ece-0020afc76f16".
.TP
\fB-l\fR | \fB--label \fILABEL\fR
Set  the  volume  label  of  the filesystem. \fILABEL\fR can be at most 16
characters long; if it is longer than 16 characters, reiserfstune will truncate it.
.TP
\fB-c\fR | \fB--check-interval \fIinterval-in-days\fR
Adjust the maximal time between two filesystem checks.  A value of "disable"
will disable the time-dependent checking. A value of "default" will restore
the compile-time default.

It is strongly recommended that either
.B \-m
(mount-count dependent) or
.B \-c
(time-dependent) checking be enabled to force periodic full
.BR fsck.reiserfs(8)
checking of the filesystem. Failure to do so may lead to
filesystem corruption (due to bad disks, cables, memory, or kernel bugs)
going unnoticed, ultimately resulting in data loss or corruption.
.TP
\fB-C\fR | \fB--time-last-checked \fItimestamp\fR
Set the time the filesystem was last checked using fsck.reiserfs. This
can be useful in scripts which use a Logical Volume Manager to make a
consistent snapshot of a filesystem, and then check the filesystem during
off hours to make sure it hasn't been corrupted due to hardware problems,
etc. If the filesystem was clean, then this option can be used to set the
last checked time on the original filesystem. The format of time-last-checked
is the international date format, with an optional time specifier, i.e.
YYYYMMDD[HH[MM[SS]]]. The keyword
.B now
is also accepted, in which case the
last checked time will be set to the current time.
.TP
\fB-m\fR | \fB--max-mnt-count \fImax-mount-count\fR
Adjust the number of mounts after which the filesystem  will  be
checked by
.BR fsck.reiserfs(8).
If max-mount-count is "disable", the number of times the filesystem
is mounted will be disregarded by
.BR fsck.reiserfs(8)
and the kernel. A value of "default" will restore the compile-time default.

Staggering  the  mount-counts  at which filesystems are forcibly
checked will avoid all filesystems being  checked  at  one  time
when using journaled filesystems.

You  should  strongly  consider  the  consequences  of disabling
mount-count-dependent  checking  entirely.   Bad  disk   drives,
cables,  memory,  and kernel bugs could all corrupt a filesystem
without marking the filesystem dirty or in error.   If  you  are
using  journaling on your filesystem, your filesystem will never
be marked dirty, so it will not normally be checked.  A filesys‐
tem error detected by the kernel will still force an fsck on the
next reboot, but it may already be too late to prevent data loss
at that point.

This option requires a kernel which supports incrementing the
count on each mount. This feature has not been incorporated into
kernel versions older than 2.6.25.

See also the
.B \-c
option for time-dependent checking.
.TP
\fB-M\fR | \fB--mnt-count \fIcount\fR
Set the number of times the filesystem has been mounted.  If set
to a greater value than the max-mount-counts  parameter  set  by
the
.B \-m
option,
.BR fsck.reiserfs(8)
will check the filesystem at the next
reboot.
.SH POSSIBLE SCENARIOS OF USING REISERFSTUNE:
1. You have ReiserFS on /dev/hda1, and you wish to have
it working with its journal on the device /dev/journal
.nf
.IP
boot kernel patched with special "relocatable journal support" patch
reiserfstune /dev/hda1 \-\-journal\-new\-device /dev/journal \-f
mount /dev/hda1 and use.
You would like to change max transaction size to 512 blocks
reiserfstune \-t 512 /dev/hda1
You would like to use your file system on another kernel that doesn't 
contain relocatable journal support.
umount /dev/hda1
reiserfstune /dev/hda1 \-j /dev/journal \-\-journal\-new\-device /dev/hda1 \-\-make\-journal\-standard
mount /dev/hda1 and use.
.LP
2. You would like to have ReiserFS on /dev/hda1 and to be able to
switch between different journals including journal located on the
device containing the filesystem.
.nf
.IP
boot kernel patched with special "relocatable journal support" patch
mkreiserfs /dev/hda1
you got solid state disk (perhaps /dev/sda, they typically look like scsi disks)
reiserfstune \-\-journal\-new\-device /dev/sda1 \-f /dev/hda1
Your scsi device dies, it is three in the morning, you have an extra IDE device
lying around
reiserfsck \-\-no\-journal\-available /dev/hda1
or
reiserfsck \-\-rebuild-tree \-\-no\-journal\-available /dev/hda1
reiserfstune \-\-no\-journal\-available \-\-journal\-new\-device /dev/hda1 /dev/hda1
using /dev/hda1 under patched kernel
.SH AUTHOR
This version of \fBreiserfstune\fR has been written by Vladimir
Demidov <vova@namesys.com> and Edward Shishkin <edward@namesys.com>.
.SH BUGS
Please report bugs to the ReiserFS developers <reiserfs-devel@vger.kerne.org>, providing
as much information as possible--your hardware, kernel, patches, settings, all printed
messages; check the syslog file for any related information.
.SH SEE ALSO
.BR reiserfsck (8),
.BR debugreiserfs (8),
.BR mkreiserfs (8)

 
