Pertanyaan Bagaimana cara me-mount folder bersama VirtualBox saat startup?


Saya telah menginstal Ubuntu di Virtualbox. Saya ingin me-mount folder bersama VirtualBox saya di Ubuntu secara otomatis ketika saya login di Ubuntu. Saya menempatkan baris berikut di ~. / Bashrc dan ~ / .bash_profile saya:

sudo mount -t vboxsf windows_share /media/windows_share

di mana windows_share adalah nama yang saya buat dengan VirtualBox. Tetapi setiap kali saya memulai Ubuntu, ia meminta saya untuk passwd karena itu membutuhkan sudo. Apakah ada pula untuk secara otomatis me-mount share Windows tanpa memasukkan kata sandi setiap kali saya login?


69
2018-02-08 18:58


asal




Jawaban:


Untuk selalu memasang "folder berbagi" Virtual Box pada saat mem-boot tamu Ubuntu, kami memiliki dua opsi. Terserah pilihan pribadi pilihan mana yang paling cocok dalam pengaturan kami.

1. Pasang dengan fstab

Untuk memasang folder bersama menggunakan vboxsf filesystem yang disediakan Penambahan Tamu pertama kita harus memastikan prasyarat terpenuhi. Maka kita dapat menempatkan baris berikut di kami etc/fstab mengajukan:

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

Menggantikan name_of_share dan /path/to/mountpoint dengan pengaturan individu Anda (direktori untuk mountpoint harus dibuat terlebih dahulu). Lihat halaman manual untuk mount <options>. Salah satu kemungkinan adalah mount dengan defaults, atau untuk memberikan opsi pemasangan tertentu (mis. rw, suid, exec, auto, users).

Pada beberapa sistem, vboxsf modul kernel belum dimuat pada saat itu fstab dibaca saat boot. Ini kemudian dapat membantu untuk menambahkan vboxsf modul kernel ke /etc/modules.

Beberapa sistem mungkin membutuhkan opsi comment=systemd.automount dalam entri fstab mereka (sumber).

2. Mount dengan Virtual Box "pemasangan otomatis":

Dalam rilis terbaru dari Virtual Box kita juga dapat secara otomatis me-mount folder bersama pada pembuatan:

enter image description here

Setelah reboot tamu, folder bersama ini akan dipasang ke direktori tamu /media/<username>/sf_<name_of_share> dapat diakses oleh semua pengguna yang telah menjadi anggota grup vboxsf.


89
2018-02-08 19:29



Bagaimana Anda mengubah direktori mount dan me-mount awalan? Apakah Anda menjalankan beberapa perintah terminal di HOST OS atau OS TAMU? - CMCDragonkai
Fitur ini mengharuskan layanan "virtualbox-guest-utils" telah dimulai, dan pada Ubuntu 14.04 layanan ini dijalankan lebih lambat dari sistem berkas yang di-mount. Ini adalah alasan untuk kesalahan "device not found" ketika memasang share melalui fstab - kolypto
@ garromark, satu-satunya ide saya adalah membuat skrip pemula, yang cukup sederhana. Pilihan lain adalah memasukkan entri fstab yang sama, tetapi tambahkan "noauto" sehingga Anda hanya memasangnya secara manual. - kolypto
@kolypto, terima kasih sudah menghubungi saya. Saya benar-benar menemukan dua solusi bersaing, hanya satu yang bekerja untuk saya: Opsi 1) (Bekerja untuk saya), adalah, seperti yang Anda katakan, untuk menempatkan noautodalam pilihan fstab dan kemudian untuk kemudian me-mount biasanya dalam skrip startup (seperti .profile), Opsi 2) masalah utama adalah bahwa vboxsf tidak dimuat sebelum fstab berjalan, tambahkan vboxsf ke file /etc/modules, meminta kernal untuk memuat modul sebelum fstab dijalankan. Mungkin ini akan membantu orang lain. - garromark
harap ingat untuk menambahkan pengguna Anda ke grup vboxsf. Anda bisa merujuk ke askubuntu.com/questions/79565/add-user-to-existing-group - chinloong


  1. Edit /etc/rc.local

    sudo -H gedit /etc/rc.local
    
  2. Sebelum exit 0 mengetik:

    mount.vboxsf windows_share /media/windows_share vboxsf
    
  3. Menyimpan

  4. (Pilihan) Buat pintasan ke folder desktop atau home:

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

Untuk boot tanpa kesalahan seperti menekan S untuk melewati mount atau tekan M untuk memperbaiki secara manual Anda mungkin harus menghapus entri Anda fstab


24
2018-01-27 23:07



Ini adalah cara HANYA saya telah menemukan untuk bekerja, mencoba RC.Local dengan perintah mount biasa, mencoba FSTAB, mencoba Crontab w / skrip. Terima kasih besar !! - FreeSoftwareServers
Ini bekerja untuk saya juga (menentang jawaban yang diterima, tidak begitu yakin mengapa). Terima kasih banyak dari saya! :) - Daniel Lisik
Bekerja untukku. Saya mengedit /etc/rc.local dengan ini mount -t vboxsf [-o OPTIONS] sharename mountpoint. - neurite
Demi argumen dan untuk merefleksikan kasus virtualbox: saya digunakan untuk melakukan ini saat start sudo mount -t vboxsf -o uid=$UID,gid=$(id -g) windows_share ~/shared/mount_point dan akhirnya menempatkan hal berikut di /etc/rc.local agar berfungsi: mount -t vboxsf windows_share /home/dev/shared/mount_point dimana dev adalah pengguna saya, FYI / etc / fstab juga berfungsi! - MediaVince
Jawaban Anda telah berhasil untuk saya, tetapi direktori-direktori di-mount sebagai root. Saya mengubah mount perintah masuk rc.local skrip untuk menyertakan id pengguna saya (2000): mount.vboxsf -o rw,uid=1000 /home/mwittie/Dropbox Dropbox vboxsf. PS Jika ada yang mencari tutorial tentang cara mengaktifkannya rc.local pada Ubuntu 17.04 ini telah bekerja untukku. PPS saya tidak perlu menyertakan vboxsf di /etc/modules. - Mike Wittie


Setelah pagi yang melelahkan mencoba semua hal di atas di Ubutntu 16.04 berjalan di VirtualBox 5.0.20 tidak berhasil (terutama kecewa karena solusi rc.local tidak berfungsi), itu berhasil dengan:

  1. Mendaftar dari menu Folder Dibagi dari VirtualBox GUI direktori yang diperlukan tetapi TIDAK meng-automount-nya atau pemasangan permanen dari Virtualbox. Jika tidak dir host dipasang oleh root dan itu sakit untuk mengakses oleh pengguna non-root bahkan dari grup admin.

  2. menambahkan entri sederhana di fstab:

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

    Catatan noauto opsi - jika tidak, boot loader gagal sebagaimana telah dicatat.

  3. Tambahkan baris yang sesuai ke /etc/sudoers sebagai berikut dengan menggunakan perintah visudo dari dalam OS tamu:

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

Ini akan memungkinkan proses non-root untuk secara khusus me-mount ini (karena fstab tidak dapat me-mount dengan opsi 'pengguna' ...)

  1. Tambahkan baris terkait ke .profile pengguna:

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

Sekarang subdir induk yang dipilih sudah siap dipasang untuk pengguna yang dipilih setelah masuk!


3
2018-06-04 11:35



Apakah Anda pernah menemukan solusi untuk noauto? - Jörgen Sigvardsson
Ini adalah satu-satunya solusi yang berhasil bagi saya. Tetapi sebagai tambahan, saya juga harus menambahkan "vboxsf" ke / etc / modules untuk memastikan bahwa .profile tidak menjalankan perintah mount sebelum vboxsf siap. - huyz
alih-alih menggunakan sudo, tambahkan 'pengguna' ke opsi fstab dan pengguna dapat memasang sistem berkas - Lars Nordin
Lihat pclosmag.com/html/issues/200709/page07.html untuk info tentang memperbarui fstab, komentar di sini hanya bermanfaat sebagian. Kolom keempat dalam fstab adalah daftar opsi koma yang menambahkan pengguna (uid = xxx) ke daftar itu, mis. noauto, uid = 1000, gid = 1000 - qodeninja
Ada kosong antara rw, noauto yang menghasilkan kesalahan parse. tanpa sampel kosong bekerja untuk saya - weberjn


Saya mencoba solusi rc.local tetapi tidak berhasil.
Namun saya menemukan masalah tampaknya terkait dengan folder Anda menjalankan perintah dari (tidak tahu mengapa). Jadi saya menambahkan baris untuk mengubah direktori ke folder rumah saya sebelum perintah mount, dan sekarang berfungsi.

Jadi, berbagi windows saya disebut Dropbox, titik mount saya /home/jamie/Dropbox, nama pengguna saya adalah jamie, ini yang saya masukkan ke rc.local:

cd /home/jamie
mount.vboxsf /home/jamie/Dropbox Dropbox vboxsf
exit 0

3
2017-12-17 12:12



Cemerlang! Terima kasih. Setelah berjuang dengan solusi lain, ini bekerja untuk pertama kalinya! - Norbert Norbertson
Saya harus menambahkan sleep 2 sebelum memasang perangkat. - Adriano P


Saya melakukannya dengan mode yang sangat mirip pada yang diusulkan di atas tetapi skrip ini membuat yang diperlukan dan me-mount atau unmount folder bersama dengan skrip berikut:

#!/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 "$@"; 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

Simpan sebagai /opt/.scripts/VBoxShared.sh.

Pastikan ini bisa dijalankan. Pada tipe shell:

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

Sekarang, kami menambahkan baris yang menjalankan skrip ini rc.local:

sudo nano /etc/rc.local

dan kami tambahkan baris ini sebelum baris terakhir (exit 0):

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

Simpan (CtrlHAI) dan menutupnya (CtrlX)

Pada titik ini, kami memasang secara otomatis semua folder bersama yang terdaftar <SharedFolder> saat startup.

Untuk meng-unmount-nya, kita hanya perlu mengetik:

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

#!/bin/bash

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

exit 0

Simpan (CtrlHAI) dan tutup (CtrlX)

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

Dan itu saja!


2
2017-09-04 07:41





Ini solusi yang berfungsi.

Sebagai root (I.E. sudo su) Pergi ke folder home (cd ~) dan buat file cron:
vi cronjobs
Tambahkan yang berikut ini
@reboot tidur 15; mount -t aplikasi vboxsf / mnt / aplikasi

Menyimpan file

Catatan: ganti aplikasi dengan nama folder dan / mnt / aplikasi bersama Anda di mana Anda ingin memasangnya. Dalam hal ini saya membuat aplikasi folder di bawah mount (aplikasi mkdir) terlebih dahulu.

Untuk mengaktifkan cron Anda sebagai root (untuk nama file di atas)
crontab cronjobs

Pastikan cron aktif:
crontab-l

reboot dan itu akan dipasang. Tidur 15 detik memungkinkan cukup waktu agar semuanya siap untuk dipasang.


2
2017-09-15 13:44



rc.local dalam jawaban yang diterima telah dihapus dalam rilis Ubuntu baru-baru ini. Solusi alternatif ini bekerja :) - shonky linux user


Saya baru-baru ini menemukan utas ini ketika, setelah memperbarui ke Ubuntu LTS-18 (dan tidak membuat perubahan apa pun ke VirtualBox, dan setelah menginstal ulang ekstensi dan bla-de-bla), auto-mount berhenti bekerja. Itu sf_xxx direktori hadir di /media/ tetapi tidak satupun dari mereka yang benar-benar terpasang.

Upaya untuk memasangnya /etc/fstab (seperti yang disarankan oleh dokumentasi VirtualBox sendiri) tidak berfungsi: boot gagal menjadi "mode darurat", bahkan ketika saya telah memodifikasi /etc/modules mengajukan.

Apa melakukan akhirnya bekerja - meskipun saya menganggapnya sebagai hack stinkin '- adalah crontab trik yang dijelaskan di atas.

Sampai hari ini, saya tidak tahu "apa yang pecah."


0
2017-08-22 17:12