Ich brauche eine bestimmte Zeile /etc/fstab
, um immer nach zwei anderen Zeilen gemountet zu werden:
# 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
Das derzeitige Verhalten besteht darin, die Reihenfolge der letzten beiden Zeilen auf unvorhersehbare Weise umzukehren. Wie kann ich die erforderliche Reihenfolge festlegen?
noauto
und mounten Sie inrc.local
?Antworten:
Eine Möglichkeit besteht darin, die Bereitstellung zu verschieben, bis
/etc/fstab
sie abgeschlossen ist. Auf diese Weise haben Sie die volle Kontrolle über die Reihenfolge der Bereitstellung.Fügen Sie einfach
noauto
die Mount-Optionen in fstab hinzu und mounten Sie inrc.local
.Laut Manpage werden
mount -a
die Einträgefstab
nacheinander eingehängt, während sie durch Hinzufügen der-F
Option ('fork') parallel eingehängt werden. Es scheint, dass der Standard-Boot 'fork' verwendet, vermutlich um die Boot-Zeit zu verkürzen. Ich denke also, dass das (halb-) manuelle anschließende Montieren der einfachste Weg ist, die Kontrolle über die Mount-Reihenfolge zurückzugewinnen.quelle
Ich könnte überlegen, ein Skript einzurichten , mit dem die zweiten Datenträger nach dem Aufruf des Mount-Skripts gemountet werden. In Ubuntu ist initd der Dienst, der alle Komponenten Ihres Betriebssystems startet, und er heißt upstart .
Es ist ereignisbasiert, was bedeutet, dass es während des Startvorgangs nach Ereignissen sucht / wartet und diese ausgibt. Wie in diesem Beitrag hervorgehoben , versucht der initd-Dienst, Dinge parallel zu machen, was wahrscheinlich Ihre Probleme verursacht. Sie können Ihr Skript also so einstellen, dass es sofort ausgeführt wird, nachdem der Ladevorgang abgeschlossen wurde.
Die Mount-Skripte werden im Verzeichnis / etc / init / gespeichert. Ich würde dort auch Ihr zusätzliches Mount-Skript hinzufügen. Schauen Sie sich diese Beschreibung des Startvorgangs an. Diese Seite wird Ihnen wahrscheinlich dabei helfen, am schnellsten mit Ihrem eigenen Skript fertig zu werden.
Sie müssen einen Anfang für einen Abschnitt in Ihrem eigenen Skript haben. In diesem Abschnitt erfahren Sie, wie Sie einen Job starten, nachdem ein anderer beendet wurde.
Ich bin immer noch dabei, wie ich meine eigenen Start-up-Skripte selbst erstellen kann, daher kann ich nicht hilfreicher sein. Wenn Sie eine funktionierende Lösung finden, senden Sie diese bitte hier zurück.
quelle
Ubuntu nutzt
mountall
beim Booten nichtmount -a
. Mountall wartet darauf, dass die zugrunde liegenden Geräte angezeigt werden, und hängt dann die fs sofort auf ihnen ein, es sei denn, die fs, unter der es gemountet wird, wurde noch nicht gemountet. Dann wartet es auf diese fs.Sie sollten in der Lage sein, die gewünschte Reihenfolge zu erhalten, indem Sie die Einhängepunkte der 3 Dateisysteme so einstellen, dass sie untereinander gestapelt sind. Anstatt alle drei in /home/.something zu mounten, platzieren Sie den ersten in /home/.x und den zweiten in /home/.x/.y und den dritten in /home/.x/.y/ .z.
quelle
Systemd hat jetzt eine Abhängigkeitsoption hinzugefügt, die die Reihenfolge der Ladevorgänge erzwingt. In deinem Fall füge die fstab Argumente hinzu:
Die noauto-Option funktioniert nicht, wenn Sie über andere bereitgestellte Dateisysteme bereitstellen müssen. In meinem Fall hat das oben beschriebene Verfahren funktioniert. Weitere Informationen finden Sie unter commit https://github.com/systemd/systemd/commit/3519d230c8bafe834b2dac26ace49fcfba139823 .
quelle
Entsprechend könnte
man fstab
dieshowthrough
Option das sein, wonach Sie suchen. Setzen Sie es auf / home / ak und prüfen Sie, ob es funktioniert.Es ist möglich dass
mount
beim Mounten von Dateisystemen während des Bootvorgangs eine Verzweigung auftritt. In diesem Fall ist die Reihenfolge, in der Ihre Partitionen bereitgestellt werden, nicht definiert.quelle
showthrough
habe das problem nicht gelöst.