Як ви перевіряєте fstab без перезавантаження?


103

Я модифікував /etc/fstab.

Я перевірив нові пристрої і можу встановити їх за допомогою mountкоманди.

Як я можу підтвердити внесені зміни /etc/fstab?

Відповіді:


126

Ви можете просто запустити: mount -a

-a Змонтувати всі файлові системи (заданих типів), згадані у fstab.

Ця команда змонтує всі (ще не встановлені) файлові системи, згадані в fstab, і використовується при запуску системного сценарію під час завантаження.


3
... і порівняйте його з / etc / mtab, як тільки ви зробили "sudo mount -a", просто щоб переконатися, що всі ваші варіанти були дотримані.
adebaumann

1
mount -aперечитування /etc/fstabтакож перезавантажиться, /etc/mtabтому він повинен бути добре лише з цим.
Prix

2
Хіба це не той момент, який адебауман намагається підняти тут? mount -a може повернути успіх, але не обов'язково означає, що всі конкретні параметри монтування були виконані. оскільки це також перезавантажить / etc / mtab, ви повинні перевірити, чи працює всі параметри?
RapidWebs

57

Команда mount - короткий --fakeабо -fкороткий. Наступна команда повинна робити те, що вам потрібно:

mount -fav

Далі в документації для -fваріанту:

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.

(Зауважте, що це Linux - перевірте, перш ніж використовувати інше: FreeBSD використовує -fдля 'force' - саме протилежне значення.)


4
mount -fav не перевіряє, що пристрій із вказаним UUID насправді є у системі. Також хочеться поєднати -f з -n, щоб не забруднювати / etc / mtab
Олександр Приймак

Мені подобається, mount --fake -aале, здається, повертається exit code($?)=0завжди. Умм ..
kujiy

Також підроблений варіант не перевіряє, чи існує каталог. Це говорить successfully mountedнавіть тоді, коли існує
доза дозатора

Здається, це спершу добре спробувати, але ви також повинні зробити "mount -a" після цього, щоб перевірити. У моєму випадку я встановив параметри "за замовчуванням" замість "за замовчуванням" (що заважало моєму Pi завантажуватися), але mount -favперевірив його як правильне. Як тільки я це зробив, mount -aвиявив помилку.
Адам Плочер

5

sudo findmnt --verify --verbose це найкращий спосіб, який я знайшов


3

Я знайшов це / проблема /, але рішення не відповідало моїм вимогам.

При перезавантаженні будь-яких недійсних записів в / etc / fstab, таких як відсутні файлові системи, які fsck не може перевірити; система не зможе завантажитися. З цим може бути набагато складніше впоратися, якщо у вас є коробка без голови.

Це моє рішення для перевірки / etc / fstab, щоб уникнути цієї проблеми завантаження:

    # 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 - це безпечний спосіб перевірити / etc / fstab, інакше неправильний запис може зламати систему

Також рекомендується зберігати резервну копію оригінального / etc / fstab файла. його можна скопіювати в домашній каталог кореня


2

Зауважте, що якщо ви додасте файл swap до свого fstab, mount -aвін не увімкнеться: ви хочете запустити swapon -a.


1

Навіть підроблений монтаж TBH не підтверджує безпеку fstab для неправильних записів типу fs.

Ви можете мати записи, які мають правильні uuid, каталоги тощо, але якщо Ви вкажете неелективний тип FS, це завантаження зупинить наступного разу.

[root @ grumpy ~] # резервна копія grep / etc / fstab
UUID = 5ed48e5e-7251-4d49-a273-195cf0432a89 / mnt / резервне копіювання в режимі часу, nodiratime, xfs за замовчуванням, nodev, nosuid 0 0
[root @ grump ~] #

[root @ grumpy ~] # mount -fav | grep резервне копіювання
/ mnt / резервне копіювання: успішно встановлено
[root @ grumpy ~] #
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.