Fstab'daki Virtualbox paylaşımlı klasör bağlama başarısız oluyor; açılış tamamlandıktan sonra çalışır


41

Virtualbox 4.3'te Ubuntu 13.10 yüklü durumda. Ana makine Windows'tur.

Birkaç etc / Virtualbox paylaşılan Virtualbox paylaşımlı klasörüm var. Yakın zamana kadar bu kurulum gayet iyi çalıştı, ancak Ubuntu 13.04 ve Virtualbox 4.2'den (aslında aynı anda) yükseltme yapıldıktan sonra fstab montajı çalışmayı durdurdu. Önyükleme sırasında aşağıdaki hatayı alıyorum:

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

Manuel kurtarma için M tuşuna basıp ardından el ile takmaya çalışmak da başarısız olur:

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

Ancak önyükleme sırasında montajı atlarsam, Unity'nin başlamasını bekleyin ve ardından bir kabuğa manüel olarak monte edin, her şey yolunda gider:

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

Elle monte ettiğimde mount'un / etc / fstab'deki tüm seçenekleri kullanmasına izin verdiğimi ve çalıştığını unutmayın. Bu bana, Virtualbox'ın / etc / fstab mounts noktasındaki paylaşılan dosya bağlarını önyükleme sırasında çalıştırılmasını sağlamak için "hazır" olmadığının bir zamanlama sorunu olduğunu gösteriyor.

İşte fstab satırı, sadece tamlık için:

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

Ubuntu tarafından bu konuda yapabileceğim bir şey var mı? Veya Virtualbox açısından bu konuda daha fazla şey bilen var mı?

Virtualbox hata izleyicide aynı belirtilere sahip eski bir rapor buldum, ancak bu durumda kullanıcı konuklarını eklemelerini güncellemeden ve sorunu çözmeden Virtualbox'ı güncelledi; Bu burada olmaz, kesinlikle 4,3 konuk eklemişim var.

Yanıtlar:


46

Ben de bu problemden dolayı kaçtım. Ben montaj /var/wwwbu oldukça can sıkıcı oldu, VBox klasörleri işlevselliği paylaştı kullanarak.

Bulduğum çözüm, vboxsfmodülü dosya sistemlerinin kurulmasından önce erken yüklenmeye zorlamaktı . Sadece vboxsfkendi satırına ekleyin /etc/modules.

Başka bir çözüm de nooto'ları ayarlamak /etc/fstabve sürücüleri elle monte etmektir /etc/rc.local, ancak bu benim için iyi bir çözüm değildi, çünkü o zamana kadar Apache çoktan başladı ve içinde hiçbir şey bulamadı /var/www.


1
müthiş! / etc / modüllerine ekleme işlemi mükemmel sonuç verdi. teşekkürler Richard!
ThePosey

@ThePosey Yardım etmekten memnun oldum!
Richard Turner

Bu benim için Ubuntu Server 14.04 konuğumda oldu. Ve bu cevap (/ etc / module çözümü) benim için çözdü. Teşekkürler! PS Btw, eğer şans eseri, bir şeyler bulmaya / düzeltmeye çalışarak, Virtualbox ayarlarında Auto-mount özelliğini etkinleştirdiyseniz, tekrar devre dışı bırakın;)
Reinis

2
@ qodeninja İkinci paragrafımda dediğim gibi: "Sadece vboxsfkendi satırına ekleyin /etc/modules.
Richard Turner

1
Bunun çalışması için bir Ubuntu 14.04 konuk sisteminde vboxguest ve vboxsf komutlarını / etc / modüllerine eklemek zorunda kaldım.
mattanja

21

Richard Turner'ın vboxsfkendi hattına /etc/modulesekleme önerisine ek olarak, _netdevmount seçeneğini eklemenizi öneririm /etc/fstab. Ubuntu 12.04 LTS'de test ettim ve bu, montajın başarılı olması için doğru miktarda gecikmeyi sağlıyor gibi görünüyor.

Benim /etc/fstabgiriş:

dev /media/dev vboxsf defaults,_netdev 0 0


4
Turner'ın çözümünü kullanmadan bile benim için çalışıyor. Fstab seçeneklerinin Ubuntu Topluluk Yardım sayfasında , " _netdev- bu bir ağ aygıtı, ağı açtıktan sonra monte edin " dediğinden, çok mantıklı olun . Ben yaptım değil yüklemek zorunda vboxsfiçinde /etc/modulessadece eklenmesi, _netdevçalıştı!
Mark Mikofski

1
Bu benim için de Ubuntu 16.04'te, Turner'ın çözümü olmadan bile çalışıyor.
Zhenya

5

Richard'ın düzeltmesi son güncellemeden sonra benim için çalışmayı durdurdu (VirtualBox 4.3.18, Ubuntu 14.04). Neyse ki vboxsfçekirdeğe yükleyerek düzeltmek mümkün oldu :

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

İlk komut, modülü çekirdeğe yüklemek için bir parametre ekler ve ikincisi init dosya sistemini günceller. Yeniden başlattıktan sonra fstab-mounts'umu tekrar kullanabildim :)

Uyarı: Paylaşılan bir klasör eklenemezse önyükleme işlemi donabilir. Bu nedenle, initramfs'e modülü eklemeden önce konfigürasyonunuzu test edin. Sisteminiz yine de kilitleniyorsa, sorunu çözmek için kurtarma modunda önyükleme yapabilirsiniz.


vboxsfModülü daha önce yüklemek için bu çözümü denedim ... Önyükleme sekansımı dondu, kaldırmak zorunda kaldım.
Rerito

Evet, paylaşılan klasör konfigürasyonunuz bozulursa önyükleme sürecini donabilecek modül de dahil olmak üzere. Ancak, doğru konfigürasyonda hiçbir donma donması yaşamadım ...
Torben

İşleri daha net hale getirmek için cevaba bir uyarı ekledim.
Torben

4

vboxsfModülü erken yüklemeye zorlamanın bana yardım ettiğini söylemek istedim (Richard Turner'ın cevabında olduğu gibi), ancak fstab hattı hala benim için işe yaramadı.

Yaptığım iş, mount komutunu (işe yarayan) koymaktı /etc/rc.local. Biraz kesmek ama işe yaradı.


1
Richard Turner'ın önerisinin "sana nasıl yardımcı olduğunu" anlamıyorum, ama aynı zamanda fstab hattı "hala senin için işe yaramadı" ...?
j_random_hacker

4

Fstab'da listelenen paylaşılan klasörle, VirtualBox 5 ve Ubuntu 14.04 kullanarak bağlanmaya çalıştığında bootın asılacağını görüyorum. Çözüm, GuestAddition servisi mevcut olana kadar montajı geciktiriyor gibi görünüyor (Richard Turner'ın /etc/modulesçözümü benim için yeterli gelmedi).

Bunu yapmak noautoiçin, içindeki paylaşılan klasörün seçeneklerine sahip olduğunuzdan emin olun /etc/fstab. Örneğin, adı verilen paylaşılan bir klasör için vmshare:

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

Ardından /etc/rc.local, önyüklemeden sonra paylaşımı bağlamak için bir satır ekleyin :

mount vmshare

Bu benim için çalışan tek çözümdü, VBox 5.0.16 ve Ubuntu 14.04
TJ Compton

3

Öyle görünüyor vboxsfyoksun fs-vboxsftakma (nasıl çekirdek modüller olsun otomatik yüklenmesi ilk kez bu dosya sistemi türünü montaj olduğunda) bu yüzden de takma adı ekleyerek, /etc/modprobe.dhile yapmak gerekir:

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

Bunu kendim denemedim, ama umut verici görünüyor.
j_random_hacker 12:17

2

Ben de aynı problemi yaşadım ve önerilen çözümler üzerinde çalışıyordum ancak başarılı olamadım. Torben'in çözümü botu dondu, geri almak zorunda kaldı. Sonra /etc/fstabkullanarak sorun gidermem gerektiğini düşündüm sudo mount -a. Girişimin sözdizimi mükemmel görünüyordu, ancak yine de başarısız oldu. Ayrıca, terminal penceresindeki mount komutunu kullanarak filesysten'i elle de bağlayabildim.

Bulduğum şey, ilk iki parametre (boşluk ve nokta) arasında boşluklar olduğum. Onları bir sekmeyle değiştirdim ve işe yarıyor. Gerçekten mi?!!!!


İki boşluk karakteri olduğundan emin misiniz (ASCII kod 32)? Çünkü bunlardan bir veya daha fazlası, bir sekme karakteri kadar iyi olmalıdır. Bazen boşluk çubuğuna basarken erken ya da çok geç bırakmak için shift tuşuma bastığımda yanlışlıkla boşluk bırakmayan karakterleri giriyorum. Aynı görünüyorlar ancak birçok uygulamayı karıştırıyorlar.
David Foerster

Tek bildiğim, tüm beyaz boşluklara geri adım attığım ve tek bir sekme yerleştirdiğim ve sonra çalıştı.
svenyonson,

Boşluklarımı sekmeler için değiştirmek benim için çalıştı. Mevcut / etc / fstab dosyamda boşluklar vardı (söyleyebileceğim kadarıyla) ve onları tam olarak kopyaladım. Mevcut çizgiler tek bir alana sahipti. Ama benimkileri sekmelerle tekrar yazmak herşeyin işe yaramasını sağladı.
jcaruso

Bu, aşağıdaki iş için beni vermedi, ancak Kevin Sadler tavsiyesi kullanmanın noautodaha sonra montaj ekleyerek geciktirmek için mount <sharename>için rc.localhile yaptı. Turner'ın çözümünü denemedim.
Mark Mikofski

1

Bununla başa çıkmanın doğru yolunu Arch Wiki'de bulduğuma inanıyorum . comment=systemd.automountSeçeneğini kullanın .

Yukarıdaki seçenek /etc/fstab, diğer seçeneklerle birlikte dosyaya girer . Örneğin:

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

Bu benim için işe yaramadı, ama Keven Sadlier'in cevabı yaptı.
Mark Mikofski
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.