.\" -*- 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.
.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)

 
