Comment puis-je spécifier l'ordre dans lequel les systèmes de fichiers sont montés automatiquement?

14

J'ai besoin qu'une ligne particulière /etc/fstabsoit montée toujours 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 à inverser souvent l'ordre des deux dernières lignes de manière imprévisible. Comment spécifier la commande nécessaire?

ændrük
la source
4
Solution possible (non testée): configurer le dernier en tant que noautoet monter dans rc.local?
jg-faustus
@ jg-faustus Merci, la solution de contournement semble avoir réussi.
ændrük
@ jg-faustus Cette prime se termine bientôt et votre solution de contournement est la chose la plus proche d'une réponse. Si vous le postez ci-dessous, je vous donnerai le +50.
ændrük

Réponses:

17

Une option consiste à reporter le montage jusqu'à la /etc/fstabfin, ce qui vous donne un contrôle total sur l'ordre de montage.

Ajoutez simplement noautoles options de montage dans fstab et montez dans rc.local.

Selon la page de manuel , mount -amonte les entrées de fstabmanière séquentielle, tandis que l'ajout de l' -Foption ('fork') les montera en parallèle. Il semble que le démarrage standard utilise 'fork', probablement pour réduire le temps de démarrage, donc je suppose que le montage (semi) manuel après coup est le moyen le plus simple de reprendre le contrôle de l'ordre de montage.

jg-faustus
la source
4

Je pourrais envisager de configurer un script qui monte les seconds disques après l'appel du script de montage. Dans Ubuntu initd est le service qui démarre tous les composants de votre système d'exploitation, et il est appelé upstart .

Il est basé sur des événements, ce qui signifie qu'il regarde / attend et émet des événements pendant le processus de démarrage. Comme ce post l'a souligné , le service initd essaie de faire les choses en parallèle, ce qui est probablement à l'origine de vos problèmes. Vous pouvez donc configurer votre script pour qu'il s'exécute directement après la fin du montage et l'achèvement de son traitement.

Les scripts de montage sont conservés dans le répertoire / etc / init /. J'ajouterais également votre script de montage supplémentaire. Regardez cette description du processus de démarrage. Ce site vous aidera probablement à vous familiariser avec votre propre script le plus rapidement.

Vous devez avoir une section de démarrage dans votre propre script. Reportez-vous à cette section pour démarrer un travail après la fin d'un autre.

Je cherche toujours à créer mes propres scripts de démarrage moi-même, donc je ne peux pas être plus utile. Si vous trouvez une solution de travail, veuillez la poster ici.

nelaaro
la source
4

Ubuntu utilise mountallau démarrage, non mount -a. Mountall attend que les périphériques sous-jacents apparaissent, puis monte le fs sur eux immédiatement, à moins que le fs sous lequel il est monté n'a pas encore été monté, puis il attend que fs.

Vous devriez pouvoir obtenir l'ordre que vous souhaitez en définissant les points de montage des 3 systèmes de fichiers afin qu'ils soient empilés les uns sous les autres. Au lieu de monter les trois dans /home/.quelque chose, placez le premier dans /home/.x, le second dans /home/.x/.y et le troisième dans /home/.x/.y/ .z.

psusi
la source
3

Systemd a maintenant inclus une option de dépendance qui applique l'ordre 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 a fonctionné ci-dessus, voir commit https://github.com/systemd/systemd/commit/3519d230c8bafe834b2dac26ace49fcfba139823 pour plus de détails.

techimperial
la source
1

Selon man fstab, l' showthroughoption pourrait être celle que vous recherchez. Essayez de le régler sur / home / ak et voyez si cela fonctionne.

Il est possible que les mountfourches lors du montage des systèmes de fichiers lors du démarrage; si c'est le cas, l'ordre dans lequel vos partitions sont montées ne serait pas défini.

Scott Severance
la source
1
showthroughn'a pas résolu le problème.
ændrük