Comment valider fstab sans redémarrer?

104

J'ai modifié /etc/fstab.

J'ai vérifié les nouveaux périphériques et je peux les monter avec la mountcommande.

Comment puis-je valider les modifications apportées à /etc/fstab?

Luc M
la source

Réponses:

127

Vous pouvez exécuter simple: mount -a

-a Monte tous les systèmes de fichiers (des types donnés) mentionnés dans fstab.

Cette commande monte tous les systèmes de fichiers (non encore montés) mentionnés dans fstab et est utilisée au démarrage du script système lors du démarrage.

Prix
la source
3
... et comparez-le à / etc / mtab une fois que vous avez fait "sudo mount -a", juste pour vous assurer que toutes vos options ont été respectées.
Adebaumann
1
mount -apar relecture /etc/fstabserait également recharger /etc/mtabalors il devrait être bien avec cela seulement.
Prix
2
N'est-ce pas là le but qu'Adebaumann tente de soulever ici? mount -a peut être un succès, mais ne signifie pas nécessairement que toutes les options de montage spécifiques ont été honorées. comme cela rechargera également / etc / mtab, vous devriez vérifier si toutes les options fonctionnent?
RapidWebs
57

La commande mount prend un --fakeou -fpour faire court. La commande suivante devrait faire ce dont vous avez besoin:

mount -fav

Ce qui suit est dans la documentation pour -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.

(Notez que ceci est Linux - vérifiez avant d’utiliser ailleurs: FreeBSD utilise -fpour 'forcer' - le sens opposé.)

Tronda
la source
5
mount -fav ne vérifie pas que le périphérique avec l'UUID spécifié est réellement dans le système. On voudrait aussi combiner -f avec -n pour ne pas polluer / etc / mtab
Alexandr Priymak
J'aime mount --fake -amais ça semble revenir exit code($?)=0toujours. Umm ..
kujiy
De plus, l'option fake ne vérifie pas si le répertoire existe. Il dit que successfully mountedmême lorsque le point de montage existe
DollarAkshay
Cela semble être une bonne première chose à essayer, mais vous devriez aussi faire un "mount -a" après pour vérifier. Dans mon cas, j'ai défini les options sur "par défaut" au lieu de "par défaut" (ce qui empêchait mon Pi de démarrer), mais je l'ai mount -favvalidée comme correcte. Dès que j'ai fait mount -acela, j'ai trouvé une erreur.
Adam Plocher
6

sudo findmnt --verify --verbose est le meilleur moyen que j'ai trouvé

Rockwotj
la source
3

J'ai trouvé cela / problème / mais la solution ne répondait pas à mes exigences.

Lors du redémarrage avec des entrées non valides dans / etc / fstab, telles que des systèmes de fichiers manquants que fsck ne peut pas vérifier; le système ne parviendra pas à démarrer. Cela peut être beaucoup plus difficile à gérer si vous avez une boîte sans tête.

Voici ma solution pour vérifier / etc / fstab afin d'éviter ce problème de démarrage:

    # 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
la source
2

mount -a est une méthode sûre pour vérifier / etc / fstab, sinon une mauvaise entrée pourrait endommager le système.

Il est également conseillé de conserver une copie de sauvegarde du fichier / etc / fstab d'origine. il pourrait être copié dans le répertoire personnel de la racine

Vikas Avnish
la source
2

Notez que si vous ajoutez un fichier d'échange à votre fstab, mount -ane l'activez pas: vous souhaitez exécuter swapon -a.

Ian Hunter
la source
1

TBH, même un faux montage, ne valide pas en toute sécurité le fstab pour les mauvaises entrées de type fs.

vous pouvez avoir des entrées avec des uuid, répertoires, etc. corrects, mais si vous spécifiez un type FS non existant, cela arrêtera votre démarrage la prochaine fois.

[root @ grumpy ~] # sauvegarde grep / etc / fstab
UUID = 5ed48e5e-7251-4d49-a273-195cf0432a89 / mnt / sauvegarde noatime, nodiratime, valeurs par défaut de xfs, nodev, nosuid 0 0
[root @ grump ~] #

[root @ grumpy ~] # mount -fav | sauvegarde de grep
/ mnt / backup: monté avec succès
[racine @ grincheux ~] #
OldTimeAdmin
la source