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