У меня есть запись для внешнего жесткого диска в моем fstab:
UUID="680C0FE30C0FAAE0" /jgdata ntfs noatime,rw
Но иногда этот диск не подключается во время загрузки. Это оставляет меня на полпути через загрузку, с приглашением «Продолжить ожидание, нажмите S или нажмите M», но никакое нажатие клавиш не оказывает никакого влияния на этом этапе (включая Ctrl kbd> - Alt kbd > - Удалить kbd>, даже без заглавных букв).
Если не написать сценарий для проверки выходных данных fdisk -l
, как я могу подключить этот диск во время загрузки, только если он присутствует? Было бы удобно иметь запись fdisk для этого диска, поэтому я могу просто набрать mount /jgdata
вместо указания имени устройства.
Вы все на правильном пути. Я нашел способ, который немного более чист и лучше.
Правильный вариант добавления в fstab
- nofail
, однако, он должен следовать после auto
. Если вы измените его на noauto
, он никогда не будет монтироваться во время загрузки. Если вы добавите nobootwait
в загрузчик, вы можете пропустить что-то серьезное, например, смонтировать раздел до того, как fsck
завершит его проверку, или не смонтировать раздел, используемый в процессе загрузки.
После внесения вышеуказанных изменений система запустится в обычном режиме (и смонтирует том), если устройство будет подключено во время выключения системы. Он также будет загружаться нормально, если устройство отсутствует во время загрузки.
Единственное неудобство заключается в том, что если вы подключаете устройство во время работы системы, в зависимости от конфигурации (слишком много переменных для тестирования), устройство может не подключиться сразу. Это можно исправить с помощью простого mount -a
или mount /specific_device
или перезагрузки.
У меня была та же проблема - я сделал один дополнительный шаг
Если вы используете опцию nofail
в /etc/fstab
, система будет искать ваш диск (и раздел) во время загрузки. Если устройство подключено, файловая система будет смонтирована. Если нет, загрузка продолжится как обычно.
См. Вики: https://wiki.archlinux.org/index.php/Fstab
Пример
UUID=XXXXXXXXXXXXXXX /myhdd ntfs nofail,auto,noatime,rw,user 0 0
Я пытался загрузиться система с подключенным устройством и без него, и она работает нормально.
Чего я не достиг, так это автоматического монтирования, когда диск подключен после загрузки (когда он не подключен при загрузке). Я должен использовать mount -a
как root, чтобы смонтировать все снова.
У меня та же проблема. Я редактировал fstab, чтобы закомментировать запись, когда я знаю, что в следующий раз при загрузке у меня не будет диска. Затем, когда у меня есть диск, я просто редактирую fstab, чтобы удалить комментарий, и запускаю mount -a. Это не идеальное решение. Было бы здорово, если бы я мог найти способ, как система автоматически смонтирует диск, если он есть, или автоматически пропустит его, если он отсутствует. Та же проблема возникает, если у вас автоматически смонтированы общие ресурсы NFS, а сервер отсутствует.
Рекомендуемый способ монтирования во время загрузки - инструктировать их систему через файл fstab . Глядя на ваш вопрос, я могу видеть, что вы почти у цели, не хватает только инструкции, которая настраивает устройство на использование опций автомонтирования, позволяя вашей системе монтировать устройство, когда оно доступно.
Итак, просто перепишите строку в вашем fstab, как показано ниже:
# <file system> <dir> <type> <options> <dump> <pass>
UUID="680C0FE30C0FAAE0" /jgdata ntfs user,auto,rw 0 0
После изменения и сохранения попробуйте смонтировать его вручную:
$ sudo mount -a
blockquote>Важно отметить, что:
- вы должны быть уверены в UUID устройства. UUID генерируются утилитами make-filesystem (mkfs. *) При создании файловой системы.
- Эти
<options>
должны быть написаны в очень специфическом формате, разделенном запятыми, но без пробелов после каждой запятой. Будьте осторожны с этим; -)- Я не уверен, что это будет работать гладко, потому что вы пытаетесь автоматически смонтировать файловую систему NTFS, которую можно обрабатывать с помощью утилит NTFS-3G . В то время как мои инструкции должны работать правильно, я никогда не пробовал автомонтировать NTFS раньше. Поэтому, если это не помогло, я рекомендую вам взглянуть на этот Монтирование разделов Windows на предмет альтернативного использования NTFS.
Спасибо!
/dev/xvdh1 /myfs xfs defaults,nofail,x-systemd.device-timeout=30 0 0
работал для меня.
nofail ... Не сообщать об ошибках для этого устройства, если оно не существует.
x-systemd.device-timeout = 30 ... Загрузка займет 30 секунд, если устройство не существует (по умолчанию - 90 секунд).
Источник: https://wiki.archlinux.org/index.php/fstab#External_devices
Опция noauto позволяет процессу загрузки продолжаться?
он не монтируется автоматически, если присутствует, но он узнает об этом, если присутствует, так что простое mount / jgdata работает ... тогда скриптовому mount / jdata не понадобится проверка вывода, просто перехватите ошибка и продолжайте загрузку
edit: при некотором дальнейшем чтении bootwait, вероятно, является более правильным вариантом для передачи ... (обычно используется для сетевых ресурсов, которые могут отсутствовать до тех пор, пока в процессе загрузки, но это может все же вызвать зависание, idk)
и скрипт монтирования можно добавить так: https://stackoverflow.com/questions/2062543/running-a-script-with-the-help-of -grub-и-меню LST