Como você valida o fstab sem reiniciar?

104

Eu modifiquei /etc/fstab.

Eu verifiquei os novos dispositivos e posso montá-los com o mountcomando

Como posso validar as modificações feitas /etc/fstab?

Luc M
fonte

Respostas:

126

Você pode executar simples: mount -a

-a Monte todos os sistemas de arquivos (dos tipos fornecidos) mencionados no fstab.

Este comando montará todos os sistemas de arquivos (ainda não montados) mencionados no fstab e é usado na inicialização do script do sistema durante a inicialização.

Prémio
fonte
3
... e compare-o com o / etc / mtab depois de fazer um "sudo mount -a", apenas para garantir que todas as suas opções sejam respeitadas.
adebaumann
1
mount -areler /etc/fstabtambém recarregaria, /etc/mtabentão ele deveria ficar bem apenas com isso.
Prix
2
Não é esse o ponto que adebaumann está tentando levantar aqui? mount -a pode retornar sucesso, mas não significa necessariamente que todas as opções específicas de montagem foram respeitadas. como isso também recarregará o arquivo / etc / mtab, você deve verificar se todas as opções estão funcionando?
RapidWebs
57

O comando mount leva um --fakeou -fpara abreviar. O comando a seguir deve fazer o que você precisa:

mount -fav

A seguir está na documentação para a -fopção:

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.

(Note que este é o Linux - verifique antes de usar em outro lugar: o FreeBSD usa -fpara 'force' - exatamente o significado oposto.)

tronda
fonte
5
mount -fav não verifica se o dispositivo com UUID especificado está realmente no sistema. Também um gostaria de combinar -f com -n para não poluir / etc / mtab
Alexandr Priymak
Eu gosto, mount --fake -amas parece voltar exit code($?)=0sempre. Umm ..
kujiy 03/10
Além disso, a opção falsa não verifica se o diretório existe. Ele diz que successfully mountedmesmo quando o ponto de montagem dosent existem
DollarAkshay
Parece ser uma boa primeira coisa a tentar, mas você também deve fazer um "mount -a" depois para verificar. No meu caso, defino as opções como "padrão" em vez de "padrões" (o que estava impedindo a inicialização do meu Pi), mas mount -favvalidei como correto. Assim que eu fiz um mount -a, encontrou um erro.
Adam Plocher
6

sudo findmnt --verify --verbose é a melhor maneira que eu encontrei

rockwotj
fonte
3

Encontrei este / problema / mas a solução não atendeu aos meus requisitos.

Ao reiniciar com entradas inválidas no / etc / fstab, como sistemas de arquivos ausentes que o fsck não pode verificar; o sistema falhará ao inicializar. Isso pode ser muito mais difícil de lidar se você tiver uma caixa sem cabeça.

Esta é a minha solução para verificar / etc / fstab para evitar este problema de inicialização:

    # 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
fonte
2

mount -a é um método seguro para verificar o / etc / fstab, caso contrário, a entrada errada pode interromper o sistema

Também é recomendável manter uma cópia de backup do arquivo / etc / fstab original. poderia ser copiado para o diretório inicial do diretório raiz

Vikas Avnish
fonte
2

Observe que se você adicionar um arquivo de swap ao seu fstab, mount -anão o ativará: você desejará executar swapon -a.

Ian Hunter
fonte
1

TBH mesmo montagem falsa não valida com segurança o fstab para entradas ruins do tipo fs.

você pode ter entradas com uuid, diretórios etc. corretos, mas se você especificar um tipo de FS inexistente, isso interromperá a inicialização na próxima vez.

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

[root @ mal-humorado ~] # mount-fav | backup grep
/ mnt / backup: montado com sucesso
[root @ rabugento ~] #
OldTimeAdmin
fonte