Gibt es eine einfache Möglichkeit, festzustellen, ob ein bereitgestelltes Dateisystem schreibgeschützt oder schreibgeschützt bereitgestellt ist? Ich dachte nur, um zu pfeifen, mount
aber ich dachte, es könnte einen einfacheren Weg geben.
37
statvfs
dass unter anderem ein Flag-Feld mit einem Flag zurückgegeben wird, das eine Nur-Lese-Bereitstellung anzeigt. Leider kenne ich keinen Shell-Befehl, um dies direkt zu tun. Ich hätte verwendetstat -f
, aber dieser Befehl zeigt alles außer Flags.mount
sagt er Ihnen nicht immer, was Sie wollen: paraphrasieren Sie/etc/mtab
, was eine zwischengespeicherte Version der Daten ist und womöglich in einigen Fällen veraltet sein. Die Info in/proc/mounts
ist das, was Sie wirklich wollen.Antworten:
Dieser kleine Einzeiler gibt etwas aus, wenn ein ro-Dateisystem vorhanden ist.
Vorausgesetzt, Sie haben normalerweise kein ro-Dateisystem wie eine CD im Laufwerk, ist dies für einige grundlegende Überwachungsaufgaben ausreichend und es ist nicht erforderlich, das Dateisystem zu ändern, um den aktuellen Status zu ermitteln. Es wird auch nicht von Ihrem Dateisystemtyp ausgegangen. Pipe es in grep -v iso9660, wenn Sie Ihre CDs aus der Aufzeichnung heraushalten möchten.
quelle
grep -P "\sro[\s,]" /proc/mounts
oder verwendengrep " ro[ ,]" /proc/mounts
ext4 rw,noatime,nobarrier,errors=remount-ro,data=ordered 0 0
so eingestellt, dass er im Fehlerfall als schreibgeschützt erneut bereitgestellt wird. Ohne Überprüfungmount
wissen Sie also nicht, ob diese erneute Bereitstellung stattgefunden hat, und ob sie sich aktuell in befindetro
.$ grep "\sro[\s,]" /proc/mounts
Ausgabe:/dev/mapper/root / ext4 ro,relatime,errors=remount-ro,user_xattr,acl,barrier=1,data=ordered 0 0
Alte Frage, aber ich bin auf der Suche nach der gleichen Hilfe darauf gestoßen und es scheint, als ob es noch einfacher wäre, ohne eine Datei zu erstellen.
Natürlich ist root-ro ro montiert fs und root-rw ist rw fs.
quelle
man dash
für die-w
Option - 'Die Datei kann in einem schreibgeschützten Dateisystem nicht geschrieben werden, auch wenn dieser Test true angibt.' AFAIK das ist das gleiche für andere Muscheln.Wenn das Dateisystem eingehängt ist, würde ich in ein temporäres Verzeichnis wechseln und versuchen, eine Datei zu erstellen. Der Rückkehrcode gibt an, ob das Dateisystem schreibgeschützt oder schreibgeschützt ist, sofern das Dateisystem nicht voll ist (danke Willem).
quelle
touch afile && { rm afile; echo "read-write"; } || echo "read-only"
mktemp -p /filesystem/of/interest/
anstelle von 'afile' verwenden, um die Datei und den Dateinamen zu generieren. BesteIch hatte gerade dieses Problem und das sind echte Pasten ...
Schauen Sie sich / proc / mounts an -
Zu Ihrer Information: Diese beiden Partitionen werden nur mit dem Befehl mount als eingehängt angezeigt.
quelle
Basiert auf der Antwort einer Flitzerfliege , beeinflusst von einem Kommentar von WhiteKnight
Erstellen Sie im Handumdrehen eine Detektorfunktion.
Verwenden Sie diese Option, um festzustellen, ob sich ein Pfad in einem schreibgeschützten Dateisystem befindet
Und entsorgen Sie es, wenn Sie fertig sind
quelle
Hier ist meine Lösung:
quelle
So überprüfen Sie beispielsweise, ob sich die Root-Partition im schreibgeschützten Modus befindet:
quelle
Ähnlich wie bei Antonio können Sie mit / proc / mounts dasselbe tun. Verwenden Sie anstelle von sda4 Ihr eigenes Laufwerk.
Katze / proc / Reittiere grep / dev / sda4 | awk '{print substr ($ 4,1,2)}'
quelle