Folder bersama Virtualbox yang dipasang dari fstab gagal; berfungsi setelah bootup selesai

41

Saya sudah menginstal Ubuntu 13.10 di Virtualbox 4.3. Mesin host adalah Windows.

Saya memiliki beberapa folder bersama Virtualbox yang dipasang oleh / etc / fstab. Sampai saat ini pengaturan ini bekerja dengan baik, tetapi setelah meningkatkan dari Ubuntu 13.04 dan Virtualbox 4.2 (pada dasarnya bersamaan) pemasangan fstab berhenti berfungsi. Saya mendapatkan kesalahan berikut saat boot:

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

Menekan M untuk pemulihan manual dan kemudian mencoba memasang secara manual juga gagal:

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

Tetapi jika saya melewatkan pemasangan saat boot, tunggu Unity untuk memulai dan kemudian pasang secara manual di shell, semuanya berfungsi dengan baik:

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

Perhatikan bahwa ketika saya me-mount secara manual saya membiarkan mount mengambil semua opsi dari / etc / fstab, dan itu berfungsi. Ini menunjukkan kepada saya bahwa ini adalah semacam masalah waktu, di mana Virtualbox tidak "siap" untuk menyediakan mount file bersama pada titik / etc / fstab mount dijalankan selama bootup.

Inilah baris fstab, hanya untuk kelengkapan:

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

Adakah yang bisa saya lakukan tentang hal ini dari sisi Ubuntu? Atau apakah ada yang tahu tentang ini dari sudut Virtualbox?

Saya telah menemukan laporan lama tentang pelacak bug Virtualbox dengan gejala yang sama, tetapi dalam hal ini pengguna telah memperbarui Virtualbox tanpa memperbarui tambahan tamu mereka dan menyelesaikan masalah yang telah diperbaiki; ini tidak terjadi di sini, saya sudah pasti menginstal tambahan tamu 4.3.

Ben
sumber

Jawaban:

46

Saya juga bertabrakan dengan masalah ini. Saya mount /var/wwwmenggunakan fungsionalitas folder bersama VBox, jadi ini cukup mengganggu.

Solusi yang saya temukan adalah memaksa vboxsfmodul untuk dimuat lebih awal, sebelum pemasangan sistem file. Cukup tambahkan vboxsfpada barisnya sendiri /etc/modules.

Solusi lain adalah dengan mengatur noauto di /etc/fstabdan secara manual me-mount drive /etc/rc.local, tetapi ini bukan solusi yang baik bagi saya karena pada saat itu Apache sudah mulai dan tidak dapat menemukan apa pun di dalamnya /var/www.

Richard Turner
sumber
1
luar biasa! menambahkan ke / etc / modules bekerja dengan sempurna. terima kasih Richard!
ThePosey
@ThePosey Senang telah membantu!
Richard Turner
Ini masalah bagi saya di Ubuntu Server 14.04 tamu. Dan jawaban ini (solusi / etc / modules) memecahkannya untuk saya. Terima kasih! PS Btw, jika Anda kebetulan, mencoba mencari tahu / memperbaiki hal-hal, mengaktifkan Auto-mount di pengaturan Virtualbox, nonaktifkan lagi;)
Reinis
2
@qodeninja Seperti yang saya katakan di paragraf kedua: "Cukup tambahkan vboxsfsatu baris sendiri /etc/modules.
Richard Turner
1
Saya harus menambahkan vboxguest dan vboxsf ke / etc / modules pada sistem tamu Ubuntu 14.04 agar ini berfungsi.
mattanja
21

Selain saran Richard Turner untuk menambahkan vboxsfpada garisnya sendiri /etc/modules, saya sarankan menambahkan _netdevopsi mount ke /etc/fstab. Saya menguji Ubuntu 12,04 LTS dan ini tampaknya menambah jumlah penundaan yang tepat agar mount berhasil.

/etc/fstabEntri saya :

dev /media/dev vboxsf defaults,_netdev 0 0

deoren
sumber
4
Ini bekerja untuk saya, bahkan tanpa menggunakan solusi Turner. Masuk akal juga, karena halaman Bantuan Komunitas Ubuntu untuk opsi fstab mengatakan, " _netdev- ini adalah perangkat jaringan, pasang setelah memunculkan jaringan." Saya tidak harus memuat vboxsfdalam /etc/modules, hanya tentang penambahan _netdevbekerja!
Mark Mikofski
1
Ini juga berfungsi untuk saya di Ubuntu 16.04, bahkan tanpa solusi Turner.
Zhenya
5

Perbaikan Richard berhenti bekerja untuk saya setelah pembaruan terakhir (VirtualBox 4.3.18, Ubuntu 14.04). Untungnya saya bisa memperbaikinya, dengan memuat vboxsflangsung dengan kernel:

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

Perintah pertama menambahkan parameter untuk memuat modul ke kernel dan yang kedua memperbarui sistem file init. Setelah reboot saya bisa menggunakan fstab-mount saya lagi :)

Peringatan: Proses booting mungkin membeku, jika folder bersama tidak dapat dipasang. Jadi uji konfigurasi Anda, sebelum Anda menambahkan modul ke initramfs. Jika sistem Anda hang, Anda dapat boot dalam mode pemulihan untuk memperbaiki masalah.

Torben
sumber
Saya mencoba solusi ini untuk memuat vboxsfmodul sebelumnya ... Itu hanya membeku urutan boot saya jadi saya harus menghapusnya.
Rerito
Ya, termasuk modul yang lebih awal mungkin membekukan proses boot, jika konfigurasi folder bersama Anda rusak. Namun, saya tidak pernah mengalami boot yang membeku dengan konfigurasi yang benar ...
Torben
Saya telah menambahkan peringatan pada jawaban untuk membuat semuanya menjadi lebih jelas.
Torben
4

Saya hanya ingin mengatakan bahwa memaksa vboxsfmodul untuk memuat lebih awal membantu saya (seperti dalam jawaban Richard Turner), tetapi baris fstab masih tidak berfungsi untuk saya.

Apa yang akhirnya saya lakukan adalah memasukkan perintah mount (yang berhasil) /etc/rc.local. Sedikit peretasan tetapi berhasil.

ezuk
sumber
1
Saya tidak mengerti bagaimana saran Richard Turner "membantu Anda", tetapi pada saat yang sama, kalimat fstab "masih tidak berhasil untuk Anda" ...?
j_random_hacker
4

Dengan folder bersama terdaftar di fstab saya menemukan bahwa boot akan hang ketika mencoba me-mount menggunakan VirtualBox 5 dan Ubuntu 14.04. Solusinya tampaknya menunda pemasangan hingga layanan GuestAddition tersedia ( /etc/modulessolusi Richard Turner sepertinya tidak cukup bagi saya).

Untuk melakukan ini, pastikan Anda memiliki noautoopsi untuk folder bersama di /etc/fstab. Misalnya untuk folder bersama bernama vmshare:

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

Kemudian tambahkan baris ke /etc/rc.localuntuk me-mount share setelah boot:

mount vmshare
Kevin Sadler
sumber
Ini adalah satu-satunya solusi yang bekerja untuk saya, menggunakan VBox 5.0.16 dan Ubuntu 14.04
TJ Compton
3

Sepertinya vboxsfkekurangan fs-vboxsfalias (yang merupakan cara modul kernel di-autoload saat me-mount tipe filesystem tersebut untuk pertama kali), jadi menambahkan alias dalam /etc/modprobe.dharus melakukan trik:

$ echo "alias fs-vboxsf vboxsf" | sudo tee /etc/modprobe.d/vboxsf.conf
hyperair
sumber
Belum mencoba ini sendiri, tetapi terlihat menjanjikan.
j_random_hacker
2

Saya memiliki masalah yang sama, dan sedang mengerjakan solusi yang disarankan, tetapi tidak berhasil. Solusi Torben membekukan boot, jadi harus membatalkannya. Lalu saya pikir saya harus memecahkan masalah /etc/fstabmenggunakan sudo mount -a. Sintaks entri saya terlihat sempurna, tetapi masih gagal. Saya juga bisa secara manual me-mount filesysten menggunakan perintah mount di jendela terminal.

Apa yang saya temukan adalah saya memiliki spasi di antara dua parameter pertama (perangkat dan titik pemasangan). Saya menggantinya dengan tab dan berfungsi. Sangat?!!!!

svenyonson
sumber
Apakah Anda yakin itu adalah dua karakter spasi (kode ASCII 32)? Karena satu atau lebih dari itu harus sama baiknya dengan karakter tab. Terkadang saya secara tidak sengaja mengetik karakter spasi yang tidak melanggar ketika saya menekan tombol shift saya untuk lebih awal atau melepaskannya terlalu terlambat sambil menekan tombol spasi. Mereka terlihat sama tetapi membingungkan banyak aplikasi.
David Foerster
Yang saya tahu adalah bahwa saya mundur dari semua ruang putih dan memasukkan satu tab dan kemudian bekerja.
svenyonson
Mengalihkan spasi untuk tab bekerja untuk saya. / Etc / fstab saya yang ada memiliki ruang di dalamnya (sejauh yang saya tahu) dan saya mereplikasi mereka dengan tepat. Garis yang ada memiliki satu ruang. Tetapi menulis ulang milik saya dengan tab membuat semuanya berfungsi.
jcaruso
Ini tidak berhasil untuk saya, tetapi mengikuti rekomendasi Kevin Sadler tentang penggunaan noautountuk menunda pemasangan kemudian menambahkan mount <sharename>untuk rc.localmelakukan trik. Saya tidak mencoba solusi Turner.
Mark Mikofski
1

Saya yakin saya telah menemukan cara yang tepat untuk menghadapinya di Arch Wiki . Gunakan comment=systemd.automountopsi.

Opsi di atas masuk dalam /etc/fstabfile dengan opsi lain. Sebagai contoh:

Fedora /var/ftp/pub/Fedora vboxsf uid=1001,gid=1001,comment=systemd.automount 0 0
ultracrepidarian
sumber
Ini tidak berhasil untuk saya, tetapi jawaban Keven Sadlier berhasil.
Mark Mikofski