Başlatma sırasında bir VirtualBox paylaşımlı klasör nasıl kurulur?

69

Virtualbox'a Ubuntu'm var. Ubuntu'ya giriş yaptığımda, VirtualBox paylaşımlı klasörümü Ubuntu'ya otomatik olarak bağlamak istiyorum. Aşağıdaki satırı ~. / Bashrc ve ~ / .bash_profile dizinine koydum:

sudo mount -t vboxsf windows_share /media/windows_share

Windows_share, Virtualbox ile oluşturduğum addır. Ama Ubuntu'yu başlattığım her sefer, sudo'ya ihtiyacı olduğu için bana şifre istedi. Her girişimde şifre girmeden Windows paylaşımını otomatik olarak mount etmem var mı?

    
sordu tonga 08.02.2013 19:58

7 cevap

89

Her zaman bir Ubuntu konusunun açılışında bir Sanal Kutu "paylaşımlı klasör" yerleştirmek için iki seçeneğimiz vardır. Hangi seçeneğin bizim ayarımızda en iyi şekilde çalıştığı kişisel tercihtir.

1. Fstab ile bağlayın

ile sağlanan vboxsf dosya sistemini kullanarak paylaşılan bir klasörü bağlamak için Konuk Eklemelerin öncelikle önkoşulların olduğundan emin olmamız gerekir. araya geldi. Ardından aşağıdaki satırı etc/fstab dosyamıza koyabiliriz:

<name_of_share>   /path/to/mountpoint   vboxsf   <options>  0   0

Ayrı kurulumunuzla name_of_share ve /path/to/mountpoint değerini değiştirin (önce bağlama noktası dizininin oluşturulması gerekir). % Co_de% dizini için manpage bakın. Bir olasılık <options> ile monte etmek veya belirli montaj seçenekleri sunmaktır (ör.% Co_de%).

Bazı sistemlerde defaults kernel modülü henüz yüklenmemişken rw, suid, exec, auto, users önyüklemede okunmaktadır. Daha sonra vboxsf kernel modülünü fstab dosyasına eklemeye yardımcı olabilir.

Bazı sistemlerin, fstab girdilerinde vboxsf seçeneğine ihtiyacı olabilir ( kaynak ).

2. Sanal Kutu "otomatik montaj" ile monte edin:

Son zamanlarda Sanal Kutu sürümlerinde, paylaşımlı klasörleri otomatik olarak oluşturma üzerine yerleştirebiliriz:

Misafirin yeniden başlatılmasından sonra bu paylaşılan klasör, /etc/modules grubunun üyesi olan tüm kullanıcılara erişilebilir comment=systemd.automount konuk dizinine eklenecektir.

    
verilen cevap Takkat 08.02.2013 20:29
24
  1. /etc/rc.local değerini düzenle

    sudo -H gedit /etc/rc.local
    
  2. exit 0 tipinden önce:

    mount.vboxsf windows_share /media/windows_share vboxsf
    
  3. Kaydet

  4. (İsteğe bağlı) Masaüstü veya ana klasöre bir kısayol oluşturun:

    ln -s /media/windows_share /home/freddy/Desktop
    

Montajı atlamak için S tuşuna basmak veya M tuşuna basmak gibi hataları olmadan önyükleme yapmak için girişinizi fstab

içinde silmeniz gerekebilir.     
verilen cevap Fred Collins 28.01.2015 00:07
3

Ubutntu 16.04'te Virtualbox 5.0.20'de başarısız olan tüm yorucu bir sabahdan sonra (özellikle rc.local çözümünün çalışmadığı hayal kırıklığına uğramıştı), şu şekilde çalıştı:

  1. Sanal Klasör GUI'sinin Paylaşılan Klasörler menüsünden kaydedilmesi gerekli dizini oluşturur, ancak YÜKLENMEMEKTEDİR veya Sanal kutudan kalıcı bir şekilde takılı DEĞİL. Aksi takdirde, ana makine dizini root tarafından kurulur ve root olmayan kullanıcılar tarafından yönetici grubundan bile erişmesi bir acıdır.

  2. fstab'a basit giriş ekleme:

    [VirtuablBoxNameOfMount] /media/[guestOSuser]/[mountSubdir]    vboxsf   rw, noauto   0     1
    

    noauto seçeneğine dikkat edin - aksi takdirde önyükleyici kaydedildiği gibi başarısız olur.

  3. Konuk işletim sisteminden komut visudo kullanılarak aşağıdaki gibi /etc/sudoers karşılık gelen satırı ekleyin:

    ALL ALL = NOPASSWD: /bin/mount /media/[guestOSuser]/[mountSubdir]/
    

Bu, kök olmayan işlemlerin bunu özellikle yüklemesini sağlar (fstab 'kullanıcı' seçeneği ile bağlanamaz ...)

  1. Kullanıcıya .profile karşılık gelen satırı ekleyin:

    sudo mount /media/[guestOSuser]/[mountSubdir]/
    

Artık seçilen ana makine alt girişi, oturum açıldığında seçilen kullanıcı için hazır!

    
verilen cevap Michael Moutoussis 04.06.2016 13:35
3

rc.local çözümünü denedim ancak işe alamadım.
Ancak, problemin komutunu çalıştırdığınız klasörle ilgili olduğu anlaşılıyordu (neden olmasın). Bu yüzden, dizini, mount komutundan önce ev dizinime değiştirmek için bir satır ekledim ve şimdi çalışıyor.

Yani, windows paylaşımım Dropbox , mountpoint /home/jamie/Dropbox , kullanıcı adım jamie , buna rc.local yazdım:

cd /home/jamie
mount.vboxsf /home/jamie/Dropbox Dropbox vboxsf
exit 0
    
verilen cevap DeepFried 17.12.2016 13:12
2

Yukarıda önerildiği gibi çok benzer bir modda yapıyorum ancak bu komut dosyası gerekli komut dosyasını oluşturuyor ve aşağıdaki komut dosyasını kullanarak paylaşımlı klasörü kuruyor veya bağlantısını kesiyor:

#!/bin/bash
#
# Mount automatically even shared folder on startup and unmount it at shutdown.
#
# VirtualBox (c) 2015 by Oracle Systems Inc.
#
####

# Check user privileges.
if [[ $EUID -ne 0 ]]; then
    echo -e "This script must run at ROOT user!" \
        "\nPlease, use 'sudo', 'visudo' or any other to run it."
    exit 1
fi

# Check paramas from caller.
if [[ $# -eq 0 ]]; then
    echo -e "Auto-Mount selected shared folder of VirtualBox machine." \
        "\nUsage:" \
        "\n    VBoxShared <drive_one> <drive_two> <...>"
    exit 2
fi

declare EVENT=          # This set the ACTION: -m OR -u
declare -a DRIVES=()

# Processing each param:
for arg in "[email protected]"; do
    case "$arg" in
        "-m"|"--mount")
            if [[ -z ${EVENT} ]]; then
                EVENT=-m
            else
                exit 318        # parameters at conflict!
            fi
            ;;

        "-u"|"--umount")
            if [[ -z ${EVENT} ]]; then
                EVENT=-u
            else
                exit 318        # parameters at conflict!
            fi
            ;;

        *)
            DRIVES=("${DRIVES[@]}" "${arg}")
            ;;
    esac
done
unset arg

[[ -z ${EVENT} ]] && exit 1             # ERROR: No se ha establecido la acción a realizar.
[[ "${#DRIVES[@]}" -gt 0 ]] || exit 1   # ERROR: No se han indicado las unidades a manejar.

# Process each shared folder stored on '${DRIVES}' array
for drive in "${DRIVES[@]}"; do
    DEST="/media/sf_${drive}"

    case "${EVENT}" in
        "-m")
            [[ -d ${DEST} ]] || (mkdir ${DEST} && chown root:vboxsf ${DEST} && chmod 770 ${DEST})
            mount -t vboxsf ${drive} ${DEST}
            ;;

        "-u")
            if [[ 'df --output=target | grep "${DEST}"' > /dev/null ]]; then
                umount -f ${DEST}
                rm -rf "${DEST}"
            fi
            ;;
    esac
    unset DEST
done
unset drive

unset EVENT
unset DRIVES
exit 0

/opt/.scripts/VBoxShared.sh olarak kaydedin.

Bunun çalıştırıldığından emin olun. Kabuk tipi:

sudo chmod a+x /opt/.scripts/VBoxShared.sh

Şimdi, bu komut dosyasını rc.local üzerinde çalıştıran bir satır ekliyoruz:

sudo nano /etc/rc.local

ve bu satırı son satırdan önce ekliyoruz ( exit 0 ):

. /opt/.scripts/VBoxShared.sh --mount <SharedFolder1> [<SharedFolder2> <SharedFolder3> ...]

Kaydet ( Ctrl O ) ve kapat ( Ctrl X )

Bu noktada, başlangıçta <SharedFolder> 'de listelenen tüm paylaşılan klasörleri otomatik olarak bağlarız.

Bağlantıyı kaldırmak için sadece türüne ihtiyacımız var:

sudo nano /etc/rc6.d/K99-vboxsf-umount.sh

#!/bin/bash

. /opt/.scripts/VBoxShared --umount <SharedFolder1> [<SharedFolder2> <SharedFolder3> ...]

exit 0

Kaydet ( Ctrl O ) ve kapat ( Ctrl X )

sudo chmod a+x /etc/rc6.d/K99-vboxsf-auto.sh

Ve hepsi bu!

    
verilen cevap U. Alonso 04.09.2015 09:41
2

İşte bir çalışma çözümü.

Kök olarak (I.E. sudo su) Ana klasöre (cd ~) gidin ve bir cron dosyası oluşturun:
vi cronjobs
Aşağıdakileri ekle - @reboot uyku 15; mount -t vboxsf uygulaması / mnt / app

Dosyayı kaydet

Not: Uygulamayı, paylaştığınız klasör adınızla ve / mnt / app ile değiştirin. Bu durumda ilk önce mount uygulamasını (mkdir uygulaması) oluşturdum.

Cron'unuzu root olarak (dosya adı için) etkinleştirmek için
crontab cronjobs

Cron'un etkin olduğundan emin olun:
crontab -l

Yeniden başlat ve monte edilecek. 15 saniyelik uyku, her şeyin montaj için hazır olması için yeterli zaman sağlar.

    
verilen cevap Stephen 15.09.2017 15:44
0

Ubuntu LTS-18 'e güncellendikten sonra (ve VirtualBox'a ne olursa olsun hiçbir değişiklik yapmadan ve uzantıları ve blah-de-blah'ı yeniden yükledikten sonra), otomatik bağlantı durduruldu Çalışma. % Co_de% dizini sf_xxx dizinindeydi ancak bunların hiçbiri gerçekten yüklenemedi.

Onları% co_de (VirtualBox'un kendi dokümanları tarafından önerildiği gibi) içine yerleştirme girişimleri işe yaramadı: /media/ dosyasını değiştirmiş olmama rağmen, önyükleme "acil durum modu" na geçemedi.

Ne yaptınız sonuçta işe yarar - her ne kadar ben bir stinkin 'hack' olarak görsem de - yukarıda açıklanan /etc/fstab hüneridir.

Şu ana kadar, "ne kırdı" diye bir fikrim yok

    
verilen cevap Mike Robinson 22.08.2018 19:12

Etiketlerdeki diğer soruları oku