diff options
author | Eric Sandeen <sandeen@redhat.com> | 2013-07-31 15:33:00 -0400 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2013-07-31 16:11:15 -0400 |
commit | cf7eff4666629de006c5ed78de79e40f483c3b06 (patch) | |
tree | 83248c91e87f0716c967414cb110340baca1d7c1 /Documentation/filesystems/ext3.txt | |
parent | 75b9222556ede41b9bd9d2d0dcb998f668b49b5f (diff) |
ext3: allow specifying external journal by pathname mount option
It's always been a hassle that if an external journal's
device number changes, the filesystem won't mount.
And since boot-time enumeration can change, device number
changes aren't unusual.
The current mechanism to update the journal location is by
passing in a mount option w/ a new devnum, but that's a hassle;
it's a manual approach, fixing things after the fact.
Adding a mount option, "-o journal_path=/dev/$DEVICE" would
help, since then we can do i.e.
# mount -o journal_path=/dev/disk/by-label/$JOURNAL_LABEL ...
and it'll mount even if the devnum has changed, as shown here:
# losetup /dev/loop0 journalfile
# mke2fs -L mylabel-journal -O journal_dev /dev/loop0
# mkfs.ext3 -L mylabel -J device=/dev/loop0 /dev/sdb1
Change the journal device number:
# losetup -d /dev/loop0
# losetup /dev/loop1 journalfile
And today it will fail:
# mount /dev/sdb1 /mnt/test
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
# dmesg | tail -n 1
[17343.240702] EXT3-fs (sdb1): error: couldn't read superblock of external journal
But with this new mount option, we can specify the new path:
# mount -o journal_path=/dev/loop1 /dev/sdb1 /mnt/test
#
(which does update the encoded device number, incidentally):
# umount /dev/sdb1
# dumpe2fs -h /dev/sdb1 | grep "Journal device"
dumpe2fs 1.41.12 (17-May-2010)
Journal device: 0x0701
But best of all we can just always mount by journal-path, and
it'll always work:
# mount -o journal_path=/dev/disk/by-label/mylabel-journal /dev/sdb1 /mnt/test
#
So the journal_path option can be specified in fstab, and as long as
the disk is available somewhere, and findable by label (or by UUID),
we can mount.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'Documentation/filesystems/ext3.txt')
-rw-r--r-- | Documentation/filesystems/ext3.txt | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Documentation/filesystems/ext3.txt b/Documentation/filesystems/ext3.txt index 293855e95000..7ed0d17d6721 100644 --- a/Documentation/filesystems/ext3.txt +++ b/Documentation/filesystems/ext3.txt | |||
@@ -26,11 +26,12 @@ journal=inum When a journal already exists, this option is ignored. | |||
26 | Otherwise, it specifies the number of the inode which | 26 | Otherwise, it specifies the number of the inode which |
27 | will represent the ext3 file system's journal file. | 27 | will represent the ext3 file system's journal file. |
28 | 28 | ||
29 | journal_path=path | ||
29 | journal_dev=devnum When the external journal device's major/minor numbers | 30 | journal_dev=devnum When the external journal device's major/minor numbers |
30 | have changed, this option allows the user to specify | 31 | have changed, these options allow the user to specify |
31 | the new journal location. The journal device is | 32 | the new journal location. The journal device is |
32 | identified through its new major/minor numbers encoded | 33 | identified through either its new major/minor numbers |
33 | in devnum. | 34 | encoded in devnum, or via a path to the device. |
34 | 35 | ||
35 | norecovery Don't load the journal on mounting. Note that this forces | 36 | norecovery Don't load the journal on mounting. Note that this forces |
36 | noload mount of inconsistent filesystem, which can lead to | 37 | noload mount of inconsistent filesystem, which can lead to |