Wie validiert man fstab ohne Neustart?


103

Ich habe modifiziert /etc/fstab.

Ich habe die neuen Geräte überprüft und kann sie mit dem mountBefehl einbinden.

Wie kann ich die vorgenommenen Änderungen validieren /etc/fstab?

Antworten:


126

Sie können einfach ausführen: mount -a

-a Mounten Sie alle in fstab genannten Dateisysteme (der angegebenen Typen).

Dieser Befehl hängt alle in fstab genannten (noch nicht gemounteten) Dateisysteme ein und wird beim System-Skript-Start während des Bootens verwendet.


3
... und vergleichen Sie es mit / etc / mtab, sobald Sie ein "sudo mount -a" durchgeführt haben, um sicherzustellen, dass alle Ihre Optionen berücksichtigt wurden.
Adebaumann

1
mount -adurch erneutes Lesen /etc/fstabwürde auch neu laden, /etc/mtabso sollte er nur damit klar kommen .
Prix

2
ist das nicht der punkt, den adebaumann hier anzusprechen versucht? mount -a gibt möglicherweise Erfolg zurück, bedeutet jedoch nicht unbedingt, dass alle spezifischen Mount-Optionen berücksichtigt wurden. Da hierdurch auch / etc / mtab neu geladen wird, sollten Sie überprüfen, ob alle Optionen funktionieren.
RapidWebs

57

Der Befehl mount nimmt ein --fakeoder -fkurz. Der folgende Befehl sollte das tun, was Sie brauchen:

mount -fav

Folgendes steht in der Dokumentation zur -fOption:

Causes everything to be done except for the actual system call; if it's not obvious, this ``fakes'' mounting the filesystem. This option is useful in conjunction with the -v flag to determine what the mount command is trying to do.

(Beachten Sie, dass dies Linux ist - prüfen Sie dies, bevor Sie es woanders verwenden: FreeBSD verwendet -ffor 'force' - genau die entgegengesetzte Bedeutung.)


4
mount -fav überprüft nicht, ob sich das Gerät mit der angegebenen UUID tatsächlich im System befindet. Auch möchte man -f mit -n kombinieren, um / etc / mtab nicht zu verschmutzen
Alexandr Priymak

Ich mag, mount --fake -aaber es scheint exit code($?)=0immer zurückzukehren. Umm ..
kujiy

Auch die Fake-Option prüft nicht, ob das Verzeichnis existiert. Es heißt, successfully mountedauch wenn der Mount Point Dosent vorhanden ist
DollarAkshay

Dies scheint eine gute erste Sache zu sein, aber Sie sollten danach auch ein "mount -a" machen, um dies zu überprüfen. In meinem Fall habe ich die Optionen auf "default" anstatt auf "defaults" gesetzt (was mein Pi am Booten gehindert hat), aber mount -faves als korrekt validiert. Sobald ich a gemacht habe, hat mount -aes einen Fehler gefunden.
Adam Plocher

5

sudo findmnt --verify --verbose ist der beste Weg, den ich gefunden habe


3

Ich habe dieses / Problem / gefunden, aber die Lösung entsprach nicht meinen Anforderungen.

Beim Neustart mit ungültigen Einträgen in / etc / fstab, z. B. fehlenden Dateisystemen, die fsck nicht überprüfen kann; Das System kann nicht gestartet werden. Wenn Sie eine Box ohne Kopf haben, kann dies sehr viel schwieriger zu bewältigen sein.

Dies ist meine Lösung zur Überprüfung von / etc / fstab, um dieses Boot-Problem zu vermeiden:

    # cat /usr/local/bin/check-fstab-uuid-entries.sh
    #!/usr/bin/env bash

    for x in $(grep ^UUID /etc/fstab|cut -d \  -f 1|cut -d = -f 2)
    do
            if [ ! -h /dev/disk/by-uuid/$x ];then
                    echo $(grep $x /etc/fstab)  ..... not found
            fi
    done

2

mount -a ist eine sichere Methode, um / etc / fstab zu überprüfen, da andernfalls ein falscher Eintrag das System beschädigen kann

Es wird außerdem empfohlen, eine Sicherungskopie der ursprünglichen Datei / etc / fstab zu erstellen. Es könnte in das Home-Verzeichnis von root kopiert werden


2

Beachten Sie, dass Sie, wenn Sie Ihrer fstab eine Auslagerungsdatei hinzufügen, mount -adiese nicht aktivieren : Sie möchten sie ausführen swapon -a.


1

TBHs sogar gefälschte Einbindung validiert die fstab nicht sicher auf fehlerhafte fs-Typ-Einträge.

Sie können Einträge mit korrekten UUIDs, Verzeichnissen usw. haben. Wenn Sie jedoch einen nicht vorhandenen FS-Typ angeben, wird der Systemstart beim nächsten Mal angehalten.

[root @ grumpy ~] # grep backup / etc / fstab
UUID = 5ed48e5e-7251-4d49-a273-195cf0432a89 / mnt / backup noatime, nodiratime, xfs-Standardeinstellungen, nodev, nosuid 0 0
[root @ grump ~] #

[root @ grumpy ~] # mount -fav | grep backup
/ mnt / backup: erfolgreich gemountet
[root @ grumpy ~] #
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.