Come convalidare fstab senza riavviare?


104

Ho modificato /etc/fstab.

Ho verificato i nuovi dispositivi e posso montarli con il mountcomando.

Come posso convalidare le modifiche apportate a /etc/fstab?

Risposte:


127

Puoi eseguire semplicemente: mount -a

-a Montare tutti i filesystem (dei tipi indicati) menzionati in fstab.

Questo comando monterà tutti i filesystem (non ancora montati) menzionati in fstab e viene utilizzato all'avvio dello script di sistema durante l'avvio.


3
... e confrontalo con / etc / mtab una volta che hai fatto un "sudo mount -a", solo per assicurarti che tutte le tue opzioni siano state onorate.
adebaumann,

1
mount -arileggere /etc/fstabavrebbe anche ricaricato, /etc/mtabquindi dovrebbe stare bene solo con quello.
Prix,

2
non è questo il punto che adebaumann sta cercando di sollevare qui? mount -a potrebbe restituire successo, ma non significa necessariamente che tutte le opzioni di mount specifiche siano state onorate. dal momento che questo ricaricherà anche / etc / mtab, dovresti controllare per vedere se tutte le opzioni funzionano?
RapidWebs,

57

Il comando mount prende un --fakeo -fin breve. Il seguente comando dovrebbe fare quello che ti serve:

mount -fav

Quanto segue è nella documentazione per l' -fopzione:

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.

(Nota che questo è Linux - controlla prima di usare altrove: FreeBSD usa -fper 'force' - esattamente il significato opposto.)


5
mount -fav non controlla che il dispositivo con l'UUID specificato sia effettivamente nel sistema. Inoltre si vorrebbe combinare -f con -n per non inquinare / etc / mtab
Alexandr Priymak

Mi piace mount --fake -ama sembra tornare exit code($?)=0sempre. Umm ...
Kujiy,

Inoltre l'opzione falsa non controlla se esiste la directory. Dice successfully mountedanche quando esiste il
dosaggio

Questa sembra essere una buona prima cosa da provare, ma dovresti anche fare un "mount -a" in seguito per verificarlo. Nel mio caso, ho impostato le opzioni su "default" invece di "default" (che impediva l'avvio del mio Pi), ma l' mount -favho convalidato come corretto. Appena ho fatto un mount -aha trovato un errore.
Adam Plocher,

6

sudo findmnt --verify --verbose è il modo migliore che ho trovato


3

Ho trovato questo / problema / ma la soluzione non ha soddisfatto i miei requisiti.

Quando si riavvia con qualsiasi voce non valida in / etc / fstab, come file system mancanti che fsck non può controllare; il sistema non si avvia. Questo può essere molto più difficile da gestire se hai una scatola senza testa.

Questa è la mia soluzione per controllare / etc / fstab per evitare questo problema di avvio:

    # 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 è un metodo sicuro per controllare / etc / fstab, altrimenti una voce errata potrebbe danneggiare il sistema

Si consiglia inoltre di conservare una copia di backup del file / etc / fstab originale. potrebbe essere copiato nella home directory di root


2

Nota che se aggiungi un file di scambio al tuo fstab, mount -anon lo accenderai: ti consigliamo di eseguirlo swapon -a.


1

TBH anche il montaggio falso non convalida in modo sicuro fstab per voci di tipo fs errate.

puoi avere voci che hanno uuid, directory ecc. corretti ma se specifichi un tipo di FS inesistente questo interromperà la prossima volta.

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

[root @ scontroso ~] # mount -fav | backup grep
/ mnt / backup: montato correttamente
[root @ scontroso ~] #
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.