Bagaimana Anda memvalidasi fstab tanpa me-reboot?


104

Saya dimodifikasi /etc/fstab.

Saya memverifikasi perangkat baru dan saya bisa memasangnya dengan mountperintah.

Bagaimana saya dapat memvalidasi modifikasi yang dibuat /etc/fstab?

Jawaban:


126

Anda dapat menjalankan sederhana: mount -a

-a Pasang semua sistem file (dari tipe yang diberikan) yang disebutkan di fstab.

Perintah ini akan me-mount semua sistem file (belum-mount) yang disebutkan dalam fstab dan digunakan dalam startup skrip sistem selama boot.


3
... dan bandingkan dengan /etc/mtab setelah Anda melakukan "sudo mount -a", hanya untuk memastikan semua opsi Anda telah dihormati.
adebaumann

1
mount -adengan membaca ulang /etc/fstabjuga akan memuat ulang /etc/mtabsehingga ia harus baik-baik saja dengan itu.
Prix

2
bukankah itu poin yang coba diangkat oleh adebaumann di sini? mount -a mungkin mengembalikan kesuksesan, tetapi tidak selalu berarti bahwa semua opsi mount tertentu telah dihormati. karena ini juga akan memuat ulang / etc / mtab, Anda harus memeriksa untuk melihat apakah semua opsi berfungsi?
RapidWebs

57

Perintah mount mengambil --fakeatau -fsingkatnya. Perintah berikut harus melakukan apa yang Anda butuhkan:

mount -fav

Berikut ini dalam dokumentasi untuk -fopsi:

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.

(Perhatikan ini adalah Linux - periksa sebelum menggunakan tempat lain: FreeBSD menggunakan -f'force' - persis arti yang berlawanan.)


5
mount -fav tidak memeriksa bahwa perangkat dengan UUID yang ditentukan sebenarnya ada dalam sistem. Juga orang ingin menggabungkan -f dengan -n tidak mencemari / etc / mtab
Alexandr Priymak

Saya suka mount --fake -atetapi tampaknya exit code($?)=0selalu kembali . Umm ..
kujiy

Juga opsi palsu tidak memeriksa apakah direktori tersebut ada. Dikatakan successfully mountedbahkan ketika
dosis

Ini tampaknya menjadi hal pertama yang baik untuk dicoba, tetapi Anda juga harus melakukan "mount -a" setelah itu untuk memverifikasi. Dalam kasus saya, saya mengatur opsi ke "default" daripada "defaults" (yang mencegah Pi saya untuk boot), tetapi mount -favmemvalidasinya sebagai benar. Segera setelah saya melakukan mount -aitu menemukan kesalahan.
Adam Plocher

6

sudo findmnt --verify --verbose adalah cara terbaik yang saya temukan


3

Saya menemukan ini / masalah / tetapi solusinya tidak memenuhi persyaratan saya.

Ketika me-reboot dengan entri yang tidak valid di / etc / fstab, seperti sistem file yang hilang yang tidak dapat diperiksa fsck; sistem akan gagal untuk boot. Itu bisa menjadi jauh lebih sulit untuk ditangani jika Anda memiliki kotak tanpa kepala.

Ini adalah solusi saya untuk memeriksa / etc / fstab untuk menghindari masalah boot ini:

    # 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 adalah metode aman untuk memeriksa / etc / fstab jika tidak, entri yang salah dapat merusak sistem

Juga disarankan untuk menyimpan salinan cadangan dari file asli / etc / fstab. itu bisa disalin ke direktori home root


2

Perhatikan bahwa jika Anda menambahkan file swap ke fstab Anda, mount -atidak akan menyalakannya: Anda ingin menjalankannya swapon -a.


1

TBH bahkan pemasangan palsu tidak aman memvalidasi fstab untuk entri tipe fs buruk.

Anda dapat memiliki entri yang memiliki uuid's yang benar, direktori dll tetapi jika Anda menentukan jenis FS noexistant ini akan menghentikan boot Anda waktu berikutnya.

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

[root @ grumpy ~] # mount -fav | grep backup
/ mnt / backup: berhasil dipasang
[root @ grumpy ~] #
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.