101-350 · Question #112
Which command will create an ext3 filesystem on /dev/hda2?
The correct answer is B. /sbin/mke2fs -j /dev/hda2. See the full explanation below for the reasoning.
Question
Options
- A/sbin/mke2fs -d /dev/hda2
- B/sbin/mke2fs -j /dev/hda2
- C/sbin/mke2fs -m 3 /dev/hda2
- D/sbin/mke2fs -c ext3 /dev/hda2
How the community answered
(36 responses)- A8% (3)
- B72% (26)
- C3% (1)
- D17% (6)
Community Discussion
4B is correct. The -j flag tells mke2fs to create a journal, which is exactly what turns an ext2 filesystem into ext3, the other options either check for bad blocks (-c), set reserved block percentage (-m), or just flat out don't exist as valid flags for this purpose.
The stem is asking you to create a specific filesystem type, so your job before touching the options is to ask what flag actually controls the journal that separates ext3 from ext2. Option A uses -d, which deals with directory indexing behavior, not journaling. Option C sets the reserved-blocks percentage, and D invents a syntax that mke2fs does not support. The -j flag is what tells mke2fs to add a journal, which is the defining feature of ext3 over its predecessor. Here is my question for you: do you know what happens to that journal at the filesystem level if you later mount an ext3 partition using the ext2 driver, and why does that matter for understanding what -j actually writes to disk?
The journal stays on disk untouched but gets completely ignored by the ext2 driver, which is why you lose crash recovery silently and can corrupt data without any warning, so -j is not just a label change, it is writing actual journal inode structures that only a journal-aware driver will use.
The -j flag adds a journal - what do you think that does to a filesystem?