J'ai besoin qu'une ligne particulière dans /etc/fstab
soit toujours montée après deux autres lignes:
# 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
Le comportement actuel consiste souvent à inverser l'ordre des deux dernières lignes de manière imprévisible. Comment puis-je spécifier la commande nécessaire?
Une option consiste à reporter le montage après la fin de /etc/fstab
, ce qui vous donne un contrôle total sur la commande de montage.
Ajoutez simplement noauto
aux options de montage dans fstab, puis montez-le dans rc.local
.
Selon la page de manuel , mount -a
monte les entrées dans fstab
séquentiellement, tandis que l’ajout de l’option -F
('fork') les montera en parallèle. Il semble que le démarrage standard utilise "fork", sans doute pour réduire le temps de démarrage. Je suppose donc que le montage (semi-) manuel après est le moyen le plus simple de reprendre le contrôle de la commande de montage.
Ubuntu utilise mountall
au démarrage, pas mount -a
. Mountall attend que les périphériques sous-jacents apparaissent et y monte immédiatement le fs, à moins que le fs sous lequel il est monté ne soit pas encore monté, il attend alors que fs.
Vous devriez pouvoir obtenir l'ordre que vous voulez en définissant les points de montage des 3 systèmes de fichiers afin qu'ils soient empilés les uns sur les autres. Au lieu de monter tous les trois dans /home/.something, placez le premier dans /home/.x, le second dans /home/.x/.y et le troisième dans /home/.x/.y/ .z.
Je pourrais envisager de créer un script qui monte les deuxièmes disques après l'appel du script de montage. Dans Ubuntu, initd est le service qui lance tous les composants de votre système d'exploitation, il s'appelle pstart .
Il est basé sur les événements, ce qui signifie qu'il regarde/attend et émet des événements pendant le processus de démarrage. En tant que cet article a souligné le service initd essaie de faire les choses en parallèle, ce qui est probablement la cause de vos problèmes. Vous pouvez donc configurer votre script pour qu'il s'exécute juste après que le montage soit terminé et terminé.
Les scripts de montage sont conservés dans le répertoire/etc/init /. J'y ajouterais également votre script de montage supplémentaire. Regardez ceci description du processus de démarrage. Ce site vous aidera probablement à lire le plus rapidement possible votre propre script.
Vous devez avoir une section démarrer dans votre propre script. Voir cette section pour commencer un travail après qu'un autre soit fini.
Je cherche toujours comment créer moi-même mes propres scripts de démarrage, je ne peux donc pas être plus utile. Si vous trouvez une solution qui fonctionne, merci de la poster ici.
Systemd a maintenant inclus une option de dépendance qui applique la commande de montage. Dans votre cas, ajoutez les arguments fstab:
x-systemd.requires-mounts-for=/,x-systemd.requires-mounts-for=/home/.hdd
L'option noauto ne fonctionnera pas si vous devez monter sur d'autres systèmes de fichiers montés. Dans mon cas, ce qui précède a fonctionné, voir commit https://github.com/systemd/systemd/commit/3519d230c8bafe834b2dac26ace49fcfba13982 pour plus de détails.
Selon man fstab
, l'option showthrough
pourrait être ce que vous cherchez. Essayez de le configurer sur/home/ak et de voir si cela fonctionne.
Il est possible que mount
forks lors du montage de systèmes de fichiers au démarrage; dans ce cas, l'ordre dans lequel vos partitions sont montées serait indéfini.