Mounten Sie automatisch einen Remote-Ordner beim Booten

1

Ich versuche, beim Start einen Windows-Ordner auf meinem Ubuntu-Rechner zu mounten. Ich habe versucht, dieser Seite hier zu folgen , / etc / fstab sshfs#my_user@remote_host:/path/to/directory <local_mount_point> fuse user 0 0zu ändern und an sie anzuhängen , aber es schlägt fehl. Beim Start wird eine Fehlermeldung angezeigt, dass die Bereitstellung fehlgeschlagen ist, und ich kann S drücken, um zu überspringen, oder M, um manuell wiederherzustellen.

Ich habe versucht , diese Seite auch folgende hier , Anhängen /usr/bin/sshfs -o idmap=user my_user@remote_host:/path/to/directory <local_mount_point>an die /etc/rc.local-Datei, aber dies nicht hilft entweder; Ubuntu bootet einfach normal ohne zu mounten.

Ich habe Cygwin auf meinem Windows-Computer installiert und kann alles reibungslos ausführen, z. B. sshing ohne Kennwörter und manuelles Mounten. Ich habe auch versucht, die geänderte rc.local-Datei auszuführen $ /etc/rc.local, und sie funktioniert einwandfrei, aber ich kann den Ordner beim Start scheinbar nicht mounten.

Kann mir jemand helfen?

BEARBEITEN: Mit "Remote" meinte ich, dass der Ordner, den ich von meinem Windows-Computer aus laden möchte (der eine öffentliche IP-Adresse hat), sich nicht im selben Netzwerk befindet. Ich benutze sshfs, nicht nfs.

Andrew
quelle
Könnten Sie bitte überprüfen, ob die Lösung, die auf meinem Arch-System funktioniert und die ich gerade zu meiner ursprünglichen Antwort als Bearbeitung hinzugefügt habe, auch für Sie funktioniert?
MariusMatutiae

Antworten:

0

Auf meinem Ubuntu-Rechner habe ich meine / etc / fstab durch Hinzufügen der folgenden Zeile geändert:

 //192.168.xx.yy/Public /mnt/PUBNAS nfs rw,_netdev,credentials=/home/myname/.smbcredentials 0 0

Die Datei .smbcredentials ist sehr einfach,

 username=myusername                                                                            
 password=mypassword

Bearbeiten:

Nachdem ich festgestellt habe, dass Sie sshfs verwenden, habe ich den von der Wiki-Seite von Arch Linux vorgeschlagenen Eintrag / etc / fstab getestet . Für mich hat dieser Eintrag funktioniert:

USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY  /LOCAL/MOUNTPOINT  fuse.sshfs  defaults,_netdev  0  0

Es ist wichtig, dass Sie kennwortlosen Zugriff auf den Server haben ( dh mit kryptografischem Schlüssel). Ich hoffe, das gleicht meinen anfänglichen Fehler aus.

Bearbeiten 2:

Wenn Sie möchten, dass der Remote-Ordner von Ihnen bereitgestellt wird, nicht von root, was zugegebenermaßen ein Ärgernis ist, müssen Sie die Zeile / etc / fstab folgendermaßen ändern:

 USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY  /LOCAL/MOUNTPOINT  fuse.sshfs _netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID_N,gid=USER_GID_N 0 0
MariusMatutiae
quelle
Er benutzt sshfs, nicht nfs. Relevant ist eben _netdev.
Woche
Absolut :) Wissen Sie, ob diese Option "_netdev" später von einem Dienst verwendet wird, um diesen Pfad tatsächlich bereitzustellen, nachdem das Netzwerk eingerichtet wurde?
Woche
Ist das für mich immer noch relevant, da ich sshfs verwende, nicht nfs? Außerdem ist mein Windows-Computer remote; Es befindet sich nicht in demselben Netzwerk.
Andrew
Ich habe meine / etc / fstab so geändert sshfs#my_user@remote_host:/path/to/directory <local_mount_point> fuse user,_netdev 0 0, dass sie jetzt die folgende Zeile enthält:, aber es funktioniert nicht. Ich möchte jedoch hervorheben, dass es funktioniert, wenn ich die grafische Methode verwende und auf das Mount-Symbol in meinem linken Bereich klicke. Ich kann jetzt über das Terminal darauf zugreifen. Vor der Verwendung der grafischen Methode konnte ich jedoch nicht über das Terminal zugreifen.
Andrew
Gibt es auch eine Möglichkeit, die Option sshfs -o idmap=userin die /etc/fstabDatei aufzunehmen? Wenn ich Dateien von lokal in den bereitgestellten Ordner verschiebe, erhalte ich die mv: failed to preserve ownershipNachricht.
Andrew
0

Ich habe mir Ihr Szenario hier genauer angesehen und frage mich, ob Sie das Ausführungsbit der ursprünglich erstellten Datei /etc/rc.local hinzugefügt haben (am Ende des Artikels von howtoforge.com, dem Sie gefolgt sind).

chmod +x /etc/rc.local

Jetzt neu starten.

jredd
quelle
Es scheint, dass die Datei bereits ausführbar ist. $ ls -l /etc/rc.local -rwxr-xr-x 1 root root 497 Oct 29 18:07 /etc/rc.local andrew@Andrew-Ubuntu:~$ sudo chmod +x /etc/rc.local andrew@Andrew-Ubuntu:~$ ls -l /etc/rc.local -rwxr-xr-x 1 root root 497 Oct 29 18:07 /etc/rc.local Als ich Ihren Befehl verwendet habe, hat sich nichts geändert. Ich werde jetzt trotzdem versuchen, einen Neustart durchzuführen und herauszufinden, ob dies hilft.
Andrew
Es hilft nicht.
Andrew
0

Können Sie überprüfen, ob rc.local beim Booten ausgeführt wird? Gib etwas hinein:

Echo 'Test' >> /tmp/my.log

Überprüfen Sie als Nächstes, ob eine Fehlerausgabe vorliegt, und hängen Sie sie an den Befehl mount an:

&> /tmp/my.log

Wenn Sie die Datei manuell ausführen, wird sie möglicherweise als ein anderer Benutzer ausgeführt als der Kernel. In diesem Fall wird eine Nachricht in STDERR geschrieben, die normalerweise in / var / log / messages angezeigt wird, es sei denn, Sie leiten sie an eine andere Stelle mit der oben an den Befehl angehängten Syntax um.

JoshRibs
quelle
Ich habe getan, was Sie vorgeschlagen haben, und nach dem Neustart wird die Datei /tmp/my.logerstellt, aber sie ist leer. testist nicht in der Datei und ls -l /tmp/my.loggibt mir -rw-r--r-- 1 root root 0 Oct 31 09:31 /tmp/my.log. Ich habe auch keine Datei benannt /var/log/messages.
Andrew
Der Benutzer, unter dem er ausgeführt wird, hat möglicherweise keinen Zugriff auf / tmp /. Können Sie einen Ordner chmod 777, eine darin enthaltene Datei berühren, diese 777 chmod und versuchen, sich dort in eine Datei einzuloggen?
JoshRibs
Ja, rc.local wird beim Booten ausgeführt. Jedenfalls habe ich das Problem gelöst. Vielen Dank!
Andrew