¿Cómo puedo especificar el orden en que los sistemas de archivos se montan automáticamente?

14

Necesito que una fila en particular /etc/fstabse monte siempre después de otras dos filas:

# 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

El comportamiento actual es a menudo invertir el orden de las dos últimas filas de una manera impredecible. ¿Cómo puedo especificar el pedido necesario?

ændrük
fuente
44
Posible solución (sin probar): ¿Configurar el último como noautoy montar rc.local?
jg-faustus
@ jg-faustus Gracias, la solución parece ser exitosa.
ændrük
@ jg-faustus Esta recompensa está terminando pronto y su solución es lo más parecido a una respuesta. Si lo publica a continuación, le daré el +50.
ændrük

Respuestas:

17

Una opción es posponer el montaje hasta que se /etc/fstabhaya completado, esto le da control total sobre el orden de montaje.

Simplemente agregue noautoa las opciones de montaje en fstab y monte rc.local.

De acuerdo con la página de manual , mount -amonta las entradas fstabsecuencialmente, mientras que al agregar la -Fopción ('fork') las montará en paralelo. Parece que el arranque estándar está utilizando 'horquilla', presumiblemente para reducir el tiempo de arranque, por lo que supongo que el montaje (semi) manual después es la forma más sencilla de recuperar el control del orden de montaje.

jg-faustus
fuente
4

Podría considerar configurar un script que monte los segundos discos después de que se haya llamado al script de montaje. En Ubuntu initd es el servicio que inicia todos los componentes de su sistema operativo, y se llama upstart .

Está basado en eventos, lo que significa que se ve / espera y emite eventos durante el proceso de arranque. Como esta publicación señaló que el servicio initd intenta hacer cosas en paralelo, que probablemente sea lo que está causando tus problemas. Por lo tanto, puede configurar su script para que se ejecute inmediatamente después de que el montaje haya finalizado y completado sus procesos.

Los scripts de montaje se guardan en el directorio / etc / init /. También agregaría su script de montaje adicional allí. Mire esta descripción del proceso de inicio. Ese sitio probablemente te ayudará a verte más rápido con tu propio script.

Debe tener una sección de inicio en su propio script. Consulte esta sección para comenzar un trabajo después de que otro haya terminado.

Todavía estoy buscando cómo crear mis propios scripts de inicio, así que no puedo ser más útil. Si encuentra una solución que funcione, publíquela aquí.

nelaaro
fuente
4

Ubuntu usa mountallen el momento del arranque, no mount -a. Mountall espera a que aparezcan los dispositivos subyacentes y luego monta los fs en ellos de inmediato, a menos que el fs en el que se está montando aún no se haya montado, entonces espera ese fs.

Debería poder obtener el orden que desea estableciendo los puntos de montaje de los 3 sistemas de archivos para que se apilen uno debajo del otro. En lugar de montar los tres en /home/.something, coloque el primero en /home/.x, y el segundo en /home/.x/.y, y el tercero en /home/.x/.y/ .z.

psusi
fuente
3

Systemd ahora ha incluido una opción de dependencia que impone el orden de montaje. En su caso, agregue los argumentos fstab:

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

La opción noauto no funcionará si necesita montar sobre otros sistemas de archivos montados. En mi caso, lo anterior funcionó ver commit https://github.com/systemd/systemd/commit/3519d230c8bafe834b2dac26ace49fcfba139823 para más detalles.

techimperial
fuente
1

Según man fstab, la showthroughopción podría ser lo que estás buscando. Intente configurarlo en / home / ak y ver si funciona.

Es posible que se mountbifurca al montar sistemas de archivos durante el arranque; si es así, el orden en que se montan sus particiones no estaría definido.

Scott Cesantía
fuente
1
showthroughNo resolvió el problema.
ændrük