เมานต์รีโมตโฟลเดอร์โดยอัตโนมัติเมื่อบูต


1

ฉันกำลังพยายามเมานต์โฟลเดอร์ Windows บนเครื่อง Ubuntu ของฉันเมื่อเริ่มต้น ฉันได้ลองติดตามหน้านี้แล้ว ที่นี่ แก้ไข / etc / fstab และผนวก sshfs#my_user@remote_host:/path/to/directory <local_mount_point> fuse user 0 0 ถึงมัน แต่มันล้มเหลว; เมื่อเริ่มต้นฉันพบข้อผิดพลาดว่าการติดตั้งล้มเหลวและฉันสามารถกด S เพื่อข้ามหรือ M เพื่อกู้คืนด้วยตนเอง

ฉันยังลองติดตามหน้านี้ ที่นี่ กำลังต่อท้าย /usr/bin/sshfs -o idmap=user my_user@remote_host:/path/to/directory <local_mount_point> ไปยังไฟล์ /etc/rc.local แต่สิ่งนี้ไม่ได้ช่วยอะไรเช่นกัน Ubuntu เพิ่งบู๊ตตามปกติโดยไม่ต้องติดตั้ง

ฉันได้ติดตั้ง Cygwin บนเครื่อง Windows ของฉันแล้วและฉันสามารถเรียกใช้ทุกอย่างได้อย่างราบรื่นเช่น sshing ที่ไม่มีรหัสผ่านและทำการติดตั้งด้วยตนเอง ฉันยังพยายามเรียกใช้ไฟล์ rc.local ที่แก้ไขแล้ว $ /etc/rc.localและมันทำงานได้อย่างสมบูรณ์แบบ แต่ฉันก็ไม่สามารถที่จะติดตั้งโฟลเดอร์เมื่อเริ่มต้น

มีคนช่วยฉันได้ไหม

แก้ไข: จากระยะไกลฉันหมายถึงโฟลเดอร์ที่ฉันพยายามติดตั้งจากเครื่อง Windows ของฉัน (ซึ่งมี IP สาธารณะ) ไม่ได้อยู่ในเครือข่ายเดียวกัน ฉันกำลังใช้ sshfs ไม่ใช่ nfs


คุณช่วยกรุณาตรวจสอบว่าโซลูชันที่ใช้กับระบบ Arch ของฉันซึ่งฉันเพิ่งเพิ่มไปยังคำตอบเริ่มต้นของฉันเป็นการแก้ไขได้หรือไม่
MariusMatutiae

คำตอบ:


0

บนเครื่อง Ubuntu ของฉันฉันแก้ไข / etc / fstab โดยเพิ่มบรรทัดนี้:

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

ไฟล์. smbcredentials นั้นง่ายมาก

 username=myusername                                                                            
 password=mypassword

แก้ไข:

หลังจากทราบว่าคุณใช้ sshfs ฉันได้ทดสอบรายการ / etc / fstab ที่แนะนำโดย หน้า Arch Linux wiki . สำหรับฉันรายการนี้ใช้งานได้:

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

เป็นสิ่งสำคัญที่คุณต้องมีรหัสผ่านเพื่อเข้าถึงเซิร์ฟเวอร์ ( นั่นคือ , ด้วยรหัสการเข้ารหัส) ฉันหวังว่าสิ่งนี้ทำขึ้นสำหรับความผิดพลาดครั้งแรกของฉัน

แก้ไข 2:

หากคุณต้องการให้โฟลเดอร์ระยะไกลถูกติดตั้งโดยคุณไม่ใช่โดย root ซึ่งเป็นสิ่งที่สร้างความรำคาญคุณจะต้องเปลี่ยนบรรทัด / etc / fstab เป็น:

 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

เขาใช้ sshfs ไม่ใช่ nfs ที่เกี่ยวข้องเป็นเพียง _netdev.
week

อย่างแน่นอน :) คุณรู้หรือไม่ว่าตัวเลือก "_netdev" ถูกใช้โดยบริการบางอย่างในภายหลังเพื่อติดตั้งเส้นทางนั้นจริงหลังจากสร้างเครือข่ายหรือไม่
week

สิ่งนี้ยังเกี่ยวข้องกับฉันหรือไม่ขณะที่ฉันใช้ sshfs ไม่ใช่ nfs หรือไม่ นอกจากนี้เครื่อง Windows ของฉันยังอยู่ในระยะไกล มันไม่ได้อยู่ในเครือข่ายเดียวกัน
Andrew

ฉันแก้ไข / etc / fstab เพื่อรวมบรรทัดเช่นนี้ตอนนี้: sshfs#my_user@remote_host:/path/to/directory <local_mount_point> fuse user,_netdev 0 0แต่มันใช้งานไม่ได้ ฉันต้องการไฮไลต์ว่าถ้าฉันใช้วิธีกราฟิกและคลิกไอคอนเมานต์ที่แผงด้านซ้ายของฉันมันก็ใช้ได้ ตอนนี้ฉันสามารถเข้าถึงผ่านเทอร์มินัล อย่างไรก็ตามก่อนที่จะใช้วิธีกราฟิกฉันไม่สามารถเข้าถึงผ่านเทอร์มินัล
Andrew

นอกจากนี้ยังมีวิธีการรวมตัวเลือก sshfs -o idmap=user ใน /etc/fstab ไฟล์? เมื่อฉันย้ายไฟล์จากเครื่องไปยังโฟลเดอร์ที่ติดตั้งฉันจะได้รับ mv: failed to preserve ownership ข่าวสาร
Andrew

0

ฉันดูสถานการณ์ของคุณที่นี่จริง ๆ และฉันสงสัยว่าคุณแน่ใจหรือไม่ว่าจะเพิ่มบิตรันลงในไฟล์ /etc/rc.local ที่คุณสร้างขึ้น แต่เดิม (ในตอนท้ายของบทความ howtoforge.com ที่คุณติดตาม)

chmod +x /etc/rc.local

รีบูตตอนนี้


ดูเหมือนว่าไฟล์นั้นจะสามารถเรียกใช้งานได้แล้ว $ 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 ไม่มีอะไรเปลี่ยนแปลงเมื่อฉันใช้คำสั่งของคุณ แต่ฉันจะลองและรีบูตตอนนี้และดูว่ามันช่วยได้หรือไม่
Andrew

มันไม่ได้ช่วยอะไร
Andrew

0

คุณสามารถตรวจสอบว่า rc.local กำลังถูกดำเนินการตอนบูตได้หรือไม่? ใส่อะไรลงไป:

echo 'ทดสอบ' & gt; & gt; /tmp/my.log

ถัดไปดูว่ามีข้อผิดพลาดเอาต์พุตหรือไม่ผนวกกับคำสั่ง mount ของคุณ:

& amp; & gt; /tmp/my.log

บางทีเมื่อคุณเรียกใช้ไฟล์ด้วยตนเองคุณกำลังเรียกใช้ในฐานะผู้ใช้อื่นที่ไม่ใช่เคอร์เนลที่กำลังใช้งานอยู่ ในกรณีนั้นข้อความจะถูกเขียนไปยัง STDERR ซึ่งโดยทั่วไปคุณจะเห็นใน / var / log / ข้อความเว้นแต่ว่าคุณเปลี่ยนเส้นทางไปที่อื่นด้วยไวยากรณ์ข้างต้นผนวกเข้ากับคำสั่ง


ฉันทำสิ่งที่คุณแนะนำและหลังจากรีบูตไฟล์ /tmp/my.log ถูกสร้าง แต่ว่างเปล่า test ไม่ได้อยู่ในไฟล์และ ls -l /tmp/my.log ให้ฉัน -rw-r--r-- 1 root root 0 Oct 31 09:31 /tmp/my.log. ฉันยังไม่มีชื่อไฟล์ /var/log/messages.
Andrew

ผู้ใช้ที่กำลังทำงานอยู่ซึ่งอาจไม่สามารถเข้าถึง / tmp /, คุณสามารถ chmod 777 โฟลเดอร์, แตะไฟล์ในนั้น, chmod ที่ 777 และลองเข้าสู่ไฟล์ที่นั่นหรือไม่?
JoshRibs

ใช่ rc.local จะถูกเรียกใช้ตอนบูต อย่างไรก็ตามฉันได้แก้ไขปัญหาแล้ว ขอบคุณ!
Andrew
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.