Potrzebuję konkretnego rzędu /etc/fstab
do zamontowania zawsze po dwóch innych rzędach:
# 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
Obecne zachowanie polega na często odwracaniu kolejności dwóch ostatnich wierszy w nieprzewidywalny sposób. Jak mogę określić niezbędne zamówienie?
noauto
i zamontowaćrc.local
?Odpowiedzi:
Jedną z opcji jest odłożenie montażu do momentu
/etc/fstab
zakończenia, co daje pełną kontrolę nad kolejnością montażu.Po prostu dodaj
noauto
do opcji montowania w fstab i podłączrc.local
.Według strony man ,
mount -a
montuje wpisy wfstab
sekwencyjnie, podczas dodawania-F
( „widelec”) opcję będzie je zamontować w parallell. Wygląda na to, że standardowy boot używa „widelca”, prawdopodobnie w celu skrócenia czasu uruchamiania, więc myślę, że późniejszy montaż (pół-) ręcznie jest najprostszym sposobem na odzyskanie kontroli nad kolejnością montowania.źródło
Mogę rozważyć skonfigurowanie skryptu, który montuje drugie dyski po wywołaniu skryptu montowania. W Ubuntu initd jest usługą, która uruchamia wszystkie komponenty twojego systemu operacyjnego i nazywa się upstart .
Jest oparty na zdarzeniach, co oznacza, że wygląda / czeka i emituje zdarzenia podczas procesu uruchamiania. Jak wskazano w tym poście , inicjowana usługa próbuje robić rzeczy równolegle, co prawdopodobnie jest przyczyną twoich problemów. Możesz więc ustawić skrypt, aby działał bezpośrednio po zakończeniu montowania i zakończeniu procesów.
Skrypty montowania są przechowywane w katalogu / etc / init /. Dodałbym tam również twój dodatkowy skrypt montowania. Spójrz na ten opis procesu uruchamiania. Ta strona prawdopodobnie pomoże ci najszybciej zacząć pisać własnym skryptem.
Musisz zacząć od sekcji w swoim własnym skrypcie. Zobacz tę sekcję, aby rozpocząć pracę po zakończeniu innej.
Nadal szukam sposobu, aby samodzielnie stworzyć własne skrypty startowe, więc nie mogę być bardziej pomocny. Jeśli znajdziesz działające rozwiązanie, prześlij je tutaj.
źródło
Ubuntu używa
mountall
podczas uruchamiania, a niemount -a
. Mountall czeka na pojawienie się bazowych urządzeń, a następnie natychmiast montuje na nich fs, chyba że fs, pod którym jest montowany, nie został jeszcze zamontowany, to czeka na ten fs.Powinieneś być w stanie uzyskać pożądaną kolejność, ustawiając punkty montowania 3 systemów plików, aby były ułożone jeden pod drugim. Zamiast montować wszystkie trzy w /home/.something, umieść pierwszy w /home/.x, a drugi w /home/.x/.y, a trzeci w /home/.x/.y/ .z.
źródło
Systemd ma teraz opcję zależności, która wymusza kolejność montowania. W twoim przypadku dodaj argumenty fstab:
Opcja noauto nie będzie działać, jeśli chcesz zamontować na innych zamontowanych systemach plików. W moim przypadku powyższe działało - patrz https://github.com/systemd/systemd/commit/3519d230c8bafe834b2dac26ace49fcfba139823, aby uzyskać więcej informacji.
źródło
requires-mounts-for
irequires
?x-systemd.requires
zrobić to samo! Nie wiem, dlaczego są dwie opcjeZgodnie z
man fstab
,showthrough
opcja może być tym, czego szukasz. Spróbuj ustawić go na / home / ak i sprawdzić, czy działa.Możliwe, że
mount
rozwidla się podczas montowania systemów plików podczas rozruchu; jeśli tak, kolejność montowania partycji byłaby niezdefiniowana.źródło
showthrough
nie rozwiązał problemu.