| 1 | <?xml version='1.0' encoding="UTF-8"?> |
1 | <?xml version='1.0' encoding="UTF-8"?> |
| 2 | <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-install-filesystems.xml,v 1.12 2012/10/28 10:29:03 swift Exp $ --> |
2 | <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-install-filesystems.xml,v 1.13 2013/02/23 18:38:22 swift Exp $ --> |
| 3 | <!DOCTYPE included SYSTEM "/dtd/guide.dtd"> |
3 | <!DOCTYPE included SYSTEM "/dtd/guide.dtd"> |
| 4 | |
4 | |
| 5 | <included> |
5 | <included> |
| 6 | |
6 | |
| 7 | <version>10</version> |
7 | <version>11</version> |
| 8 | <date>2012-10-28</date> |
8 | <date>2013-02-23</date> |
| 9 | |
9 | |
| 10 | <section id="filesystemsdesc"> |
10 | <section id="filesystemsdesc"> |
| 11 | <title>Filesystems</title> |
11 | <title>Filesystems</title> |
| 12 | <body> |
12 | <body> |
| 13 | |
13 | |
| 14 | <p test="contains('x86 Alpha',func:keyval('arch'))"> |
14 | <p test="contains('x86 Alpha',func:keyval('arch'))"> |
| 15 | The Linux kernel supports various filesystems. We'll explain ext2, ext3, ext4, |
15 | The Linux kernel supports various filesystems. We'll explain ext2, ext3, ext4, |
| 16 | ReiserFS, XFS and JFS as these are the most commonly used filesystems on Linux |
16 | ReiserFS, XFS and JFS as these are the most commonly used filesystems on Linux |
| 17 | systems. |
17 | systems. |
| 18 | </p> |
18 | </p> |
| 19 | |
19 | |
| 20 | <p test="func:keyval('arch')='IA64'"> |
20 | <p test="func:keyval('arch')='IA64'"> |
| 21 | The Linux kernel supports various filesystems. We'll explain vfat, ext2, ext3, |
21 | The Linux kernel supports various filesystems. We'll explain vfat, ext2, ext3, |
| 22 | ext4, ReiserFS, XFS and JFS as these are the most commonly used filesystems on |
22 | ext4, ReiserFS, XFS and JFS as these are the most commonly used filesystems on |
| 23 | Linux systems. |
23 | Linux systems. |
| … | |
… | |
| 89 | happens to be in an inconsistent state. If you intend to install Gentoo on a |
89 | happens to be in an inconsistent state. If you intend to install Gentoo on a |
| 90 | very small disk (less than 4GB), then you'll need to tell ext2 to reserve enough |
90 | very small disk (less than 4GB), then you'll need to tell ext2 to reserve enough |
| 91 | inodes when you create the filesystem. The <c>mke2fs</c> application uses the |
91 | inodes when you create the filesystem. The <c>mke2fs</c> application uses the |
| 92 | "bytes-per-inode" setting to calculate how many inodes a file system should have. |
92 | "bytes-per-inode" setting to calculate how many inodes a file system should have. |
| 93 | By running <c>mke2fs -T small /dev/<device></c> the number of inodes will |
93 | By running <c>mke2fs -T small /dev/<device></c> the number of inodes will |
| 94 | generally quadruple for a given file system as its "bytes-per-inode" reduces from |
94 | generally quadruple for a given file system as its "bytes-per-inode" reduces from |
| 95 | one every 16kB to one every 4kB. You can tune this even further by using |
95 | one every 16kB to one every 4kB. You can tune this even further by using |
| 96 | <c>mke2fs -i <ratio> /dev/<device></c>. |
96 | <c>mke2fs -i <ratio> /dev/<device></c>. |
| 97 | </p> |
97 | </p> |
| 98 | |
98 | |
| 99 | <p> |
99 | <p> |
| 100 | <b>ext3</b> is the journaled version of the ext2 filesystem, providing metadata |
100 | <b>ext3</b> is the journaled version of the ext2 filesystem, providing metadata |
| 101 | journaling for fast recovery in addition to other enhanced journaling modes like |
101 | journaling for fast recovery in addition to other enhanced journaling modes like |
| 102 | full data and ordered data journaling. It uses an HTree index that enables high |
102 | full data and ordered data journaling. It uses an HTree index that enables high |
| 103 | performance in almost all situations. In short, ext3 is a very good and |
103 | performance in almost all situations. In short, ext3 is a very good and |
| 104 | reliable filesystem. Ext3 is the recommended all-purpose all-platform |
|
|
| 105 | filesystem. If you intend to install Gentoo on a |
104 | reliable filesystem. If you intend to install Gentoo on a |
| 106 | very small disk (less than 4GB), then you'll need to tell ext3 to reserve enough |
105 | very small disk (less than 4GB), then you'll need to tell ext3 to reserve enough |
| 107 | inodes when you create the filesystem. The <c>mke2fs</c> application uses the |
106 | inodes when you create the filesystem. The <c>mke2fs</c> application uses the |
| 108 | "bytes-per-inode" setting to calculate how many inodes a file system should have. |
107 | "bytes-per-inode" setting to calculate how many inodes a file system should have. |
| 109 | By running <c>mke2fs -j -T small /dev/<device></c> the number of inodes will |
108 | By running <c>mke2fs -j -T small /dev/<device></c> the number of inodes will |
| 110 | generally quadruple for a given file system as its "bytes-per-inode" reduces from |
109 | generally quadruple for a given file system as its "bytes-per-inode" reduces from |
| 111 | one every 16kB to one every 4kB. You can tune this even further by using |
110 | one every 16kB to one every 4kB. You can tune this even further by using |
| 112 | <c>mke2fs -j -i <ratio> /dev/<device></c>. |
111 | <c>mke2fs -j -i <ratio> /dev/<device></c>. |
| 113 | </p> |
112 | </p> |
| 114 | |
113 | |
| 115 | <p test="contains('x86 Alpha MIPS AMD64 arm IA64 SPARC HPPA PPC PPC64',func:keyval('arch'))"> |
114 | <p test="contains('x86 Alpha MIPS AMD64 arm IA64 SPARC HPPA PPC PPC64',func:keyval('arch'))"> |
| 116 | <b>ext4</b> is a filesystem created as a fork of ext3 bringing new features, |
115 | <b>ext4</b> is a filesystem created as a fork of ext3 bringing new features, |
| 117 | performance improvements and removal of size limits with moderate changes |
116 | performance improvements and removal of size limits with moderate changes |
| 118 | to the on-disk format. It can span volumes up to 1 EB and with maximum file |
117 | to the on-disk format. It can span volumes up to 1 EB and with maximum file |
| 119 | size of 16 TB. Instead of the classic ext2/3 bitmap block allocation ext4 uses |
118 | size of 16 TB. Instead of the classic ext2/3 bitmap block allocation ext4 uses |
| 120 | <uri link="http://en.wikipedia.org/wiki/Extent_%28file_systems%29">extents</uri>, |
119 | <uri link="http://en.wikipedia.org/wiki/Extent_%28file_systems%29">extents</uri>, |
| 121 | which improve large file performance and reduce fragmentation. Ext4 also provides |
120 | which improve large file performance and reduce fragmentation. Ext4 also provides |
| 122 | more sophisticated block allocation algorithms (delayed allocation and multiblock |
121 | more sophisticated block allocation algorithms (delayed allocation and multiblock |
| 123 | allocation) giving the filesystem driver more ways to optimise the layout of data |
122 | allocation) giving the filesystem driver more ways to optimise the layout of data |
| 124 | on the disk. The ext4 filesystem is a compromise between production-grade code |
123 | on the disk. The ext4 filesystem is a compromise between production-grade code |
| 125 | stability and the desire to introduce extensions to an almost decade old |
124 | stability and the desire to introduce extensions to an almost decade old |
| 126 | filesystem. |
125 | filesystem. Ext4 is the recommended all-purpose all-platform filesystem. |
| 127 | </p> |
126 | </p> |
| 128 | |
127 | |
| 129 | </body> |
128 | </body> |
| 130 | <body test="not(func:keyval('arch')='SPARC')"> |
129 | <body test="not(func:keyval('arch')='SPARC')"> |
| 131 | |
130 | |
| 132 | <p test="not(func:keyval('arch')='PPC')"> |
131 | <p test="not(func:keyval('arch')='PPC')"> |
| 133 | <b>JFS</b> is IBM's high-performance journaling filesystem. JFS is a light, |
132 | <b>JFS</b> is IBM's high-performance journaling filesystem. JFS is a light, |
| 134 | fast and reliable B+tree-based filesystem with good performance in various |
133 | fast and reliable B+tree-based filesystem with good performance in various |
| 135 | conditions. |
134 | conditions. |
| 136 | </p> |
135 | </p> |
| 137 | |
136 | |
| 138 | <p> |
137 | <p> |
| 139 | <b>ReiserFS</b> is a B+tree-based journaled filesystem that has good overall |
138 | <b>ReiserFS</b> is a B+tree-based journaled filesystem that has good overall |
| 140 | performance, especially when dealing with many tiny files at the cost of more |
139 | performance, especially when dealing with many tiny files at the cost of more |
| 141 | CPU cycles. ReiserFS appears to be less maintained than other filesystems. |
140 | CPU cycles. ReiserFS appears to be less maintained than other filesystems. |