diff options
Diffstat (limited to 'Documentation/filesystems/ext3.txt')
-rw-r--r-- | Documentation/filesystems/ext3.txt | 181 |
1 files changed, 94 insertions, 87 deletions
diff --git a/Documentation/filesystems/ext3.txt b/Documentation/filesystems/ext3.txt index 9840d5b8d5b9..afb1335c05d6 100644 --- a/Documentation/filesystems/ext3.txt +++ b/Documentation/filesystems/ext3.txt | |||
@@ -2,11 +2,11 @@ | |||
2 | Ext3 Filesystem | 2 | Ext3 Filesystem |
3 | =============== | 3 | =============== |
4 | 4 | ||
5 | ext3 was originally released in September 1999. Written by Stephen Tweedie | 5 | Ext3 was originally released in September 1999. Written by Stephen Tweedie |
6 | for 2.2 branch, and ported to 2.4 kernels by Peter Braam, Andreas Dilger, | 6 | for the 2.2 branch, and ported to 2.4 kernels by Peter Braam, Andreas Dilger, |
7 | Andrew Morton, Alexander Viro, Ted Ts'o and Stephen Tweedie. | 7 | Andrew Morton, Alexander Viro, Ted Ts'o and Stephen Tweedie. |
8 | 8 | ||
9 | ext3 is ext2 filesystem enhanced with journalling capabilities. | 9 | Ext3 is the ext2 filesystem enhanced with journalling capabilities. |
10 | 10 | ||
11 | Options | 11 | Options |
12 | ======= | 12 | ======= |
@@ -14,76 +14,81 @@ Options | |||
14 | When mounting an ext3 filesystem, the following option are accepted: | 14 | When mounting an ext3 filesystem, the following option are accepted: |
15 | (*) == default | 15 | (*) == default |
16 | 16 | ||
17 | jounal=update Update the ext3 file system's journal to the | 17 | journal=update Update the ext3 file system's journal to the current |
18 | current format. | 18 | format. |
19 | 19 | ||
20 | journal=inum When a journal already exists, this option is | 20 | journal=inum When a journal already exists, this option is ignored. |
21 | ignored. Otherwise, it specifies the number of | 21 | Otherwise, it specifies the number of the inode which |
22 | the inode which will represent the ext3 file | 22 | will represent the ext3 file system's journal file. |
23 | system's journal file. | 23 | |
24 | journal_dev=devnum When the external journal device's major/minor numbers | ||
25 | have changed, this option allows the user to specify | ||
26 | the new journal location. The journal device is | ||
27 | identified through its new major/minor numbers encoded | ||
28 | in devnum. | ||
24 | 29 | ||
25 | noload Don't load the journal on mounting. | 30 | noload Don't load the journal on mounting. |
26 | 31 | ||
27 | data=journal All data are committed into the journal prior | 32 | data=journal All data are committed into the journal prior to being |
28 | to being written into the main file system. | 33 | written into the main file system. |
29 | 34 | ||
30 | data=ordered (*) All data are forced directly out to the main file | 35 | data=ordered (*) All data are forced directly out to the main file |
31 | system prior to its metadata being committed to | 36 | system prior to its metadata being committed to the |
32 | the journal. | 37 | journal. |
33 | 38 | ||
34 | data=writeback Data ordering is not preserved, data may be | 39 | data=writeback Data ordering is not preserved, data may be written |
35 | written into the main file system after its | 40 | into the main file system after its metadata has been |
36 | metadata has been committed to the journal. | 41 | committed to the journal. |
37 | 42 | ||
38 | commit=nrsec (*) Ext3 can be told to sync all its data and metadata | 43 | commit=nrsec (*) Ext3 can be told to sync all its data and metadata |
39 | every 'nrsec' seconds. The default value is 5 seconds. | 44 | every 'nrsec' seconds. The default value is 5 seconds. |
40 | This means that if you lose your power, you will lose, | 45 | This means that if you lose your power, you will lose |
41 | as much, the latest 5 seconds of work (your filesystem | 46 | as much as the latest 5 seconds of work (your |
42 | will not be damaged though, thanks to journaling). This | 47 | filesystem will not be damaged though, thanks to the |
43 | default value (or any low value) will hurt performance, | 48 | journaling). This default value (or any low value) |
44 | but it's good for data-safety. Setting it to 0 will | 49 | will hurt performance, but it's good for data-safety. |
45 | have the same effect than leaving the default 5 sec. | 50 | Setting it to 0 will have the same effect as leaving |
51 | it at the default (5 seconds). | ||
46 | Setting it to very large values will improve | 52 | Setting it to very large values will improve |
47 | performance. | 53 | performance. |
48 | 54 | ||
49 | barrier=1 This enables/disables barriers. barrier=0 disables it, | 55 | barrier=1 This enables/disables barriers. barrier=0 disables |
50 | barrier=1 enables it. | 56 | it, barrier=1 enables it. |
51 | 57 | ||
52 | orlov (*) This enables the new Orlov block allocator. It's enabled | 58 | orlov (*) This enables the new Orlov block allocator. It is |
53 | by default. | 59 | enabled by default. |
54 | 60 | ||
55 | oldalloc This disables the Orlov block allocator and enables the | 61 | oldalloc This disables the Orlov block allocator and enables |
56 | old block allocator. Orlov should have better performance, | 62 | the old block allocator. Orlov should have better |
57 | we'd like to get some feedback if it's the contrary for | 63 | performance - we'd like to get some feedback if it's |
58 | you. | 64 | the contrary for you. |
59 | 65 | ||
60 | user_xattr Enables Extended User Attributes. Additionally, you need | 66 | user_xattr Enables Extended User Attributes. Additionally, you |
61 | to have extended attribute support enabled in the kernel | 67 | need to have extended attribute support enabled in the |
62 | configuration (CONFIG_EXT3_FS_XATTR). See the attr(5) | 68 | kernel configuration (CONFIG_EXT3_FS_XATTR). See the |
63 | manual page and http://acl.bestbits.at to learn more | 69 | attr(5) manual page and http://acl.bestbits.at/ to |
64 | about extended attributes. | 70 | learn more about extended attributes. |
65 | 71 | ||
66 | nouser_xattr Disables Extended User Attributes. | 72 | nouser_xattr Disables Extended User Attributes. |
67 | 73 | ||
68 | acl Enables POSIX Access Control Lists support. Additionally, | 74 | acl Enables POSIX Access Control Lists support. |
69 | you need to have ACL support enabled in the kernel | 75 | Additionally, you need to have ACL support enabled in |
70 | configuration (CONFIG_EXT3_FS_POSIX_ACL). See the acl(5) | 76 | the kernel configuration (CONFIG_EXT3_FS_POSIX_ACL). |
71 | manual page and http://acl.bestbits.at for more | 77 | See the acl(5) manual page and http://acl.bestbits.at/ |
72 | information. | 78 | for more information. |
73 | 79 | ||
74 | noacl This option disables POSIX Access Control List support. | 80 | noacl This option disables POSIX Access Control List |
81 | support. | ||
75 | 82 | ||
76 | reservation | 83 | reservation |
77 | 84 | ||
78 | noreservation | 85 | noreservation |
79 | 86 | ||
80 | resize= | ||
81 | |||
82 | bsddf (*) Make 'df' act like BSD. | 87 | bsddf (*) Make 'df' act like BSD. |
83 | minixdf Make 'df' act like Minix. | 88 | minixdf Make 'df' act like Minix. |
84 | 89 | ||
85 | check=none Don't do extra checking of bitmaps on mount. | 90 | check=none Don't do extra checking of bitmaps on mount. |
86 | nocheck | 91 | nocheck |
87 | 92 | ||
88 | debug Extra debugging information is sent to syslog. | 93 | debug Extra debugging information is sent to syslog. |
89 | 94 | ||
@@ -92,7 +97,7 @@ errors=continue Keep going on a filesystem error. | |||
92 | errors=panic Panic and halt the machine if an error occurs. | 97 | errors=panic Panic and halt the machine if an error occurs. |
93 | 98 | ||
94 | grpid Give objects the same group ID as their creator. | 99 | grpid Give objects the same group ID as their creator. |
95 | bsdgroups | 100 | bsdgroups |
96 | 101 | ||
97 | nogrpid (*) New objects have the group ID of their creator. | 102 | nogrpid (*) New objects have the group ID of their creator. |
98 | sysvgroups | 103 | sysvgroups |
@@ -103,81 +108,83 @@ resuid=n The user ID which may use the reserved blocks. | |||
103 | 108 | ||
104 | sb=n Use alternate superblock at this location. | 109 | sb=n Use alternate superblock at this location. |
105 | 110 | ||
106 | quota Quota options are currently silently ignored. | 111 | quota |
107 | noquota (see fs/ext3/super.c, line 594) | 112 | noquota |
108 | grpquota | 113 | grpquota |
109 | usrquota | 114 | usrquota |
110 | 115 | ||
111 | 116 | ||
112 | Specification | 117 | Specification |
113 | ============= | 118 | ============= |
114 | ext3 shares all disk implementation with ext2 filesystem, and add | 119 | Ext3 shares all disk implementation with the ext2 filesystem, and adds |
115 | transactions capabilities to ext2. Journaling is done by the | 120 | transactions capabilities to ext2. Journaling is done by the Journaling Block |
116 | Journaling block device layer. | 121 | Device layer. |
117 | 122 | ||
118 | Journaling Block Device layer | 123 | Journaling Block Device layer |
119 | ----------------------------- | 124 | ----------------------------- |
120 | The Journaling Block Device layer (JBD) isn't ext3 specific. It was | 125 | The Journaling Block Device layer (JBD) isn't ext3 specific. It was design to |
121 | design to add journaling capabilities on a block device. The ext3 | 126 | add journaling capabilities on a block device. The ext3 filesystem code will |
122 | filesystem code will inform the JBD of modifications it is performing | 127 | inform the JBD of modifications it is performing (called a transaction). The |
123 | (Call a transaction). the journal support the transactions start and | 128 | journal supports the transactions start and stop, and in case of crash, the |
124 | stop, and in case of crash, the journal can replayed the transactions | 129 | journal can replayed the transactions to put the partition back in a |
125 | to put the partition on a consistent state fastly. | 130 | consistent state fast. |
126 | 131 | ||
127 | handles represent a single atomic update to a filesystem. JBD can | 132 | Handles represent a single atomic update to a filesystem. JBD can handle an |
128 | handle external journal on a block device. | 133 | external journal on a block device. |
129 | 134 | ||
130 | Data Mode | 135 | Data Mode |
131 | --------- | 136 | --------- |
132 | There's 3 different data modes: | 137 | There are 3 different data modes: |
133 | 138 | ||
134 | * writeback mode | 139 | * writeback mode |
135 | In data=writeback mode, ext3 does not journal data at all. This mode | 140 | In data=writeback mode, ext3 does not journal data at all. This mode provides |
136 | provides a similar level of journaling as XFS, JFS, and ReiserFS in its | 141 | a similar level of journaling as that of XFS, JFS, and ReiserFS in its default |
137 | default mode - metadata journaling. A crash+recovery can cause | 142 | mode - metadata journaling. A crash+recovery can cause incorrect data to |
138 | incorrect data to appear in files which were written shortly before the | 143 | appear in files which were written shortly before the crash. This mode will |
139 | crash. This mode will typically provide the best ext3 performance. | 144 | typically provide the best ext3 performance. |
140 | 145 | ||
141 | * ordered mode | 146 | * ordered mode |
142 | In data=ordered mode, ext3 only officially journals metadata, but it | 147 | In data=ordered mode, ext3 only officially journals metadata, but it logically |
143 | logically groups metadata and data blocks into a single unit called a | 148 | groups metadata and data blocks into a single unit called a transaction. When |
144 | transaction. When it's time to write the new metadata out to disk, the | 149 | it's time to write the new metadata out to disk, the associated data blocks |
145 | associated data blocks are written first. In general, this mode | 150 | are written first. In general, this mode performs slightly slower than |
146 | perform slightly slower than writeback but significantly faster than | 151 | writeback but significantly faster than journal mode. |
147 | journal mode. | ||
148 | 152 | ||
149 | * journal mode | 153 | * journal mode |
150 | data=journal mode provides full data and metadata journaling. All new | 154 | data=journal mode provides full data and metadata journaling. All new data is |
151 | data is written to the journal first, and then to its final location. | 155 | written to the journal first, and then to its final location. |
152 | In the event of a crash, the journal can be replayed, bringing both | 156 | In the event of a crash, the journal can be replayed, bringing both data and |
153 | data and metadata into a consistent state. This mode is the slowest | 157 | metadata into a consistent state. This mode is the slowest except when data |
154 | except when data needs to be read from and written to disk at the same | 158 | needs to be read from and written to disk at the same time where it |
155 | time where it outperform all others mode. | 159 | outperforms all others modes. |
156 | 160 | ||
157 | Compatibility | 161 | Compatibility |
158 | ------------- | 162 | ------------- |
159 | 163 | ||
160 | Ext2 partitions can be easily convert to ext3, with `tune2fs -j <dev>`. | 164 | Ext2 partitions can be easily convert to ext3, with `tune2fs -j <dev>`. |
161 | Ext3 is fully compatible with Ext2. Ext3 partitions can easily be | 165 | Ext3 is fully compatible with Ext2. Ext3 partitions can easily be mounted as |
162 | mounted as Ext2. | 166 | Ext2. |
167 | |||
163 | 168 | ||
164 | External Tools | 169 | External Tools |
165 | ============== | 170 | ============== |
166 | see manual pages to know more. | 171 | See manual pages to learn more. |
172 | |||
173 | tune2fs: create a ext3 journal on a ext2 partition with the -j flag. | ||
174 | mke2fs: create a ext3 partition with the -j flag. | ||
175 | debugfs: ext2 and ext3 file system debugger. | ||
176 | ext2online: online (mounted) ext2 and ext3 filesystem resizer | ||
167 | 177 | ||
168 | tune2fs: create a ext3 journal on a ext2 partition with the -j flags | ||
169 | mke2fs: create a ext3 partition with the -j flags | ||
170 | debugfs: ext2 and ext3 file system debugger | ||
171 | 178 | ||
172 | References | 179 | References |
173 | ========== | 180 | ========== |
174 | 181 | ||
175 | kernel source: file:/usr/src/linux/fs/ext3 | 182 | kernel source: <file:fs/ext3/> |
176 | file:/usr/src/linux/fs/jbd | 183 | <file:fs/jbd/> |
177 | 184 | ||
178 | programs: http://e2fsprogs.sourceforge.net | 185 | programs: http://e2fsprogs.sourceforge.net/ |
186 | http://ext2resize.sourceforge.net | ||
179 | 187 | ||
180 | useful link: | 188 | useful links: http://www.zip.com.au/~akpm/linux/ext3/ext3-usage.html |
181 | http://www.zip.com.au/~akpm/linux/ext3/ext3-usage.html | ||
182 | http://www-106.ibm.com/developerworks/linux/library/l-fs7/ | 189 | http://www-106.ibm.com/developerworks/linux/library/l-fs7/ |
183 | http://www-106.ibm.com/developerworks/linux/library/l-fs8/ | 190 | http://www-106.ibm.com/developerworks/linux/library/l-fs8/ |