Gerät ist schreibgeschützt gemountet, aber ich kann trotzdem darauf schreiben (CentOS 6.8)

Gerät ist schreibgeschützt gemountet, aber ich kann trotzdem darauf schreiben (CentOS 6.8)

Ich habe CentOS 6.8 auf einem Flash-Laufwerk installiert und aufgrund seines begrenzten Lebenszyklus (100.000 Schreibvorgänge (mittlere Zeit bis zum Ausfall für jeden Sektor)) möchte ich es schreibgeschützt mounten.

Der Kernel wird angeblich als ro gestartet. Zumindest cat /proc/cmdlinebeginnt das Ergebnis mit „ro ...“.

/etc/fstabIch habe die Bereitstellung auf schreibgeschützten Modus eingestellt :

UUID=4addd4a7-97f6-4399-89e4-6d3728bd2979 /     ext4    defaults,noatime,ro        1 1
UUID=21a81149-6534-4313-8696-e203896d5881 /boot ext4    defaults,noatime,ro        1 2
UUID=D64B-DD9C          /boot/efi               vfat    noatime,ro,umask=0077,shortname=winnt 0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
tmpfs                   /var/log                tmpfs   defaults        0 0

Wenn ich ausführe mount, sehe ich, dass die Spezifikationen in /etc/fstabeingehalten wurden. Trotzdem kann ich immer noch Dateien ändern und neue Dateien schreiben. Ein weiterer Beweis dafür, dass der Mount beschreibbar ist, ist das Ausführen lsof(gemäßdieser Beitrag). Das Ergebnis zeigt einige zum Schreiben geöffnete Dateien, die meisten davon auf /home. (Um dies zu erreichen, musste ich /var/logals mounten tmpfs.)

Handelt es sich hierbei um einen Fehler in CentOS 6.8? Gibt es einen Workaround?

Antwort1

Ich erinnere mich, irgendwo, wahrscheinlich auf den Manpages, gelesen zu haben, dass es eine Art Fehler gibt. Um ein Gerät schreibgeschützt zu machen, müssen Sie das Gerät auch erneut mounten.

mount -o remount,ro ...

Versuchen Sie, nach den anderen Einträgen in fstab ein Remount hinzuzufügen. Für PS-Mount kann in fstab das Dateisystem „none“ bereitgestellt werden.

AKTUALISIEREN:

Ich habe den entsprechenden Man-Eintrag gefunden;

   mount(8) since v2.27 allows to change the mount options by passing the relevant options along with --bind.  For example:

          mount --bind,ro foo foo

   This feature is not supported by the Linux kernel; it is implemented in userspace by an additional mount(2) remounting syscall.  This solution is not atomic.

   The alternative (classic) way to create a read-only bind mount is to use the remount operation, for example:

          mount --bind olddir newdir
          mount -o remount,ro,bind olddir newdir

   Note that a read-only bind will create a read-only mountpoint (VFS entry), but the original filesystem superblock will  still  be  writable,  meaning  that  the  olddir  will  be
   writable, but the newdir will be read-only.

   It's impossible to change mount options recursively (for example with -o rbind,ro).

Basierend hierauf können Sie versuchen, die fstab-Optionen zu verwenden;

default,rbind,ro

Andernfalls fügen Sie einen Eintrag zum erneuten Mounten hinzu.

UPDATE 2 (Mann 8 mounten / man 8 mounten Blockdev);

   -r, --read-only
          Mount the filesystem read-only.  A synonym is -o ro.

          Note  that,  depending  on the filesystem type, state and kernel behavior, the system may still write to the device.  For example, ext3 and ext4 will replay the journal if
          the filesystem is dirty.  To prevent this kind of write access, you may want to mount an ext3 or ext4 filesystem with the ro,noload mount options or set the  block  device
          itself to read-only mode, see the blockdev(8) command.

Das bedeutet, dass Sie folgende Möglichkeiten haben:

ro,noload

oder verwenden;

blockdev --setro /dev/...

verwandte Informationen