
Ich habe hier ein Notebook und Netzwerkfreigaben. Normalerweise würde ich sie beim Booten mounten wollen, aber das wäre auf einem Notebook, das nicht immer mit dem richtigen Netzwerk verbunden ist, nicht so gut. Also habe ich ein „noauto“ in die fstab eingefügt.
<IP>:/share /share nfs noauto,defaults 0 0
Aber wenn ich mit dem richtigen Netzwerk verbunden bin, möchte ich die Freigabe nicht immer manuell mounten müssen. Gibt es eine Möglichkeit, sie mounten zu lassen, wenn ich auf den Ordner klicke, wie bei einem USB-Laufwerk? Oder irgendwelche anderen Ideen, wie man sie mounten lassen kann, wenn das Notebook im richtigen Netzwerk ist?
Hoffe, Sie können weiterhelfen.
Antwort1
Sie können die nofail
Option hinzufügen und entfernen no-auto
. Dadurch wird die automatische Bereitstellung beim Booten hinzugefügt, wenn Sie verbunden sind, es treten jedoch keine Probleme auf, wenn die Bereitstellung fehlschlägt.
Der einfachste nächste Schritt wäre dann, einfach „
mount <mount-point directory>
Wenn Sie mit dem Netzwerk verbunden, aber nicht gemountet sind“ aufzurufen. Wenn dies zu aufwändig ist, können Sie dies in ein kurzes Skript packen oder diesem Befehl einen Bash-Alias zuweisen.
Eine raffiniertere, stärker automatisierte Alternative wäre, bei jeder Verbindung ein Skript auszuführen. Sie könnten einen Cron-Job ausführen, der alle x Zeiträume ein Skript ausführt:
#!/bin/bash
if [[ $(cat /sys/class/net/<device 1>/carrier) == 1 ]] && [[ -z $(grep -s '<mount-point directory> ' /proc/mounts) ]]; then
mount <mount-point directory>
fi
Dadurch wird überprüft, ob eine Verbindung besteht, und die Verbindung wird gemountet, falls dies nicht bereits der Fall ist.
Antwort2
Ich verwende derzeit folgenden Ansatz:
- Erstellen Sie eine Desktop-Eintragsdatei.
- Wenn Sie Ihre Netzwerkfreigabe benötigen, doppelklicken Sie einfach auf ein Symbol auf dem Desktop, anstatt sie manuell über das Terminal zu mounten.
- Geben Sie Ihr Passwort ein. Dies ist nur einmal pro Anmeldesitzung erforderlich.
- Sehen Sie sich Ihre Netzwerkfreigabe in einem Dateimanager an.
Nun die Desktop-Eintragdatei ( ~/Desktop/nas.desktop
):
[Desktop Entry]
Name=nas
Exec=sh -c "findmnt /mnt/nas || pkexec mount 192.168.1.15:/ /mnt/nas && nemo /mnt/nas"
Comment=Mount and open NAS shared dir
Terminal=false
Icon=folder-remote
Type=Application
sh -c ...
ist hier lediglich ein Wrapper für mehrere Befehle, der sie zu einem einzigen macht, da Desktopeinträge nicht immer mit mehreren Befehlen funktionieren.
findmnt ...
prüft, ob ein Einhängepunkt gemountet ist oder nicht. Wenn dies bereits der Fall ist, wird der nächste Befehl übersprungen.
pkexec ...
führt den mount
Befehl als Superuser aus und fragt Sie auf „GUI-Weise“ nach einem Kennwort, wie sudo
im Terminal.
nemo
ist ein Dateimanager (ich verwende Linux Mint).
Zu den Nachteilen dieser Methode gehört, dass Sie zu Ihrem Desktop gehen müssen (Strg+D) und ein neues Dateimanagerfenster statt nur einer neuen Registerkarte in der bereits geöffneten geöffneten erhalten. Außerdem müssen Sie Ihr Passwort noch eingeben. Deshalb suche ich derzeit nach einer besseren Lösung. Wenn ich sie finde, werde ich sie hier posten.