Come posso specificare l'ordine in cui i filesystem sono montati automaticamente?


14

Ho bisogno di una fila particolare /etc/fstabda montare sempre dopo altre due file:

# 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

Il comportamento attuale è di invertire spesso l'ordine delle ultime due righe in modo imprevedibile. Come posso specificare l'ordine necessario?


4
Possibile soluzione alternativa (non testato): configurare l'ultimo come noautoe montare rc.local?
jg-faustus,

@ jg-faustus Grazie, la soluzione sembra avere successo.
ændrük,

@ jg-faustus Questa taglia sta finendo presto e la tua soluzione è la cosa più vicina a una risposta. Se lo pubblichi di seguito, ti darò il +50.
ændrük,

Risposte:


17

Un'opzione è quella di posticipare il montaggio fino al /etc/fstabcompletamento, ciò ti dà il pieno controllo sull'ordine di montaggio.

Basta aggiungere noautoalle opzioni di mount in fstab e montare rc.local.

Secondo la pagina man , mount -amonta le voci in fstabsequenza, mentre aggiungendo l' -Fopzione ('fork') le monterai in parallelo. Sembra che lo stivale standard stia usando 'fork', presumibilmente per ridurre il tempo di avvio, quindi immagino che il montaggio (semi) manuale successivamente sia il modo più semplice per riprendere il controllo dell'ordine di montaggio.


4

Potrei considerare di impostare uno script che monta i secondi dischi dopo che lo script mount è stato chiamato. In Ubuntu initd è il servizio che avvia tutti i componenti del tuo sistema operativo e si chiama upstart .

È basato su eventi, nel senso che appare / attende ed emette eventi durante il processo di avvio. Come ha sottolineato questo post , il servizio initd prova a fare le cose in parallelo, che è probabilmente ciò che sta causando i tuoi problemi. Quindi puoi impostare lo script in modo che venga eseguito subito dopo che mount ha terminato e completato i processi.

Gli script di mount sono mantenuti nella directory / etc / init /. Vorrei aggiungere anche il tuo script di mount aggiuntivo lì. Guarda questa descrizione del processo di avvio. Quel sito probabilmente ti aiuterà a rimanere con il tuo script il più veloce.

Devi iniziare nella sezione del tuo script. Vedi questa sezione per iniziare un lavoro dopo che un altro è terminato.

Sto ancora cercando come creare da solo i miei script di avvio, quindi non posso essere più utile. Se trovi una soluzione funzionante, per favore pubblicala di nuovo qui.


4

Ubuntu utilizza mountallall'avvio, no mount -a. Mountall attende che appaiano i dispositivi sottostanti e quindi monta immediatamente la fs su di essi, a meno che la fs su cui viene montata non sia ancora stata montata, quindi attende quella fs.

Dovresti essere in grado di ottenere l'ordine desiderato impostando i punti di montaggio dei 3 filesystem in modo che siano impilati uno sotto l'altro. Invece di montare tutti e tre in /home/.something, metti il ​​primo in /home/.x e il secondo in /home/.x/.y e il terzo in /home/.x/.y/ .Z.



1

Secondo man fstab, l' showthroughopzione potrebbe essere quello che stai cercando. Prova a impostarlo su / home / ak e vedi se funziona.

È possibile che si mountbiforchi durante il montaggio di filesystem durante l'avvio; in tal caso, l'ordine in cui sono montate le partizioni sarebbe indefinito.


1
showthroughnon ha risolto il problema.
ændrük,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.