Как автоматически смонтировать диски после загрузки?

В https://askubuntu.com/a/119818/5032 qbi говорит:

добавьте noauto к вашему fstab:

...

Таким образом, файловая система не будет автоматически монтироваться при запуске. Кроме того, вы пишете скрипт, который в основном монтирует ваши mhddfs и добавляет его в какой-то поздний момент процесса загрузки.

Но как ты это делаешь? Мои mergerfs никогда не монтируют все свои диски при запуске, возможно потому, что они не были смонтированы до этого? Это последняя запись в fstab, подобная этой (но с большим количеством дисков):

/mnt/EXT4_drive/drivepool:/mnt/NTFS_drive/drivepool:/mnt/anotherdrive/drivepool /mnt/drivepool fuse.mergerfs defaults,allow_other,minfreespace=100M 0 0

Когда я запускаю df после загрузки, имя диска показывает, что включены только некоторые точки монтирования и дробная часть пространства, которое должно быть у них всех, чтобы они не были включены, если они не готовы? Я должен вручную запустить sudo umount /mnt/drivepool ; sudo mount /mnt/drivepool после загрузки, чтобы исправить это и показать все из них.

Кроме того, компьютер неоднократно загружался в «Добро пожаловать в аварийный режим!» когда один из дисков автоматически блокировался при попытке монтирования /mnt/drivepool. В последнее время этого не произошло, возможно, из-за изменения в mergerfs, которое позволяет игнорировать неготовые диски вместо остановки из-за них?

Как мне автоматически смонтировать /mnt/drivepool ASAP после все остальное в fstab успешно смонтировано и fscked?

2
задан 13 April 2017 в 15:24

1 ответ

Хорошо поэтому после большого чтения:

Начиная с Ubuntu 15.04, fstab записи преобразовываются в systemd единицы (*.mount файлы, найденные под /run/systemd/generator) systemd-fstab-generator и затем смонтированы без определенного порядка, который является, почему мой перестал работать.

Однако systemd зависимости от поддержек, и они могут быть указаны с помощью fstab опции x-systemd.requires.

x-systemd.requires =
Настраивает Требование = и После = зависимость между созданной единицей монтирования и другой systemd единицей, такой как устройство, или смонтируйте единицу. Аргументом должно быть имя единицы или полный путь к узлу устройства или точке монтирования. Эта опция может быть указана несколько раз. Эта опция особенно полезна для объявлений точки монтирования, которым нужно дополнительное устройство, чтобы быть вокруг (такие как внешнее устройство журнала для файловых систем журнала) или дополнительное монтирование для существования (такие как файловая система наложения, которая объединяет несколько точек монтирования). Присматривайте =, и Требует = в systemd.unit (5) для деталей.

Таким образом для каждого необходимого как условие монтирования, Вы добавляете, что отдельная запись в fstab монтируется, и это понимает пути:

x-systemd.requires=/mnt/XP,x-systemd.requires=/mnt/NTFS_3TB,...

В моей первой попытке я не учел a /mnt/ и мой компьютер отказался загружаться и стал только для чтения. ಠ _ ಠ Для предотвращения этого необходимо также добавить nofail. Это делает точку монтирования "хотением" для local-fs.target вместо "требования", таким образом, компьютер все еще загрузится, если он перестанет работать.

Затем, когда Вы делаете mount -a это будет жаловаться на

fuse: unknown option `nofail'

но это все еще работает так или иначе. ಠ _ ಠ

Вот моя полная fstab строка, которая работала каждый раз, так как я изменил ее:

/mnt/EXT4_backup/drivepool:/mnt/WIN7_BACKUP/drivepool:/mnt/XP/drivepool:/mnt/NTFS_3TB/drivepool /mnt/drivepool fuse.mergerfs nofail,defaults,allow_other,minfreespace=100M,x-systemd.requires=/mnt/XP,x-systemd.requires=/mnt/NTFS_3TB,x-systemd.requires=/mnt/EXT4_backup,x-systemd.requires=/mnt/WIN7_BACKUP 0 0
6
ответ дан 14 April 2017 в 01:24
  • 1
    @kbenoit Lucky Вы, если Вы haven' t поражают ошибку! Тогда никакие заботы вообще, счастливый " Caffeinating"!:) – pomsky 12 November 2017 в 04:13

Другие вопросы по тегам:

Похожие вопросы: