diff options
Diffstat (limited to 'misc/tune2fs.8.in')
-rw-r--r-- | misc/tune2fs.8.in | 849 |
1 files changed, 849 insertions, 0 deletions
diff --git a/misc/tune2fs.8.in b/misc/tune2fs.8.in new file mode 100644 index 0000000..dcf108c --- /dev/null +++ b/misc/tune2fs.8.in @@ -0,0 +1,849 @@ +.\" Revision 1.0 93/06/3 23:00 chk +.\" Initial revision +.\" +.\" +.TH TUNE2FS 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@" +.SH NAME +tune2fs \- adjust tunable file system parameters on ext2/ext3/ext4 file systems +.SH SYNOPSIS +.B tune2fs +[ +.B \-l +] +[ +.B \-c +.I max-mount-counts +] +[ +.B \-e +.I errors-behavior +] +[ +.B \-f +] +[ +.B \-i +.I interval-between-checks +] +[ +.B \-I +.I new_inode_size +] +[ +.B \-j +] +[ +.B \-J +.I journal-options +] +[ +.B \-m +.I reserved-blocks-percentage +] +[ +.B \-o +.RI [^]mount-options [,...] +] +[ +.B \-r +.I reserved-blocks-count +] +[ +.B \-u +.I user +] +[ +.B \-g +.I group +] +[ +.B \-C +.I mount-count +] +[ +.B \-E +.I extended-options +] +[ +.B \-L +.I volume-label +] +[ +.B \-M +.I last-mounted-directory +] +[ +.B \-O +.RI [^] feature [,...] +] +[ +.B \-Q +.I quota-options +] +[ +.B \-T +.I time-last-checked +] +[ +.B \-U +.I UUID +] +[ +.B \-z +.I undo_file +] +device +.SH DESCRIPTION +.B tune2fs +allows the system administrator to adjust various tunable file system +parameters on Linux ext2, ext3, or ext4 file systems. The current values +of these options can be displayed by using the +.B -l +option to +.BR tune2fs (8) +program, or by using the +.BR dumpe2fs (8) +program. +.PP +The +.I device +specifier can either be a filename (i.e., /dev/sda1), or a LABEL or UUID +specifier: "\fBLABEL=\fIvolume-label\fR" or "\fBUUID=\fIuuid\fR". (i.e., +LABEL=home or UUID=e40486c6-84d5-4f2f-b99c-032281799c9d). +.SH OPTIONS +.TP +.BI \-c " max-mount-counts" +Adjust the number of mounts after which the file system will be checked by +.BR e2fsck (8). +If +.I max-mount-counts +is the string "random", tune2fs will use a random value between 20 and 40. +If +.I max-mount-counts +is 0 or \-1, the number of times the file system is mounted will be disregarded +by +.BR e2fsck (8) +and the kernel. +.sp +Staggering the mount-counts at which file systems are forcibly +checked will avoid all file systems being checked at one time +when using journaled file systems. +.sp +Mount-count-dependent checking is disabled by default to avoid +unanticipated long reboots while e2fsck does its work. If you +are concerned about file system corruptions caused by potential hardware +problems of kernel bugs, a better solution than mount-count-dependent +checking is to use the +.BR e2scrub (8) +program. This does require placing the file system on an LVM volume, +however. +.TP +.BI \-C " mount-count" +Set the number of times the file system has been mounted. +If set to a greater value than the max-mount-counts parameter +set by the +.B \-c +option, +.BR e2fsck (8) +will check the file system at the next reboot. +.TP +.BI \-e " error-behavior" +Change the behavior of the kernel code when errors are detected. +In all cases, a file system error will cause +.BR e2fsck (8) +to check the file system on the next boot. +.I error-behavior +can be one of the following: +.RS 1.2i +.TP 1.2i +.B continue +Continue normal execution. +.TP +.B remount-ro +Remount file system read-only. +.TP +.B panic +Cause a kernel panic. +.RE +.TP +.BI \-E " extended-options" +Set extended options for the file system. Extended options are comma +separated, and may take an argument using the equals ('=') sign. +The following extended options are supported: +.RS 1.2i +.TP +.B clear_mmp +Reset the MMP block (if any) back to the clean state. Use only if +absolutely certain the device is not currently mounted or being +fscked, or major file system corruption can result. Needs '-f'. +.TP +.BI mmp_update_interval= interval +Adjust the initial MMP update interval to +.I interval +seconds. Specifying an +.I interval +of 0 means to use the default interval. The specified interval must +be less than 300 seconds. Requires that the +.B mmp +feature be enabled. +.TP +.BI stride= stride-size +Configure the file system for a RAID array with +.I stride-size +file system blocks. This is the number of blocks read or written to disk +before moving to next disk. This mostly affects placement of file system +metadata like bitmaps at +.BR mke2fs (2) +time to avoid placing them on a single disk, which can hurt the performance. +It may also be used by block allocator. +.TP +.BI stripe_width= stripe-width +Configure the file system for a RAID array with +.I stripe-width +file system blocks per stripe. This is typically be stride-size * N, where +N is the number of data disks in the RAID (e.g. RAID 5 N+1, RAID 6 N+2). +This allows the block allocator to prevent read-modify-write of the +parity in a RAID stripe if possible when the data is written. +.TP +.BI hash_alg= hash-alg +Set the default hash algorithm used for file systems with hashed b-tree +directories. Valid algorithms accepted are: +.IR legacy , +.IR half_md4 , +and +.IR tea . +.TP +.BI encoding= encoding-name +Enable the +.I casefold +feature in the super block and set +.I encoding-name +as the encoding to be used. If +.I encoding-name +is not specified, utf8 is used. The encoding cannot be altered if casefold +was previously enabled. +.TP +.BI encoding_flags= encoding-flags +Define parameters for file name character encoding operations. If a +flag is not changed using this parameter, its default value is used. +.I encoding-flags +should be a comma-separated lists of flags to be enabled. The flags cannot be +altered if casefold was previously enabled. + +The only flag that can be set right now is +.I strict +which means that invalid strings should be rejected by the file system. +In the default configuration, the +.I strict +flag is disabled. +.TP +.BI mount_opts= mount_option_string +Set a set of default mount options which will be used when the file +system is mounted. Unlike the bitmask-based default mount options which +can be specified with the +.B -o +option, +.I mount_option_string +is an arbitrary string with a maximum length of 63 bytes, which is +stored in the superblock. +.IP +The ext4 file system driver will first apply +the bitmask-based default options, and then parse the +.IR mount_option_string , +before parsing the mount options passed from the +.BR mount (8) +program. +.IP +This superblock setting is only honored in 2.6.35+ kernels; +and not at all by the ext2 and ext3 file system drivers. +.TP +.BI orphan_file_size= size +Set size of the file for tracking unlinked but still open inodes and inodes +with truncate in progress. Larger file allows for better scalability, reserving +a few blocks per cpu is ideal. +.TP +.B force_fsck +Set a flag in the file system superblock indicating that errors have been found. +This will force fsck to run at the next mount. +.TP +.B test_fs +Set a flag in the file system superblock indicating that it may be +mounted using experimental kernel code, such as the ext4dev file system. +.TP +.B ^test_fs +Clear the test_fs flag, indicating the file system should only be mounted +using production-level file system code. +.RE +.TP +.B \-f +Force the tune2fs operation to complete even in the face of errors. This +option is useful when removing the +.B has_journal +file system feature from a file system which has +an external journal (or is corrupted +such that it appears to have an external journal), but that +external journal is not available. If the file system appears to require +journal replay, the +.B \-f +flag must be specified twice to proceed. +.sp +.B WARNING: +Removing an external journal from a file system which was not cleanly unmounted +without first replaying the external journal can result in +severe data loss and file system corruption. +.TP +.BI \-g " group" +Set the group which can use the reserved file system blocks. +The +.I group +parameter can be a numerical gid or a group name. If a group name is given, +it is converted to a numerical gid before it is stored in the superblock. +.TP +.B \-i " \fIinterval-between-checks\fR[\fBd\fR|\fBm\fR|\fBw\fR]" +Adjust the maximal time between two file system checks. +No suffix or +.B d +will interpret the number +.I interval-between-checks +as days, +.B m +as months, and +.B w +as weeks. A value of zero will disable the time-dependent checking. +.sp +There are pros and cons to disabling these periodic checks; see the +discussion under the +.B \-c +(mount-count-dependent check) option for details. +.TP +.B \-I +Change the inode size used by the file system. This requires rewriting +the inode table, so it requires that the file system is checked for +consistency first using +.BR e2fsck (8). +This operation can also take a while and the file system can be +corrupted and data lost if it is interrupted while in the middle of +converting the file system. Backing up the file system before changing +inode size is recommended. +.IP +File systems with an inode size of 128 bytes do not support timestamps +beyond January 19, 2038. Inodes which are 256 bytes or larger will +support extended timestamps, project id's, and the ability to store some +extended attributes in the inode table for improved performance. +.TP +.B \-j +Add an ext3 journal to the file system. If the +.B \-J +option is not specified, the default journal parameters will be used to create +an appropriately sized journal (given the size of the file system) +stored within the file system. Note that you must be using a kernel +which has ext3 support in order to actually make use of the journal. +.IP +If this option is used to create a journal on a mounted file system, an +immutable file, +.BR .journal , +will be created in the top-level directory of the file system, as it is +the only safe way to create the journal inode while the file system is +mounted. While the ext3 journal is visible, it is not safe to +delete it, or modify it while the file system is mounted; for this +reason the file is marked immutable. +While checking unmounted file systems, +.BR e2fsck (8) +will automatically move +.B .journal +files to the invisible, reserved journal inode. For all file systems +except for the root file system, this should happen automatically and +naturally during the next reboot cycle. Since the root file system is +mounted read-only, +.BR e2fsck (8) +must be run from a rescue floppy in order to effect this transition. +.IP +On some distributions, such as Debian, if an initial ramdisk is used, +the initrd scripts will automatically convert an ext2 root file system +to ext3 if the +.B /etc/fstab +file specifies the ext3 file system for the root file system in order to +avoid requiring the use of a rescue floppy to add an ext3 journal to +the root file system. +.TP +.BR \-J " journal-options" +Override the default ext3 journal parameters. Journal options are comma +separated, and may take an argument using the equals ('=') sign. +The following journal options are supported: +.RS 1.2i +.TP +.BI size= journal-size +Create a journal stored in the file system of size +.I journal-size +megabytes. The size of the journal must be at least 1024 file system blocks +(i.e., 1MB if using 1k blocks, 4MB if using 4k blocks, etc.) +and may be no more than 10,240,000 file system blocks. +There must be enough free space in the file system to create a journal of +that size. +.TP +.BI fast_commit_size= fast-commit-size +Create an additional fast commit journal area of size +.I fast-commit-size +kilobytes. +This option is only valid if +.B fast_commit +feature is enabled +on the file system. If this option is not specified and if +.B fast_commit +feature is turned on, fast commit area size defaults to +.I journal-size +/ 64 megabytes. The total size of the journal with +.B fast_commit +feature set is +.I journal-size ++ ( +.I fast-commit-size +* 1024) megabytes. The total journal size may be no more than +10,240,000 file system blocks or half the total file system size +(whichever is smaller). +.TP +.BI location =journal-location +Specify the location of the journal. The argument +.I journal-location +can either be specified as a block number, or if the number has a units +suffix (e.g., 'M', 'G', etc.) interpret it as the offset from the +beginning of the file system. +@JDEV@.TP +@JDEV@.BI device= external-journal +@JDEV@Attach the file system to the journal block device located on +@JDEV@.IR external-journal . +@JDEV@The external +@JDEV@journal must have been already created using the command +@JDEV@.IP +@JDEV@.B mke2fs -O journal_dev +@JDEV@.I external-journal +@JDEV@.IP +@JDEV@Note that +@JDEV@.I external-journal +@JDEV@must be formatted with the same block +@JDEV@size as file systems which will be using it. +@JDEV@In addition, while there is support for attaching +@JDEV@multiple file systems to a single external journal, +@JDEV@the Linux kernel and +@JDEV@.BR e2fsck (8) +@JDEV@do not currently support shared external journals yet. +@JDEV@.IP +@JDEV@Instead of specifying a device name directly, +@JDEV@.I external-journal +@JDEV@can also be specified by either +@JDEV@.BI LABEL= label +@JDEV@or +@JDEV@.BI UUID= UUID +@JDEV@to locate the external journal by either the volume label or UUID +@JDEV@stored in the ext2 superblock at the start of the journal. Use +@JDEV@.BR dumpe2fs (8) +@JDEV@to display a journal device's volume label and UUID. See also the +@JDEV@.B -L +@JDEV@option of +@JDEV@.BR tune2fs (8). +.RE +@JDEV@.IP +@JDEV@Only one of the +@JDEV@.BR size " or " device +@JDEV@options can be given for a file system. +.TP +.B \-l +List the contents of the file system superblock, including the current +values of the parameters that can be set via this program. +.TP +.BI \-L " volume-label" +Set the volume label of the file system. +Ext2 file system labels can be at most 16 characters long; if +.I volume-label +is longer than 16 characters, +.B tune2fs +will truncate it and print a warning. For other file systems that +support online label manipulation and are mounted +.B tune2fs +will work as well, but it will not attempt to truncate the +.I volume-label +at all. The volume label can be used by +.BR mount (8), +.BR fsck (8), +and +.BR /etc/fstab (5) +(and possibly others) by specifying +.BI LABEL= volume-label +instead of a block special device name like +.BR /dev/hda5 . +.TP +.BI \-m " reserved-blocks-percentage" +Set the percentage of the file system which may only be allocated +by privileged processes. Reserving some number of file system blocks +for use by privileged processes is done +to avoid file system fragmentation, and to allow system +daemons, such as +.BR syslogd (8), +to continue to function correctly after non-privileged processes are +prevented from writing to the file system. Normally, the default percentage +of reserved blocks is 5%. +.TP +.BI \-M " last-mounted-directory" +Set the last-mounted directory for the file system. +.TP +.BR \-o " [^]\fImount-option\fR[,...]" +Set or clear the indicated default mount options in the file system. +Default mount options can be overridden by mount options specified +either in +.BR /etc/fstab (5) +or on the command line arguments to +.BR mount (8). +Older kernels may not support this feature; in particular, +kernels which predate 2.4.20 will almost certainly ignore the +default mount options field in the superblock. +.IP +More than one mount option can be cleared or set by separating +features with commas. Mount options prefixed with a +caret character ('^') will be cleared in the file system's superblock; +mount options without a prefix character or prefixed with a plus +character ('+') will be added to the file system. +.IP +The following mount options can be set or cleared using +.BR tune2fs : +.RS 1.2i +.TP +.B debug +Enable debugging code for this file system. +.TP +.B bsdgroups +Emulate BSD behavior when creating new files: they will take the group-id +of the directory in which they were created. The standard System V behavior +is the default, where newly created files take on the fsgid of the current +process, unless the directory has the setgid bit set, in which case it takes +the gid from the parent directory, and also gets the setgid bit set if it is +a directory itself. +.TP +.B user_xattr +Enable user-specified extended attributes. +.TP +.B acl +Enable Posix Access Control Lists. +.TP +.B uid16 +Disables 32-bit UIDs and GIDs. This is for interoperability with +older kernels which only store and expect 16-bit values. +.TP +.B journal_data +When the file system is mounted with journaling enabled, all data +(not just metadata) is committed into the journal prior to being written +into the main file system. +.TP +.B journal_data_ordered +When the file system is mounted with journaling enabled, all data is forced +directly out to the main file system prior to its metadata being committed +to the journal. +.TP +.B journal_data_writeback +When the file system is mounted with journaling enabled, data may be +written into the main file system after its metadata has been committed +to the journal. This may increase throughput, however, it may allow old +data to appear in files after a crash and journal recovery. +.TP +.B nobarrier +The file system will be mounted with barrier operations in the journal +disabled. (This option is currently only supported by the ext4 file +system driver in 2.6.35+ kernels.) +.TP +.B block_validity +The file system will be mounted with the block_validity option enabled, +which causes extra checks to be performed after reading or writing from +the file system. This prevents corrupted metadata blocks from causing +file system damage by overwriting parts of the inode table or block +group descriptors. This comes at the cost of increased memory and CPU +overhead, so it is enabled only for debugging purposes. (This option is +currently only supported by the ext4 file system driver in 2.6.35+ +kernels.) +.TP +.B discard +The file system will be mounted with the discard mount option. This will +cause the file system driver to attempt to use the trim/discard feature +of some storage devices (such as SSD's and thin-provisioned drives +available in some enterprise storage arrays) to inform the storage +device that blocks belonging to deleted files can be reused for other +purposes. (This option is currently only supported by the ext4 file +system driver in 2.6.35+ kernels.) +.TP +.B nodelalloc +The file system will be mounted with the nodelalloc mount option. This +will disable the delayed allocation feature. (This option is currently +only supported by the ext4 file system driver in 2.6.35+ kernels.) +.RE +.TP +.BR \-O " [^]\fIfeature\fR[,...]" +Set or clear the indicated file system features (options) in the file system. +More than one file system feature can be cleared or set by separating +features with commas. File System features prefixed with a +caret character ('^') will be cleared in the file system's superblock; +file system features without a prefix character or prefixed with a plus +character ('+') will be added to the file system. For a detailed +description of the file system features, please see the man page +.BR ext4 (5). +.IP +The following file system features can be set or cleared using +.BR tune2fs : +.RS 1.2i +.TP +.B 64bit +Enable the file system to be larger than 2^32 blocks. +.TP +.B casefold +Enable support for file system level casefolding. +The option can be cleared only if filesystem has no +directories with +.B F +attribute. +.TP +.B dir_index +Use hashed b-trees to speed up lookups for large directories. +.TP +.B dir_nlink +Allow more than 65000 subdirectories per directory. +.TP +.B ea_inode +Allow the value of each extended attribute to be placed in the data blocks of a +separate inode if necessary, increasing the limit on the size and number of +extended attributes per file. +.B Tune2fs +currently only supports setting this file system feature. +.TP +.B encrypt +Enable support for file system level encryption. +.B Tune2fs +currently only supports setting this file system feature. +.TP +.B extent +Enable the use of extent trees to store the location of data blocks in inodes. +.B Tune2fs +currently only supports setting this file system feature. +.TP +.B extra_isize +Enable the extended inode fields used by ext4. +.TP +.B filetype +Store file type information in directory entries. +.TP +.B flex_bg +Allow bitmaps and inode tables for a block group to be placed +anywhere on the storage media. \fBTune2fs\fR will not reorganize +the location of the inode tables and allocation bitmaps, as +.BR mke2fs (8) +will do when it creates a freshly formatted file system with +.B flex_bg +enabled. +.TP +.B has_journal +Use a journal to ensure file system consistency even across unclean shutdowns. +Setting the file system feature is equivalent to using the +.B \-j +option. +.TP +.TP +.B fast_commit +Enable fast commit journaling feature to improve fsync latency. +.TP +.B large_dir +Increase the limit on the number of files per directory. +.B Tune2fs +currently only supports setting this file system feature. +.TP +.B huge_file +Support files larger than 2 terabytes in size. +.TP +.B large_file +File System can contain files that are greater than 2GB. +.TP +.B metadata_csum +Store a checksum to protect the contents in each metadata block. +.TP +.B metadata_csum_seed +Allow the file system to store the metadata checksum seed in the +superblock, enabling the administrator to change the UUID of a file system +using the +.B metadata_csum +feature while it is mounted. +.TP +.B mmp +Enable or disable multiple mount protection (MMP) feature. +.TP +.B project +Enable project ID tracking. This is used for project quota tracking. +.TP +.B quota +Enable internal file system quota inodes. +.TP +.B read-only +Force the kernel to mount the file system read-only. +.TP +.B resize_inode +Reserve space so the block group descriptor table may grow in the +future. +.B Tune2fs +only supports clearing this file system feature. +.TP +.B sparse_super +Limit the number of backup superblocks to save space on large file systems. +.B Tune2fs +currently only supports setting this file system feature. +.TP +.B stable_inodes +Prevent the file system from being shrunk or having its UUID changed, in order to +allow the use of specialized encryption settings that make use of the inode +numbers and UUID. +.B Tune2fs +currently only supports setting this file system feature. +.TP +.B uninit_bg +Allow the kernel to initialize bitmaps and inode tables lazily, and to +keep a high watermark for the unused inodes in a file system, to reduce +.BR e2fsck (8) +time. The first e2fsck run after enabling this feature will take the +full time, but subsequent e2fsck runs will take only a fraction of the +original time, depending on how full the file system is. +.TP +.B verity +Enable support for verity protected files. +.B Tune2fs +currently only supports setting this file system feature. +.RE +.IP +After setting or clearing +.BR sparse_super , +.BR uninit_bg , +.BR filetype , +or +.B resize_inode +file system features, +the file system may require being checked using +.BR e2fsck (8) +to return the file system to a consistent state. +.B Tune2fs +will print a message requesting that the system administrator run +.BR e2fsck (8) +if necessary. After setting the +.B dir_index +feature, +.B e2fsck -D +can be run to convert existing directories to the hashed B-tree format. +Enabling certain file system features may prevent the file system from being +mounted by kernels which do not support those features. In particular, the +.B uninit_bg +and +.B flex_bg +features are only supported by the ext4 file system. +.TP +.BI \-r " reserved-blocks-count" +Set the number of reserved file system blocks. +.TP +.BI \-Q " quota-options" +Sets 'quota' feature on the superblock and works on the quota files for the +given quota type. Quota options could be one or more of the following: +.RS 1.2i +.TP +.B [^]usrquota +Sets/clears user quota inode in the superblock. +.TP +.B [^]grpquota +Sets/clears group quota inode in the superblock. +.TP +.B [^]prjquota +Sets/clears project quota inode in the superblock. +.RE +.TP +.BI \-T " time-last-checked" +Set the time the file system was last checked using +.BR e2fsck . +The time is interpreted using the current (local) timezone. +This can be useful in scripts which use a Logical Volume Manager to make +a consistent snapshot of a file system, and then check the file system +during off hours to make sure it hasn't been corrupted due to +hardware problems, etc. If the file system was clean, then this option can +be used to set the last checked time on the original file system. The format +of +.I 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 +.BI \-u " user" +Set the user who can use the reserved file system blocks. +.I user +can be a numerical uid or a user name. If a user name is given, it +is converted to a numerical uid before it is stored in the superblock. +.TP +.BI \-U " UUID" +Set the universally unique identifier (UUID) of the file system to +.IR UUID . +The format of the UUID is a series of hex digits separated by hyphens, +like this: +"c1b9d5a2-f162-11cf-9ece-0020afc76f16". +The +.I UUID +parameter may also be one of the following: +.RS 1.2i +.TP +.I clear +clear the file system UUID +.TP +.I random +generate a new randomly-generated UUID +.TP +.I time +generate a new time-based UUID +.RE +.IP +The UUID may be used by +.BR mount (8), +.BR fsck (8), +and +.BR /etc/fstab (5) +(and possibly others) by specifying +.BI UUID= uuid +instead of a block special device name like +.BR /dev/hda1 . +.IP +See +.BR uuidgen (8) +for more information. +If the system does not have a good random number generator such as +.I /dev/random +or +.IR /dev/urandom , +.B tune2fs +will automatically use a time-based UUID instead of a randomly-generated UUID. +.TP +.BI \-z " undo_file" +Before overwriting a file system block, write the old contents of the block to +an undo file. This undo file can be used with e2undo(8) to restore the old +contents of the file system should something go wrong. If the empty string is +passed as the undo_file argument, the undo file will be written to a file named +tune2fs-\fIdevice\fR.e2undo in the directory specified via the +\fIE2FSPROGS_UNDO_DIR\fR environment variable. + +WARNING: The undo file cannot be used to recover from a power or system crash. +.SH BUGS +We haven't found any bugs yet. That doesn't mean there aren't any... +.SH AUTHOR +.B tune2fs +was written by Remy Card <Remy.Card@linux.org>. It is currently being +maintained by Theodore Ts'o <tytso@alum.mit.edu>. +.B tune2fs +uses the ext2fs library written by Theodore Ts'o <tytso@mit.edu>. +This manual page was written by Christian Kuhtz <chk@data-hh.Hanse.DE>. +Time-dependent checking was added by Uwe Ohse <uwe@tirka.gun.de>. +.SH AVAILABILITY +.B tune2fs +is part of the e2fsprogs package and is available from +http://e2fsprogs.sourceforge.net. +.SH SEE ALSO +.BR debugfs (8), +.BR dumpe2fs (8), +.BR e2fsck (8), +.BR mke2fs (8), +.BR ext4 (5) |