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.