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