Verhindern der Freigabe nicht bereitgestellter Laufwerke

Verhindern der Freigabe nicht bereitgestellter Laufwerke

Ich habe einen Dateiserver eingerichtet, um ein externes Laufwerk über Samba und Netatalk (AFP) freizugeben. Ich habe einen fstab-Eintrag, um das Laufwerk automatisch unter zu mounten /mnt/external, das dann automatisch von den verschiedenen Daemons freigegeben wird.

Das Problem ist, wenn das Laufwerk nicht richtig gemountet wird (z. B. wenn ich vergessen habe, es einzuschalten, oder wenn ich es an dem Tag mit zur Arbeit genommen habe). In diesem Fall wird der Mountpoint freigegeben, ohne dass das entsprechende Laufwerk angeschlossen ist, was dazu führt, dass verschiedene Metadateien an meinen Mountpoint geschrieben werden, anstatt dass ein sauberer Fehler auftritt. Dies verhindert, dass das Laufwerk beim nächsten Anschließen richtig gemountet wird (nicht leeres Verzeichnis) und könnte zu Datenverlust führen, wenn jemand in der Zwischenzeit die Freigabe verwendet hat.

Gibt es eine Möglichkeit, einen Ausfall der Freigaben zu verursachen, wenn das Laufwerk ausgehängt wird?

Antwort1

Sie können die ursprünglichen Mount-Ordnerattribute wie folgt festlegen immutable:

chattr +i /mnt/external

Der Ordner ist nun gesperrt und jegliche Aktionen daran sind verboten (Sie können ihn mit entsperren -i). Es funktionieren jedoch mountweiterhin fstabordnungsgemäß.


Stellen Sie sicher, dass das Laufwerk nicht gemountet ist, bevor Sie ausführen chattr. Wenn Sie den Fehler erhalten "Inappropriate ioctl for device While reading flags", arbeiten Sie möglicherweise mit einem Dateisystem, das keine Ordnerattribute unterstützt. Tatsächlich mounten einige Linux-Distributionen die Hauptpartition mit overlayfsdem Dateisystem statt mit ext. Sie müssen es also manuell woanders mounten, um chattrmit Ordnern arbeiten zu können (also mount /dev/mmcblk0p3 /mnt/tempdann mit chattr +i /mnt/temp/root/mnt/external).

verwandte Informationen