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


15

Мені потрібен певний рядок, /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

Поточна поведінка полягає в тому, щоб часто змінювати порядок останніх двох рядів непередбачувано. Як я можу вказати необхідне замовлення?


4
Можливе вирішення (не перевірено): Налаштувати останній як noautoі встановити rc.local?
jg-faustus

@ jg-faustus Дякую, вирішення проблеми виявляється вдалим.
ændrük

@ jg-faustus Цей виграш скоро закінчується, а ваше вирішення - найближче до відповіді. Якщо ви опублікуєте його нижче, я дам вам +50.
ændrük

Відповіді:


18

Один із варіантів - відкласти монтаж до тих пір, поки /etc/fstabне завершиться, це дає повний контроль над порядком кріплення.

Просто додайте noautoдо параметрів кріплення у fstab та монтуйте rc.local.

Згідно з довідковою сторінкою , mount -aмонтує записи fstabпослідовно, а додавання параметра -F('fork') зможе встановити їх паралельно. Здається, що в стандартній завантажувальній системі використовується "fork", імовірно, для скорочення часу завантаження, тому я гадаю, що встановлення (напів-) вручну після цього є найпростішим способом відновити контроль за порядком монтажу.


4

Я можу розглянути можливість створення сценарію, який змонтує другі диски після виклику сценарію кріплення. У Ubuntu initd - це служба, яка запускає всі компоненти вашої операційної системи, і вона називається upstart .

Це на основі подій, тобто він виглядає / чекає та випромінює події під час процесу завантаження. Як зазначалося в цій публікації, служба initd намагається робити паралельно, що, ймовірно, викликає ваші проблеми. Таким чином, ви можете встановити сценарій для запуску відразу після завершення монтажу та його завершення.

Сценарії монтажу зберігаються в каталозі / etc / init /. Я також додав би ваш додатковий сценарій встановлення. Подивіться на цей опис процесу запуску. Цей веб-сайт, ймовірно, допоможе вам якнайшвидше побачити власний сценарій.

Потрібно розпочати розділ у власному сценарії. Дивіться цей розділ щодо початку роботи після закінчення іншої.

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


4

Ubuntu використовує mountallпід час завантаження, ні mount -a. Mountall чекає, коли з’являться базові пристрої, а потім негайно змонтує на них fs, якщо тільки fs, під яким він встановлений, ще не встановлений, тоді він чекає, що цей fs.

Ви маєте змогу отримати потрібний порядок, встановивши точки монтування 3-х файлових систем, щоб вони були складені одна під іншу. Замість того, щоб монтувати всі три в /home/.something, перший поставте в /home/.x, а другий в /home/.x/.y, а третій в /home/.x/.y/ .z.


4

Тепер Systemd включив параметр залежності, який застосовує замовлення на монтаж. У вашому випадку додайте аргументи fstab:

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

Параметр noauto не працюватиме, якщо вам потрібно перейти на інші встановлені файлові системи. У моєму випадку вищезгадане див. На веб-сайті https://github.com/systemd/systemd/commit/3519d230c8bafe834b2dac26ace49fcfba139823 для отримання більш детальної інформації.


Приємна цитата. Чи можете ви сказати, у чому різниця між requires-mounts-forта requires?
Анвар

Схоже, x-systemd.requiresробимо те ж саме! Не знаю, чому є два варіанти
Анвар

1

Відповідно man fstab, showthroughваріант може бути тим, що ви шукаєте. Спробуйте ввімкнути його / home / ak та побачити, чи працює він.

Можливо, що mountвилки під час монтажу файлових систем під час завантаження; якщо так, то порядок встановлення ваших розділів був би не визначеним.


1
showthroughне вирішили проблему.
ændrük
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.