Как вы проверяете fstab без перезагрузки?


104

Я модифицировал /etc/fstab.

Я проверил новые устройства и могу смонтировать их с помощью mountкоманды.

Как я могу проверить сделанные изменения /etc/fstab?

Ответы:


127

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

-a монтировать все файловые системы (указанных типов), упомянутые в fstab.

Эта команда смонтирует все (еще не смонтированные) файловые системы, упомянутые в fstab, и используется при запуске системного скрипта во время загрузки.


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

1
mount -aперечитывание /etc/fstabтакже перезагружает, /etc/mtabпоэтому он должен быть в порядке только с этим.
Приз

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' - совершенно противоположное значение.)


5
mount -fav не проверяет, действительно ли устройство с указанным UUID находится в системе. Также хотелось бы объединить -f с -n, чтобы не загрязнять / etc / mtab
Александр Приймак

Мне нравится, mount --fake -aно, кажется, вернуться exit code($?)=0всегда.
Ммм

Также опция fake не проверяет, существует ли каталог. Он говорит, что successfully mountedдаже когда точка монтирования уже существует
DollarAkshay

Кажется, это хорошая первая вещь, которую нужно попробовать, но вы должны также выполнить команду «mount -a» для проверки. В моем случае я установил параметры «по умолчанию» вместо «по умолчанию» (что препятствовало загрузке моего Pi), но mount -favподтвердил правильность. Как только я это сделал, mount -aон обнаружил ошибку.
Адам Плохер


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. это может быть скопировано в домашний каталог root


2

Обратите внимание, что если вы добавите файл подкачки в свой fstab, mount -aон не будет включен : вы захотите запустить swapon -a.


1

TBH, даже фальшивый монтаж, не может безопасно проверить fstab для плохих записей типа fs.

у вас могут быть записи с правильными uuid, каталогами и т. д., но если вы укажете несуществующий тип FS, это остановит загрузку в следующий раз.

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

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