Как я могу узнать, смонтирована ли файловая система (ext3), напрямую запросив файловую систему (то есть так же, как это делает система при загрузке и видит, что она не была размонтирована чисто)? Проверка вывода mount
бесполезен, потому что файловая система может быть смонтирована виртуальной машиной.
Я знаю, что могу бежать fsck
и он будет прерван, если файловая система смонтирована, но мне не нужно фактически проверять файловую систему.
Пересмотрите свою архитектуру. Если вам нужно получить доступ к файловой системе с нескольких узлов, оберните ее в LVM. Затем у вас есть несколько вариантов.
Тогда не имеет значения, что предоставляет ext3; вы можете ограничить доступ уровнем ниже.
Файловые системы при загрузке в большинстве дистрибутивов используют mount -a
. Он монтирует все файловые системы в fstab с помощью auto
указано, что является частью default
Технические характеристики.
Для ext2 / ext3, tune2fs
может изменять и отображать настройки, вызывающие блокировку файловой системы. Например, -c
позволяет указать, сколько монтирований до тех пор, пока файловая система не будет проверена. В конце концов, ваше предположение относительно процесса загрузки неверно.
mount
это решение, чтобы увидеть, смонтирован ли он. Я не верю, что с ext3 "статус монтирования" сохраняется вместе с разделом. Если вы опишете, почему вы не уверены, общее ли это хранилище или NFS, мы сможем предоставить рекомендации, применимые к вашей конкретной ситуации.
Файловая система не знает, смонтирована она или нет, только грязная она или чистая. Я не уверен, с какой ОС работает виртуальная машина, но некоторые могут монтировать ее только для чтения, и она останется чистой. Кроме того, он мог быть неправильно демонтирован, поэтому грязный, но фактически не использовался.
Это зависит от файловой системы. Некоторые файловые системы замечают, если они «смонтированы», и хранят немного информации в определенной области информации файловой системы. Большинство файловых систем этого не делают, так как это помешает правильной работе при жесткой перезагрузке (файловая система все равно будет думать, что она смонтирована). Некоторые файловые системы запоминают больше информации, чем «смонтированные в настоящий момент». Например, ZFS запоминает, смонтирован ли он и на каком компьютере он был установлен последним, поэтому жесткая перезагрузка работает правильно, но случайно смонтировать смонтированную файловую систему ZFS через SAN труднее.
почему бы не написать сценарий, используя FSSTAT=df | grep <filesystem mount point>
а затем протестируйте его, используя if [ ! -n "$FSSTAT" ]
где вы бы приняли решение по результату
вы можете зацикливаться на файловых системах, которые хотите протестировать, либо явно указав их в своем скрипте, либо выбрав значения из вывода mount
команда как в:
for FS in <replace with back quote> mount | grep ext3 | cut -c 26-43 <replace with backquote>
;do;
FSSTAT=df | grep $FS;
if [ ! -n "$FSSTAT" ];
... do somehting;
else;
... do something else;
fi;
done
извините, при форматировании код выглядит плохо