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?

Luc M
quelle

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.

Prix
quelle
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.)

Tronda
quelle
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

rockwotj
quelle
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
Andrew McGlashan
quelle
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

Vikas Avnish
quelle
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.

Ian Hunter
quelle
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 ~] #
OldTimeAdmin
quelle