(Ich verwende openSUSE 13.2)
Mein aktuelles Setup
Ich habe ein externes Backup-Laufwerk, das ich beim Booten mit der folgenden Zeile mounte /etc/fstab
:
/dev/mapper/cr_backup /backup ext4 comment=systemd.automount,nofail 0 2
Ich habe diese nofail
Option gewählt, weil das Backup-Laufwerk manchmal nicht vorhanden ist und ich in diesem Fall nicht möchte, dass der Bootvorgang hängen bleibt.
Das Problem
Wenn das Backup-Laufwerk nicht vorhanden ist, ls
gerät die Ausführung in meinem Stammverzeichnis in eine Endlosschleife, die ich mit Strg+C abbrechen muss. Die Fehlermeldung lautet:
ls: cannot access /backup: Interrupted system call
Dies scheint ls
fehlzuschlagen, da versucht wird, auf das Sicherungslaufwerk zuzugreifen, dies jedoch nicht möglich ist.
Eine Lösung wäre, das Backup-Laufwerk /backup/backup
so zu verschachteln, dass ls /
es nicht stolpert. Das kommt mir jedoch wie ein schmutziger Hack vor und ich frage mich, ob es eine elegantere Lösung gibt (ich möchte gern mehr darüber erfahren, wie das System funktioniert!).
Meiner (begrenzten) Erfahrung nach mount
ist der Einhängepunkt ein leeres Verzeichnis, wenn ein Gerät nicht eingehängt ist. Kann ich hier etwas Ähnliches erreichen? Ich müsste jedoch vorsichtig sein, da ich automatische stündliche Backups geplant habe, die derzeit nicht ausgeführt werden, wenn das Gerät nicht eingehängt ist. Ich möchte auf keinen Fall, dass das Backup einfach alles in das leere Verzeichnis schreibt, wenn es das Backup-Laufwerk nicht eingehängt hat!
Antwort1
Meiner Meinung nach ist es keine gute Praxis, beim Start zu versuchen, ein Backup-Dateisystem zu mounten, denn wenn etwas schief geht (rm -rf / [enter] ops), werden die Daten im Backup wahrscheinlich zusammen gelöscht.
Wenn Sie hierfür also ein Skript verwenden, mounten Sie es innerhalb des Skripts oder innerhalb von Cron und führen Sie nach Abschluss ein Umount durch.
Damit bleibt Ihr Start nicht mehr hängen und das Dateisystem funktioniert.
Eine andere Lösung besteht darin, es aus fstab zu entfernen und als Mount-Befehl mit dem Zeichen „&“ in rc.local einzufügen, um es im Hintergrund auszuführen:
mount /dev/mapper/cr_backup /backup -t ext4&
Für Wechseldatenträger steht Ihnen ebenfalls die Autofs-Lösung zur Verfügung: https://linuxconfig.org/automatically-mount-usb-external-drive-with-autofs
Antwort2
Ich weiß, dass Sie SUSE verwenden, aber diese Aussage aus dem Ubuntu-fstab-Wiki (https://help.ubuntu.com/community/Fstab) kann Ihnen den richtigen Weg weisen:
Wechseldatenträger wie Flash-Laufwerkedürfenmüssen zu fstab hinzugefügt werden, werden aber normalerweise vom Gnome-Volume-Manager gemountet und liegen außerhalb des Rahmens dieses Dokuments.
UPDATE: Das könnte interessant seinhttp://www.novell.com/coolsolutions/tip/17785.html, ein älterer Artikel über SUSE.