Re: Add a norecovery option to ext3/4?

Kyle Moffett
2007-04-09T16:21:28Z

On Apr 09, 2007, at 11:43:15, Phillip Susi wrote:
> Samuel Thibault wrote:
>> Hi,
>> Distribution installers usually try to probe OSes for building a
>> suited grub menu. Unfortunately, mounting an ext3 partition, even
>> in read-only mode, does perform some operations on the filesystem
>> (log recovery). This is not a good idea since it may silently
>> garbage data. XFS has a norecovery option that allows to disable
>> that, I'd say ext3/4 should have it too.
>
> When the filesystem is told to mount the disk read only, that means
> it should not write to it. The fact that ext3 goes ahead and does
> anyway is a bug and should be fixed. There is no need for a
> norecovery option, because read only is a sufficient directive to
> tell the filesystem not to write to the disk.
>
> As someone else pointed out, this behavior causes havoc if you
> hibernate a system and then boot up another system which mounts the
> disk of the hibernated system. Under all conditions it should be
> safe to mount a disk read only, but here it is not because the
> journal playback trashes the disk out from under the hibernated
> system.

Well IIRC it is possible to prevent that by switching the blockdev to
read-only mode first:

root@ares:~# mount /dev/hda6 /mnt
kjournald starting. Commit interval 5 seconds
EXT3 FS on hda6, internal journal
EXT3-fs: mounted filesystem with ordered data mode
root@ares:~# umount /mnt
root@ares:~# blockdev --setro /dev/hda6
root@ares:~# mount /dev/hda6 /mnt
mount: block device /dev/loop0 is write-protected, mounting read-only
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode

Cheers,
Kyle Moffett