Re: read-only partitions: does the policy apply to all metadata ?

From: Robert Hancock
Date: Tue Mar 10 2009 - 19:34:19 EST


porte64@xxxxxxx wrote:
Hello,

When a partition is mounted as read-only, does the kernel
really prevent ANY byte to be written to it, including
any metadata ?

(i am thinking here about file attributes -- last access time,
as well as meta information about filesystem/blocks
description etc ...).

As far as I know any of the visible attributes (last access, etc.) cannot be modified. However, mounting read-only may still write to the filesystem if the block device is writable, for example with ext3/ext4 if the file system was not unmounted cleanly last time and the journal needs to be replayed.


And is the policy implemented in every filesystem type driver
or at some abstraction level (as if the write() and like
system calls were designed to return an error).

Unfortunately, on common (all?) hard drives, there seems
to be no switch to set the device microcode in read-only
mode.

By the way, this makes me also thing about memory cards
with locks: is it a real protection or it is just a setting
which tells the kernel that it *SHOULD* mount the device
read-only ?

Normally the card reader indicates to the OS that the device is read-only, and then the kernel will mount it only read-only. However, note that some crappy SD card readers don't implement the write protect switch detection and will allow writing to a card marked read-only.


Please include my private address if you answer; i posted to the
list because in some other forums we did not come up
with a clear answer, so this is my last chance to get a
definite done. However i didn't subscribe to the list as
i have realized i am not able to help unfortunately:
operating systems are the most complex thing ever design by humans !

Best regards
Phil

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/