Как я могу указать порядок, в котором файловые системы монтируются автоматически?

Мне нужно, чтобы определенная строка в /etc/fstab всегда монтировалась после двух других строк:

# Always mount these first
UUID=fdf38dd4-9e9d-479d-b830-2a6989958503 / ext4 noatime,discard,errors=remount-ro 0 1
UUID=2b548eb8-fa67-46ce-a998-91d587dba62f /home/.hdd ext4 errors=remount-ro 0 2

# Always mount this second
none /home/ak aufs br:/home/.ssd/ak=rw:/home/.hdd/ak=rw 0 0

Текущее поведение состоит в том, чтобы часто изменять порядок последних двух строк непредсказуемым образом. Как я могу указать необходимый заказ?

14
задан 5 May 2011 в 05:10

5 ответов

Один из вариантов - отложить монтаж до завершения /etc/fstab, что дает вам полный контроль над порядком монтирования.

Просто добавьте noauto к опциям монтирования в fstab и смонтируйте в rc.local.

Согласно справочной странице , mount -a монтирует записи в fstab последовательно, в то время как добавление опции -F ('fork') монтирует их параллельно. Похоже, что стандартная загрузка использует 'fork', предположительно, для сокращения времени загрузки, поэтому я предполагаю, что последующее монтирование (полу) вручную - это самый простой способ восстановить контроль над порядком монтирования.

0
ответ дан 5 May 2011 в 05:10

Я мог бы подумать о настройке скрипта , который монтирует вторые диски после вызова скрипта монтирования. В Ubuntu initd - это служба, которая запускает все компоненты вашей операционной системы, и она называется upstart .

Он основан на событиях, то есть он просматривает / ожидает и генерирует события во время процесса загрузки. Как в этом посте было указано , что служба initd пытается делать что-то параллельно, что, вероятно, является причиной ваших проблем. Таким образом, вы можете настроить запуск скрипта сразу после того, как монтирование завершится и завершит его обработку.

Сценарии монтирования хранятся в каталоге / etc / init /. Я бы также добавил ваш дополнительный скрипт монтирования. Посмотрите на это описание процесса запуска. Этот сайт, вероятно, поможет вам быстрее увидеть свой собственный скрипт.

Вам нужно иметь начало секции в вашем собственном сценарии. См. Этот раздел для начала работы после того, как другой закончил.

Я все еще смотрю на то, как создавать свои собственные сценарии запуска, так что я не могу быть более полезным. Если вы нашли рабочее решение, пожалуйста, опубликуйте его здесь.

0
ответ дан 5 May 2011 в 05:10

Ubuntu использует mountall во время загрузки, а не mount -a. Mountall ожидает появления соответствующих устройств, а затем немедленно монтирует fs на них, если только fs, под которой он монтируется, еще не был смонтирован, а затем ожидает этого fs.

Вы сможете получить желаемый порядок, установив точки монтирования трех файловых систем, чтобы они располагались друг над другом. Вместо монтирования всех трех в /home/.something поместите первый в /home/.x, а второй в /home/.x/.y, а третий в /home/.x/.y/ .z.

0
ответ дан 5 May 2011 в 05:10

Согласно man fstab, вариант showthrough может быть тем, что вы ищете. Попробуйте установить его на / home / ak и посмотреть, работает ли он.

Возможно, что mount разветвится при монтировании файловых систем во время загрузки; в этом случае порядок монтирования разделов будет неопределенным.

0
ответ дан 5 May 2011 в 05:10

Systemd теперь включает опцию зависимости, которая обеспечивает порядок монтирования. В вашем случае добавьте аргументы fstab:

x-systemd.requires-mounts-for=/,x-systemd.requires-mounts-for=/home/.hdd

Опция noauto не будет работать, если вам нужно смонтировать другие подключенные файловые системы. В моем случае вышеупомянутое сработало, см. Commit https://github.com/systemd/systemd/commit/3519d230c8bafe834b2dac26ace49fcfba139823 для более подробной информации.

0
ответ дан 5 May 2011 в 05:10

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

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