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