Virtualbox โฟลเดอร์ที่ใช้ร่วมกันเมานต์จาก fstab ล้มเหลว; ทำงานเมื่อ bootup เสร็จสมบูรณ์


41

ฉันติดตั้ง Ubuntu 13.10 ใน Virtualbox 4.3 แล้ว เครื่องโฮสต์คือ Windows

ฉันมีโฟลเดอร์ที่ใช้ร่วมกัน Virtualbox สองโฟลเดอร์ติดตั้งโดย / etc / fstab จนกระทั่งเมื่อเร็ว ๆ นี้การติดตั้งนี้ใช้งานได้ดี แต่หลังจากอัปเกรดจาก Ubuntu 13.04 และ Virtualbox 4.2 (ในเวลาเดียวกัน) การติดตั้ง fstab หยุดทำงาน ฉันได้รับข้อผิดพลาดต่อไปนี้ระหว่างการบู๊ต:

An error occurred while mounting /home/benme/Documents.
keys:Press S to skip mounting or M for manual recovery

กด M เพื่อการกู้คืนด้วยตนเองจากนั้นลองเมาต์ด้วยตนเองก็ล้มเหลวเช่นกัน:

root@benme-vb:~# cd /home/benme
root@benme-vb:/home/benme# mount Documents
/sbin/mount.vboxsf: mounting failed with the error: No such device

แต่ถ้าฉันข้ามการติดตั้งแทนในระหว่างการบู๊ตให้รอ Unity เพื่อเริ่มแล้วติดตั้งด้วยตนเองในเชลล์ทุกอย่างทำงานได้ดี:

benme-vb ~ % ls Documents
benme-vb ~ % sudo mount Documents
[sudo] password for benme: 
benme-vb ~ % ls Documents
    # actual file list omitted

โปรดทราบว่าเมื่อฉันเมานต์ด้วยตนเองฉันจะให้เมานต์ใช้ตัวเลือกทั้งหมดจาก / etc / fstab และใช้งานได้ นี่แสดงให้ฉันเห็นว่ามันเป็นปัญหาเกี่ยวกับจังหวะเวลาโดยที่ Virtualbox ไม่ได้ "พร้อม" เพื่อให้การเมานท์ไฟล์ที่ใช้ร่วมกันที่จุด / etc / fstab mounts นั้นถูกเรียกใช้ในระหว่างการบูทเครื่อง

นี่คือสาย fstab เพื่อความสมบูรณ์:

Documents       /home/benme/Documents   vboxsf  uid=benme,gid=benme,dmode=774,fmode=664     0   0

มีบางอย่างที่ฉันสามารถทำได้เกี่ยวกับเรื่องนี้จากทางด้าน Ubuntu หรือไม่? หรือใครจะรู้เพิ่มเติมเกี่ยวกับเรื่องนี้จากมุม Virtualbox?

ฉันพบรายงานเก่าบนตัวติดตามข้อผิดพลาด Virtualbox ที่มีอาการเหมือนกัน แต่ในกรณีนั้นผู้ใช้ได้ทำการปรับปรุง Virtualbox โดยไม่ต้องอัปเดตข้อมูลเพิ่มเติมของแขกและแก้ไขปัญหานั้น สิ่งนี้ไม่ได้เกิดขึ้นที่นี่ฉันมีการติดตั้ง 4.3 แขกเพิ่มเติมอย่างแน่นอน

คำตอบ:


46

ฉันวิ่งไปตามปัญหานี้ด้วย ฉันติดตั้ง/var/wwwโดยใช้ฟังก์ชั่นโฟลเดอร์ที่ใช้ร่วมกันของ VBox ดังนั้นมันจึงค่อนข้างน่ารำคาญ

วิธีแก้ปัญหาที่ฉันพบคือบังคับvboxsfให้โหลดโมดูลก่อนหน้าการติดตั้งระบบไฟล์ เพียงแค่เพิ่มในบรรทัดในตัวเองvboxsf/etc/modules

ทางออกก็คือการ noauto ชุดใน/etc/fstabตนเองและติดตั้งไดรฟ์ในแต่ก็ไม่ได้แก้ปัญหาที่ดีดังกล่าวสำหรับฉันเพราะในเวลานั้นอาปาเช่ได้เริ่มต้นแล้วและไม่สามารถหาอะไรใน/etc/rc.local/var/www


1
! น่ากลัว การเพิ่ม / etc / modules ทำงานได้อย่างสมบูรณ์ ขอบคุณ Richard
ThePosey

@ThePosey ดีใจที่ได้ช่วย!
Richard Turner

นี่เป็นปัญหาสำหรับฉันบน Ubuntu Server 14.04 guest และคำตอบนี้ (โซลูชัน / etc / modules) แก้ไขให้ฉัน ขอบคุณ! PS Btw ถ้าคุณบังเอิญลองคิดออก / แก้ไขสิ่งต่าง ๆ เปิดใช้งานการเมาท์อัตโนมัติในการตั้งค่า Virtualbox ปิดการใช้งานอีกครั้ง;)
Reinis

2
@qodeninja ที่ผมกล่าวในวรรคที่สองของฉัน "เพียงแค่เพิ่มvboxsfในบรรทัดในตัวเอง/etc/modules.
ริชาร์ดเทอร์เนอ

1
ฉันต้องเพิ่ม vboxguest และ vboxsf ไปที่ / etc / modules บนระบบ Ubuntu 14.04 เพื่อให้ใช้งานได้
mattanja

21

นอกเหนือไปจากข้อเสนอแนะของริชาร์ดเทอร์เนอของการเพิ่มvboxsfในสายของตัวเองเพื่อ/etc/modulesผมขอแนะนำให้เพิ่มตัวเลือกที่จะติดตั้ง_netdev /etc/fstabฉันทดสอบบน Ubuntu 12.04 LTS และดูเหมือนว่าจะเพิ่มความล่าช้าในปริมาณที่เหมาะสมเพื่อให้การเมาต์สำเร็จ

/etc/fstabรายการของฉัน:

dev /media/dev vboxsf defaults,_netdev 0 0


4
สิ่งนี้ใช้ได้กับฉันแม้ว่าจะไม่ได้ใช้โซลูชันของ Turner ก็ตาม ให้ความรู้สึกมากเช่นกันเนื่องจากหน้าความช่วยเหลือของชุมชน Ubuntu สำหรับตัวเลือก fstabบอกว่า " _netdev- นี่คืออุปกรณ์เครือข่ายติดตั้งหลังจากเปิดใช้งานเครือข่าย" ผมไม่ได้มีการโหลดvboxsfใน/etc/modulesเพียงการเพิ่ม_netdevทำงาน!
Mark Mikofski

1
สิ่งนี้ใช้ได้กับฉันด้วยเช่นกันบน Ubuntu 16.04 แม้ไม่มีโซลูชันของ Turner
Zhenya

5

การแก้ไขของ Richard หยุดทำงานสำหรับฉันหลังจากการปรับปรุงครั้งล่าสุด (VirtualBox 4.3.18, Ubuntu 14.04) โชคดีที่ฉันสามารถแก้ไขได้ด้วยการโหลดvboxsfขวากับเคอร์เนล:

# echo "vboxsf" >> /etc/initramfs-tools/modules
# update-initramfs -u

คำสั่งแรกเพิ่มพารามิเตอร์เพื่อโหลดโมดูลไปยังเคอร์เนลและที่สองอัพเดตระบบไฟล์ init หลังจากรีบูตฉันสามารถใช้ fstab-mounts ของฉันได้อีกครั้ง :)

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


ฉันลองวิธีนี้เพื่อโหลดvboxsfโมดูลก่อนหน้านี้ ... มันเป็นแค่ลำดับการบู๊ตของฉันดังนั้นฉันจึงต้องลบมันออก
Rerito

ใช่รวมถึงโมดูลที่ก่อนหน้านี้อาจหยุดกระบวนการบูตหากการกำหนดค่าโฟลเดอร์ที่ใช้ร่วมกันของคุณเสีย แต่ผมไม่เคยมีประสบการณ์ค้างบูตใด ๆ กับการกำหนดค่าที่ถูกต้อง ...
Torben

ฉันได้เพิ่มคำเตือนไปยังคำตอบเพื่อให้สิ่งต่าง ๆ ชัดเจนขึ้น
Torben

4

ฉันแค่อยากจะบอกว่าการบังคับให้vboxsfโมดูลโหลดเร็วช่วยฉันได้ (เช่นเดียวกับคำตอบของ Richard Turner) แต่บรรทัด fstab ยังไม่ได้ผลสำหรับฉัน

สิ่งที่ฉันสิ้นสุดที่ทำถูกวางคำสั่ง mount (ซึ่งได้ทำงาน) /etc/rc.localลง แฮ็กบิต แต่ใช้งานได้


1
ฉันไม่เข้าใจว่าคำแนะนำของ Richard Turner "ช่วยคุณ" แต่ในขณะเดียวกันบรรทัด fstab "ยังไม่ทำงานสำหรับคุณ" ... ?
j_random_hacker

4

เมื่อโฟลเดอร์แชร์อยู่ในรายการ fstab ฉันพบว่าการบู๊ตจะหยุดทำงานเมื่อพยายามติดตั้งโดยใช้ VirtualBox 5 และ Ubuntu 14.04 ดูเหมือนว่าโซลูชันจะล่าช้าในการติดตั้งจนกว่าจะมีบริการ GuestAddition ( /etc/modulesโซลูชันของ Richard Turner ดูเหมือนจะไม่เพียงพอสำหรับฉัน)

การทำเช่นนี้ทำให้แน่ใจว่าคุณมีตัวเลือกสำหรับโฟลเดอร์ที่ใช้ร่วมกันในnoauto /etc/fstabตัวอย่างเช่นสำหรับโฟลเดอร์ที่ใช้ร่วมกันที่เรียกว่าvmshare:

vmshare    /home/user/share    vboxsf    defaults,noauto    0    0

จากนั้นเพิ่มบรรทัด/etc/rc.localเพื่อเมานต์แชร์หลังจากบูท:

mount vmshare

นี่เป็นทางออกเดียวที่ใช้ได้สำหรับฉันโดยใช้ VBox 5.0.16 และ Ubuntu 14.04
TJ Compton

3

ดูเหมือนว่าvboxsfจะไม่มีfs-vboxsfนามแฝง (ซึ่งเป็นวิธีที่โมดูลเคอร์เนลได้รับโหลดอัตโนมัติเมื่อทำการติดตั้งระบบไฟล์นั้นเป็นครั้งแรก) ดังนั้นการเพิ่มนามแฝงใน/etc/modprobe.dควรทำตามขั้นตอนดังนี้:

$ echo "alias fs-vboxsf vboxsf" | sudo tee /etc/modprobe.d/vboxsf.conf

ยังไม่ได้ลองด้วยตัวเอง แต่มันก็ดูดี
j_random_hacker

2

ฉันมีปัญหาเดียวกันและทำงานผ่านแนวทางแก้ไขที่แนะนำ แต่ไม่ประสบความสำเร็จ วิธีการแก้ปัญหาของ Torben ทำให้รองเท้าบูตดังนั้นจึงต้องยกเลิกการทำงาน จากนั้นฉันก็คิดว่าฉันควรแก้ไขปัญหาโดยใช้/etc/fstab sudo mount -aไวยากรณ์ของข้อความของฉันสมบูรณ์แบบ แต่ก็ยังล้มเหลว ฉันยังสามารถเมานต์ filesysten ด้วยตนเองโดยใช้คำสั่ง mount ในหน้าต่างเทอร์มินัล

สิ่งที่ฉันพบคือฉันมีช่องว่างระหว่างสองพารามิเตอร์แรก (อุปกรณ์และจุดเชื่อมต่อ) ฉันแทนที่พวกเขาด้วยแท็บและใช้งานได้ จริงๆ?!!!!


คุณแน่ใจหรือว่าเป็นอักขระเว้นวรรคสองตัว (รหัส ASCII 32) เนื่องจากอย่างน้อยหนึ่งรายการควรมีความละเอียดเท่ากับอักขระแท็บ บางครั้งฉันพิมพ์อักขระเว้นวรรคไม่ได้ตั้งใจเมื่อฉันกดแป้น Shift ของฉันเพื่อเร็วหรือปล่อยสายเกินไปขณะที่กดแป้นเว้นวรรค พวกมันหน้าตาเหมือนกัน แต่สับสนหลายแอพพลิเคชั่น
David Foerster

สิ่งที่ฉันรู้คือฉันถอยกลับไปทั่วพื้นที่สีขาวทั้งหมดแล้วใส่แท็บเดียวแล้วมันก็ใช้งานได้
svenyonson

การสลับช่องว่างของฉันสำหรับแท็บใช้งานได้สำหรับฉัน / etc / fstab ที่ฉันมีอยู่มีช่องว่างอยู่ (เท่าที่ฉันจะบอกได้) และฉันจำลองมันอย่างแน่นอน บรรทัดที่มีอยู่มีช่องว่างเดียว แต่การเขียนของฉันใหม่โดยใช้แท็บทำให้ทุกอย่างทำงานได้
jcaruso

สิ่งนี้ไม่ได้ผลสำหรับฉัน แต่ทำตามคำแนะนำของKevin Sadlerเกี่ยวnoautoกับการใช้การหน่วงเวลาการเมานต์แล้วเพิ่มmount <sharename>เพื่อrc.localทำกลอุบาย ฉันไม่ได้ลองใช้วิธีของเทอร์เนอร์
Mark Mikofski

1

ฉันเชื่อว่าฉันได้พบวิธีที่จะจัดการกับเรื่องนี้ในArch วิกิพีเดีย ใช้comment=systemd.automountตัวเลือก

ตัวเลือกข้างต้นจะอยู่ใน/etc/fstabไฟล์พร้อมกับตัวเลือกอื่น ๆ ตัวอย่างเช่น:

Fedora /var/ftp/pub/Fedora vboxsf uid=1001,gid=1001,comment=systemd.automount 0 0

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