About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / filesystems / ext3.txt




Custom Search

Based on kernel version 3.9. Page generated on 2013-05-02 23:06 EST.

1	
2	Ext3 Filesystem
3	===============
4	
5	Ext3 was originally released in September 1999. Written by Stephen Tweedie
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.
8	
9	Ext3 is the 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	ro			Mount filesystem read only. Note that ext3 will replay
18				the journal (and thus write to the partition) even when
19				mounted "read only". Mount options "ro,noload" can be
20				used to prevent writes to the filesystem.
21	
22	journal=update		Update the ext3 file system's journal to the current
23				format.
24	
25	journal=inum		When a journal already exists, this option is ignored.
26				Otherwise, it specifies the number of the inode which
27				will represent the ext3 file system's journal file.
28	
29	journal_dev=devnum	When the external journal device's major/minor numbers
30				have changed, this option allows the user to specify
31				the new journal location.  The journal device is
32				identified through its new major/minor numbers encoded
33				in devnum.
34	
35	norecovery		Don't load the journal on mounting. Note that this forces
36	noload			mount of inconsistent filesystem, which can lead to
37				various problems.
38	
39	data=journal		All data are committed into the journal prior to being
40				written into the main file system.
41	
42	data=ordered	(*)	All data are forced directly out to the main file
43				system prior to its metadata being committed to the
44				journal.
45	
46	data=writeback		Data ordering is not preserved, data may be written
47				into the main file system after its metadata has been
48				committed to the journal.
49	
50	commit=nrsec	(*)	Ext3 can be told to sync all its data and metadata
51				every 'nrsec' seconds. The default value is 5 seconds.
52				This means that if you lose your power, you will lose
53				as much as the latest 5 seconds of work (your
54				filesystem will not be damaged though, thanks to the
55				journaling).  This default value (or any low value)
56				will hurt performance, but it's good for data-safety.
57				Setting it to 0 will have the same effect as leaving
58				it at the default (5 seconds).
59				Setting it to very large values will improve
60				performance.
61	
62	barrier=<0|1(*)>	This enables/disables the use of write barriers in
63	barrier	(*)		the jbd code.  barrier=0 disables, barrier=1 enables.
64	nobarrier		This also requires an IO stack which can support
65				barriers, and if jbd gets an error on a barrier
66				write, it will disable again with a warning.
67				Write barriers enforce proper on-disk ordering
68				of journal commits, making volatile disk write caches
69				safe to use, at some performance penalty.  If
70				your disks are battery-backed in one way or another,
71				disabling barriers may safely improve performance.
72				The mount options "barrier" and "nobarrier" can
73				also be used to enable or disable barriers, for
74				consistency with other ext3 mount options.
75	
76	user_xattr		Enables Extended User Attributes.  Additionally, you
77				need to have extended attribute support enabled in the
78				kernel configuration (CONFIG_EXT3_FS_XATTR).  See the
79				attr(5) manual page and http://acl.bestbits.at/ to
80				learn more about extended attributes.
81	
82	nouser_xattr		Disables Extended User Attributes.
83	
84	acl			Enables POSIX Access Control Lists support.
85				Additionally, you need to have ACL support enabled in
86				the kernel configuration (CONFIG_EXT3_FS_POSIX_ACL).
87				See the acl(5) manual page and http://acl.bestbits.at/
88				for more information.
89	
90	noacl			This option disables POSIX Access Control List
91				support.
92	
93	reservation
94	
95	noreservation
96	
97	bsddf 		(*)	Make 'df' act like BSD.
98	minixdf			Make 'df' act like Minix.
99	
100	check=none		Don't do extra checking of bitmaps on mount.
101	nocheck
102	
103	debug			Extra debugging information is sent to syslog.
104	
105	errors=remount-ro	Remount the filesystem read-only on an error.
106	errors=continue		Keep going on a filesystem error.
107	errors=panic		Panic and halt the machine if an error occurs.
108				(These mount options override the errors behavior
109				specified in the superblock, which can be
110				configured using tune2fs.)
111	
112	data_err=ignore(*)	Just print an error message if an error occurs
113				in a file data buffer in ordered mode.
114	data_err=abort		Abort the journal if an error occurs in a file
115				data buffer in ordered mode.
116	
117	grpid			Give objects the same group ID as their creator.
118	bsdgroups
119	
120	nogrpid		(*)	New objects have the group ID of their creator.
121	sysvgroups
122	
123	resgid=n		The group ID which may use the reserved blocks.
124	
125	resuid=n		The user ID which may use the reserved blocks.
126	
127	sb=n			Use alternate superblock at this location.
128	
129	quota			These options are ignored by the filesystem. They
130	noquota			are used only by quota tools to recognize volumes
131	grpquota		where quota should be turned on. See documentation
132	usrquota		in the quota-tools package for more details
133				(http://sourceforge.net/projects/linuxquota).
134	
135	jqfmt=<quota type>	These options tell filesystem details about quota
136	usrjquota=<file>	so that quota information can be properly updated
137	grpjquota=<file>	during journal replay. They replace the above
138				quota options. See documentation in the quota-tools
139				package for more details
140				(http://sourceforge.net/projects/linuxquota).
141	
142	Specification
143	=============
144	Ext3 shares all disk implementation with the ext2 filesystem, and adds
145	transactions capabilities to ext2.  Journaling is done by the Journaling Block
146	Device layer.
147	
148	Journaling Block Device layer
149	-----------------------------
150	The Journaling Block Device layer (JBD) isn't ext3 specific.  It was designed
151	to add journaling capabilities to a block device.  The ext3 filesystem code
152	will inform the JBD of modifications it is performing (called a transaction).
153	The journal supports the transactions start and stop, and in case of a crash,
154	the journal can replay the transactions to quickly put the partition back into
155	a consistent state.
156	
157	Handles represent a single atomic update to a filesystem.  JBD can handle an
158	external journal on a block device.
159	
160	Data Mode
161	---------
162	There are 3 different data modes:
163	
164	* writeback mode
165	In data=writeback mode, ext3 does not journal data at all.  This mode provides
166	a similar level of journaling as that of XFS, JFS, and ReiserFS in its default
167	mode - metadata journaling.  A crash+recovery can cause incorrect data to
168	appear in files which were written shortly before the crash.  This mode will
169	typically provide the best ext3 performance.
170	
171	* ordered mode
172	In data=ordered mode, ext3 only officially journals metadata, but it logically
173	groups metadata and data blocks into a single unit called a transaction.  When
174	it's time to write the new metadata out to disk, the associated data blocks
175	are written first.  In general, this mode performs slightly slower than
176	writeback but significantly faster than journal mode.
177	
178	* journal mode
179	data=journal mode provides full data and metadata journaling.  All new data is
180	written to the journal first, and then to its final location.
181	In the event of a crash, the journal can be replayed, bringing both data and
182	metadata into a consistent state.  This mode is the slowest except when data
183	needs to be read from and written to disk at the same time where it
184	outperforms all other modes.
185	
186	Compatibility
187	-------------
188	
189	Ext2 partitions can be easily convert to ext3, with `tune2fs -j <dev>`.
190	Ext3 is fully compatible with Ext2.  Ext3 partitions can easily be mounted as
191	Ext2.
192	
193	
194	External Tools
195	==============
196	See manual pages to learn more.
197	
198	tune2fs: 	create a ext3 journal on a ext2 partition with the -j flag.
199	mke2fs: 	create a ext3 partition with the -j flag.
200	debugfs: 	ext2 and ext3 file system debugger.
201	ext2online:	online (mounted) ext2 and ext3 filesystem resizer
202	
203	
204	References
205	==========
206	
207	kernel source:	<file:fs/ext3/>
208			<file:fs/jbd/>
209	
210	programs: 	http://e2fsprogs.sourceforge.net/
211			http://ext2resize.sourceforge.net
212	
213	useful links:	http://www.ibm.com/developerworks/library/l-fs7/index.html
214	        http://www.ibm.com/developerworks/library/l-fs8/index.html
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.