เกิดข้อผิดพลาดในการติดตั้งโฟลเดอร์ที่ใช้ร่วมกัน VirtualBox ในแขกของ Ubuntu


77

ฉันมี Ubuntu 10 ในฐานะแขกของระบบปฏิบัติการบนเครื่อง Windows 7 ฉันพยายามติดตั้งการแชร์ผ่าน VirtualBox แต่ไม่มีอะไรทำงาน ก่อนอื่นฉันจะสร้างการแชร์ใน VirtualBox และชี้ไปที่โฟลเดอร์ Windows จากนั้นฉันพยายามติดตั้งไดรฟ์ใน Linux แต่ฉันยังคงได้รับ

/sbin/mount.vboxsf: การติดตั้งล้มเหลวด้วยข้อผิดพลาด: ข้อผิดพลาดของโปรโตคอล

ฉันได้อ่านคำตอบมากมายเกี่ยวกับเรื่องนี้แล้ว แต่ดูเหมือนไม่มีใครทำงาน ฉันเหนื่อย:

  • การใช้ไวยากรณ์ mount.vboxsf
  • การติดตั้งการเพิ่ม VBox อีกครั้ง
  • รีบูต
  • การเปิดใช้งานและพยายามเป็นบัญชีรูท

ฉันทำการแชร์ที่เรียกว่า "ทดสอบ" ในโฟลเดอร์แชร์ของ VBox จากนั้นฉันสร้างไดเรกทอรีในอูบุนตูชื่อ "test2" จากนั้นฉันพยายามเรียกใช้คำสั่งนี้:

sudo mount -t vboxsf ทดสอบ / mnt / test2

ความคิดอื่น ๆ ?

คำตอบ:


90

เพื่อที่จะใช้ฟังก์ชันการทำงานของโฟลเดอร์ที่ใช้ร่วมกันจำเป็นต้องมีข้อกำหนดเบื้องต้นบางประการที่จะต้องมี:

  • ตรวจสอบให้แน่ใจว่าได้ติดตั้งGuest Additionsอย่างเหมาะสมบน guest OS
  • ผู้ใช้ในแขก Ubuntu ต้องอยู่ในกลุ่มvboxsfเพื่อให้สามารถเข้าถึงการแชร์ได้
  • กำหนดไดเรกทอรีบนโฮสต์ที่จะใช้ในเครื่องเสมือนโดยใช้กล่องโต้ตอบการตั้งค่าของกล่องเสมือน

อาจจำเป็นต้องใช้สิ่งต่อไปนี้ขึ้นอยู่กับโฮสต์หรือระบบปฏิบัติการแขก

  • อย่าแชร์โฟลเดอร์ส่วนบุคคลเช่น/home/usernameหรือMy Documents
  • หลีกเลี่ยงอักขระพิเศษหรือช่องว่างในพา ธ ไปยังโฟลเดอร์ที่แชร์โดยเฉพาะถ้าโฮสต์หรือ VM เป็นเครื่อง Windows
  • ใช้ชื่ออื่นสำหรับการแชร์และเมานต์
  • สร้างจุดเมานท์บน guest OS (ดีที่สุดในไดเรกทอรี HOME ของคุณ)

การทดสอบการทำงานของโฟลเดอร์ที่ใช้ร่วมกันสามารถทำได้โดยการสร้างไดเรกทอรีที่ใช้ร่วมกันบนโฮสต์ (เช่นC:\myshare) กำหนดนี้เป็นโฟลเดอร์ที่ใช้ร่วมกันในระบบของผู้เข้าพักของคุณในการตั้งค่ากล่องเสมือน (เช่นshare) สร้างจุดเชื่อมต่อในระบบปฏิบัติการของผู้เข้าพักของคุณ (เช่น mkdir /home/username/host) และภูเขา สิ่งนี้ใน guest OS ด้วยคำสั่ง:

sudo mount -t vboxsf -o uid=1000,gid=1000 share /home/username/host

ที่ตัวเลือก - o ทำให้แน่ใจว่าคุณจะสามารถเข้าถึงเมานท์ (ซึ่งจะเป็นเจ้าของโดย root)

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโฟลเดอร์ที่ใช้ร่วมดูยังคู่มือการใช้งานเสมือนกล่อง

ไฟล์หรือไดเรกทอรีสามารถแชร์ผ่านเครือข่ายโดยใช้ Samba บนโฮสต์และแขก


4
ฉันเชื่อว่าฉันปฏิบัติตามข้อกำหนดทั้งหมดนี้แล้ว แต่ยังคงได้รับข้อผิดพลาด มีวิธีที่ฉันสามารถวินิจฉัยว่าปัญหาคืออะไร?
skaz

1
ไม่ใช่ระดับสตริงตามตัวอักษร แต่ส่วนแบ่งของฉันคือ C: \ test แทน C: \ myshare มันถูกกำหนดใน VBox 4.0.4 ฉันสร้างโฟลเดอร์ใน / home / [myusername] / test2 และโฟลเดอร์ใน / mnt / test2 และเรียกใช้คำสั่งในโฟลเดอร์ทั้งสองนี้อย่างถูกต้องและทั้งสองข้อผิดพลาดกลับมาเหมือนกัน
skaz

1
ขอบคุณสำหรับความช่วยเหลือของคุณ! ฉันไม่ทราบว่าคำว่า "test" และ "Test2" จะถือว่าเป็นชื่อเดียวกัน วิธีนี้แก้ปัญหาได้!
skaz

2
สำหรับ 'share' ฉันใช้โง่ sf_ [sharename] เนื่องจากฉันเห็นว่ามันถูกเมาท์ภายใต้ / media / ด้วยชื่อนั้นและคิดว่ามันจะต้องใช้ชื่อ ubuntu-local ไม่ใช่ชื่อของ VBox อย่างไรก็ตามฉันได้ลบคำนำหน้า 'sf_' และสิ่งนี้สามารถแก้ไขปัญหาได้
Astravagrant

1
@MichaelScheper เหล่านี้เป็นคำแนะนำเท่านั้น - หากได้ผลสำหรับคุณทุกอย่างเรียบร้อยดี
Takkat

15

ฉันก็พบปัญหานี้เช่นกัน /media/sf_shareฉันพบว่าโฟลเดอร์ที่ใช้ร่วมกันถูกติดตั้งอยู่แล้วที่

ฉันพยายามลบ/media/sf_shareแต่ไม่สามารถทำได้

ดังนั้นฉันจึงลบโฟลเดอร์แชร์ "แชร์" ในโฮมไดเร็กตอรี่ของฉัน

$ rm -r ~/share

จากนั้นสลับไปที่ผู้ใช้รูทด้วยวิธีต่อไปนี้:

$ sudo -i

สร้าง softlink / ทางลัดไปยังโฟลเดอร์ / media / sf_share ที่เป็นเจ้าของโดยผู้ใช้รูทปรับเปลี่ยนความเป็นเจ้าของ softlink ด้วยคำสั่ง chown ออกจากผู้ใช้รูทไปยังผู้ใช้ปกติ

# ln -s /media/sf_share /home/username/share
# chown username.username /home/username/share
# exit
logout

$ chmod 777 ~/share

คุณสามารถดูไฟล์ใน Windows ผ่านทางโฟลเดอร์แชร์ และชื่อผู้ใช้จะต้องเป็นสมาชิกของกลุ่ม vboxsf


ขอบคุณมาก! คุณพูดถูก ... ติดตั้งใน / media / sf_sharename แล้ว
Laurent

1
ใช้ CentOS 7 media/sf_sharenameและฉันยังพบว่าไดเรกทอรีของฉันจะติดตั้งอยู่ที่ การสร้าง symlink ไปยังไดเรกทอรีนั้นน่าจะเป็นตัวเลือกที่เป็นไปได้ แต่ค่อนข้างจะแตกต่างจากขั้นตอนการโฆษณา / เอกสารบนไซต์ VirtualBox จะต้องมีการแก้ไขที่เหมาะสมกับสิ่งนี้!?!?
cartbeforehorse

11

นี่คือสิ่งที่ได้ผลสำหรับฉันโดยไม่มีปัญหาใด ๆ

ฉันคิดออกว่าจริงๆแล้วuserชื่อของฉันไม่ได้อยู่ในกลุ่มvboxsf การทำตามสองคำสั่งจะช่วยให้ได้รับข้อมูลกลุ่ม:

grep "vboxsf" /etc/group    
grep "saurav" /etc/group

ดังนั้นฉันเพิ่มsaurav(ฉัน) ไปยังกลุ่มvboxsfโดยใช้คำสั่งต่อไปนี้:

sudo usermod -a -G vboxsf saurav 

จากนั้นรีสตาร์ท VirtualBox แล้ว .. เพิ่มขึ้นจากที่วางไว้ .. : D: D ทุกอย่างทำงานได้ดีไม่มีปัญหา

โปรดแสดงความคิดเห็นหากใครยังคงมีปัญหาใด ๆ ..


2
สิ่งนี้ได้ผลสำหรับฉันขอบคุณ มีเพียงประเภทเดียวเท่านั้น: ควรเป็นsudo usermod -a -G vboxsf saurav(กลุ่มแรกจากนั้นผู้ใช้)
673592

ใช่ .. พิมพ์ไม่ถูกต้อง .. :) ขอบคุณสำหรับการชี้ให้เห็น แก้ไขแล้วตอนนี้ ..
Saurav Kumar

1
คุณไม่จำเป็นต้องรีสตาร์ท VB เพื่อรับกลุ่มที่ได้รับมอบหมายใหม่ของคุณ $ su - saurav จะทำเคล็ดลับ
สตีเฟ่นบอสตัน

2

ฉันยังต้องดิ้นรนมากกับการติดตั้งและพยายามทุกอย่างที่เกิดขึ้นใน interwebz แต่ในที่สุดฉันก็พบวิธีแก้ปัญหาแปลก ๆ เพื่อแก้ไขมัน! แขกของฉันคือ Ubuntu 13 และโฮสต์ของฉันคือ Windows 7

เปลี่ยนเป็นโฟลเดอร์มีเดียและจากประเภท user@os:/media$ sudo mount -t vboxsf share /home/username/folder

ใช่นั่นแหละ แต่ฉันไม่เข้าใจว่ามันจะทำงานได้อย่างไรถ้ามันทำจากโฟลเดอร์สื่อ หากมีคนรู้กรุณาอธิบายเราด้านล่าง ขอบคุณ

ป.ล. การแก้ไขของฉันที่/etc/rc.localจะทำการนับอัตโนมัติเมื่อเริ่มต้นไม่ได้ผล


1
/etc/rc.local จะไม่ทำงานเนื่องจากจะเสร็จสิ้นก่อนที่เครือข่ายจะหมด
Braiam

2
สวัสดี Braiam! ดีที่รู้. น่าเสียดายที่ฉันได้อ่านเว็บไซต์มากมายที่ผู้คนแนะนำให้แก้ไข /etc/rc.local สำหรับการนับอัตโนมัติ คุณรู้วิธีที่ถูกต้องในการติดตั้งอัตโนมัติเมื่อเริ่มต้นคืออะไร? ขอบคุณ
BringBackCommodore64

ฉันพบว่ามันใช้งานได้จาก / สื่อเท่านั้น ที่แปลกมาก. ฉันเพิ่งเพิ่มนี้เพื่อ .profile pushd media && sudo mount /media/<theshare> && popdฉัน:
Matt Greer

1

ด้วย VirtualBox 5.1.20 ที่ทำงานบน Windows 10 และ Ubuntu 16.04 ในฐานะแขกของระบบปฏิบัติการที่ติดตั้ง GuestAdditions 5.1.20 ฉันไม่สามารถเมานต์โฟลเดอร์แชร์จากบรรทัดคำสั่ง คำสั่ง mount ล้มเหลวโดยมีการกล่าวถึง Protocol Error และ sf_read_super_aux err = -22

ในที่สุดฉันก็พบhttps://www.virtualbox.org/ticket/16670 "mount.vboxsf symlink เสีย" ฉันติดตามหนึ่งในวิธีแก้ปัญหาที่นั่นเพื่อแก้ไข symlink สำหรับ mount.vboxsf และทุกอย่างทำงานได้ แนวทางของฉันคือทำ:

mv /sbin/mount.vboxsf /sbin/mount.vboxsf-orig
ln -s /opt/VBoxGuestAdditions-5.1.20/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf

คำสั่งจะต้องทำโดย root ดังนั้นเนื่องจากเป็น Ubuntu ฉันจึงเพิ่ม "sudo" ที่จุดเริ่มต้นของแต่ละบรรทัดเพื่อทำคำสั่งเป็นรูต รสชาติอื่น ๆ ของ Linux มีวิธีอื่นในการทำเช่นนั้น

นอกจากนี้ยังมีปัญหา symlink ที่คล้ายกันซึ่งได้รับการรายงานใน #15879 ตั๋วเสมือนกล่อง "ไม่สามารถเมานต์โฟลเดอร์แชร์ที่มีการเพิ่มแขก 4.3.10" ในปี 2014 ซึ่งได้รับการแก้ไขในเดือนถัดไป

2017/04/27


@duncan: จุดดี ชื่อของตั๋วอธิบายถึงปัญหา แต่ฉันแก้ไขเพื่อแสดงวิธีแก้ไขที่ฉันใช้
เจคัมมิง

การเปลี่ยนแปลงสำหรับกล่องเสมือน v5.1.22 ที่virtualbox.org/wiki/Changelog#v22บอกว่า
J Cumming

changelog สำหรับกล่องเสมือน v5.1.22 วางจำหน่าย 2017-04-28, ( virtualbox.org/wiki/Changelog#v22 ) กล่าวว่าข้อผิดพลาด / ตั๋ว # 16670 ได้รับการแก้ไขแล้ว ฉันตื่นเต้น!
J Cumming

ไม่แน่ใจว่าทำไมสิ่งนี้จึงถูกลดระดับลง แต่มันช่วยฉันด้วยปัญหาในการใช้ Vbox 5.122
qodeninja

1

สำหรับฉันปัญหาคือว่าฉันเป็นห่านและฉันลืมว่าฉันจะลบรายการจากรายการโฟลเดอร์ที่ใช้ร่วมกันของฉันใน VirtualBox (เครื่อง→การตั้งค่า→โฟลเดอร์ที่ใช้ร่วมกัน)

ฉันแค่โยนมันลงไปที่นี่ในกรณีที่มีคนอื่นเข้าใจผิดโดย 'ข้อผิดพลาดของโปรโตคอล' ในทำนองเดียวกัน

: honk : 😉


1

พยายามทั้งหมดดังกล่าวและไม่มีอะไรทำงานให้ฉัน Lats ฉันสร้างโฟลเดอร์ชั่วคราวใหม่ "แชร์" กับ "เปิดใช้ถาวร" และเปิดใช้งาน "เมาท์อัตโนมัติ" จากนั้นเรียกใช้คำสั่ง

sudo mount -t vboxsf -o uid=1000,gid=1000 Shared /mnt/sharedvm

มันใช้งานได้สำหรับฉัน ไม่มีข้อผิดพลาดในครั้งนี้


0

โฟลเดอร์ที่แชร์ของฉันทำงานอยู่และหลังจากรีบูตโฮสต์ของฉันมันก็ไม่ได้

ด้วยการเปลี่ยนชื่อของโฟลเดอร์ที่แชร์จาก Shared เป็น Shared2 มันทำงานได้

config.vm.synced_folder "/Users/username/Dropbox/Shared", "/Shared2"

ไม่มีความคิดเกี่ยวกับสิ่งที่เกิดขึ้นและสาเหตุหรือวิธีการแก้ไข ระบบที่ไม่มีสภาวะที่ไม่แน่นอนทั่วโลกเช่นห้ามมีจุด


0

ส่วนตัวฉันประสบข้อความแสดงข้อผิดพลาดเดียวกันและปัญหาที่เกี่ยวข้องกับความจริงฉันพิมพ์ผิดที่เกี่ยวข้องกับโฟลเดอร์ที่อยู่ในเครื่องโฮสต์และที่ฉันตั้งเป็นโฟลเดอร์ที่ใช้ร่วมกันจากภายในเครื่องเสมือนจริงขอบคุณแขกเพิ่มเติม

ดังนั้นคำสั่งที่ถูกต้องคือ:

sudo mount -t vboxsf -o uid=$UID,gid=$(id -g) shared_folder_located_in_host_machine path_to_mounting_folder_inside_the_virtual_machine

สิ่งนี้ได้แก้ไขข้อผิดพลาด


0

สำหรับฉันมันเป็นรุ่นที่เพิ่มผิดของแขก

ฉันย้าย VM ทั้งหมดของฉันจากแล็ปท็อปเครื่องหนึ่ง (ซึ่งใช้ VirtualBox 5.8 / บางอย่าง) ไปยังอีกแล็ปท็อปที่มี VirtualBox 6.0 ทุกอย่างทำงานได้ยกเว้นการติดตั้งโฟลเดอร์ที่แชร์

ฉันเพิ่งเริ่มต้น VM คลิกDevices -> Insert Guest additions CD image...และปฏิบัติตามคำแนะนำ มันเป็นเปลเกี่ยวกับการปรากฏตัวของแขกรับเชิญรุ่นเก่า แต่แล้วก็ลบมันและติดตั้งใหม่ในความพยายามครั้งที่สอง รีบูตและใช้งานได้

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