Di VirtualBox, apa cara terbaik untuk berbagi direktori antara host OS X dan tamu Ubuntu?
- Host: Mac OS X 10.7.3
- Tamu: Ubuntu 12.04
- Guest memiliki direktori bersama yang dipasang melalui pengaturan VirtualBox dengan Access = Full dan Auto-Mount = Ya .
Masalah dengan pengaturan ini diilustrasikan di bawah ini. Di direktori bersama saya, saya tidak bisa mengubah izin sama sekali (bukan izin yang ditolak kesalahan, tetapi mereka tidak berlaku).
Ubuntu 12.04 (tamu):
% ls -l
total 0
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 10
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 2
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 3
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 4
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 5
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 6
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 7
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 8
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 9
Mac OS X 10.7.3 (host):
$ ls -l
total 0
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 1
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 10
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 2
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 3
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 4
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 5
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 6
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 7
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 8
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 9
Jika saya chmod pada tamu, tidak ada yang berubah:
% chmod +x 1 | ls -l 1 # guest
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1
Jika saya chmod pada host, itu berubah pada host tetapi tidak pada tamu:
$ chmod +x 1 | ls -l 1 # host
-rwxrwx--x 1 <my-mac-user> staff 0 Apr 17 21:56 1
% ls -l 1 # guest
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1
virtualbox
permissions
mac
jmdeldin
sumber
sumber
sudo mount.vboxsf -o umask=002,gid=1000,uid=1000 src /media/sf_src
, di mana umask adalah nilai dariumask
pengguna, uid dan gid berasalid <user>
,src
adalah nama share VBox, dan/meida/sf_src
merupakan titik mount yang diinginkan.Jawaban:
Saya sudah menemukan jawabannya!
Untuk mereproduksi:
Dari terminal, jalankan
umask && id
sebagai pengguna biasa untuk mendapatkan sesuatu seperti ini:sudo mkdir -p /media/sf_src # src is the shared directory
Untuk memasang
src
direktori sebagai ujian:Untuk memasang secara otomatis saat login, edit
/etc/fstab
dan tambahkan berikut ini:sumber
/sbin/mount.vboxsf
itu adalah symlink yang menjuntai! Menghapusnya danln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf
memecahkan masalahnya! Instalasi penambahan tamu mungkin tidak dapat menghubungkannya. Aku menghabiskan jauh terlalu banyak waktu mencari tahu ini!Masalahnya - masalah izin di vbox / ubuntu mengakses drive yang dibagikan OSX
Tujuannya adalah cara sederhana untuk berbagi direktori antara lingkungan Mac dan Ubuntu. Sayangnya contoh-contoh yang saya lihat sejauh ini tampaknya sedikit lebih kompleks daripada yang sebenarnya perlu, dan tidak benar-benar menjelaskan apa masalah nyata yang perlu diselesaikan. Saya akan berusaha menangani kedua masalah itu di sini.
Lingkungan di sini adalah Mac yang menjalankan OSX 10.9.5, dengan Virtual Box 4.3.16 menjalankan Ubuntu-14.04.1 dengan ekstensi Guest diinstal. Barang-barang September 2014.
Saya berpikir bahwa seluruh masalah di sini adalah bahwa uid direktori pada Mac, dan di Ubuntu harus sesuai - default gid ditugaskan untuk pengguna dan kelompok yang berbeda antara OSX dan Ubuntu, dan bahwa di mana masalah kebohongan.
Untuk mengakses file, seseorang harus memilikinya, atau menjadi anggota grup yang memilikinya. Dan karena akses sebenarnya didasarkan pada nomor id grup, bukan nama grup, yang diperlukan hanyalah membuat nomor grup umum di kedua sisi, yang menjadi milik pengguna.
Itulah yang dilakukan oleh solusi di bawah ini. Jangan menyesatkan dengan panjangnya apa yang ditulis, itu sebenarnya sangat sederhana. Ada banyak sekali contoh tentang apa yang terjadi.
Saya akan membalik-balik antara OSX dan VBOX konsol di sini (mac dan virtual-box / ubuntu) dalam dokumen ini - pastikan Anda memahami jendela Anda.
Catatan akhir: Solusi yang ditunjukkan di bawah ini didasarkan pada pembuatan ID grup umum antara lingkungan OSX dan Ubuntu, sehingga izin file berfungsi. Mungkin ada solusi lain yang lebih modern. Yang ini benar-benar sederhana dan mudah dimengerti, dan berjalan dengan instalasi sederhana tanpa hiasan.
OSX: —————
Catatan yang dilakukan pada yang baru di luar kotak 10.9.5 Mac, dengan tidak ada di dalamnya, tidak terhubung ke jaringan perusahaan, tidak ada yang suka berjalan di atasnya selain perangkat lunak saham. Ini sesederhana yang didapat.
Ketika saya melakukan instalasi default pada Mac, joe_public adalah pengguna admin, dan uid-nya diatur ke 501 .
Perhatikan bahwa uid adalah 501 - ini adalah id akun pertama default di OSX - tidak ada yang istimewa
Saya membuat beberapa direktori yang ingin saya bagikan di sisi Mac - Perhatikan bahwa saya tidak meletakkannya di bawah direktori pengguna saya untuk alasan cadangan.
VBOX: ——————
Kotak virtual standar sederhana dan instalasi ubuntu - sekali lagi, joe_public adalah admin default yang dibuat ketika saya menginstal ubuntu.
Harap perhatikan sekali lagi, bahwa ruang nama antara OSX dan Ubuntu sama sekali berbeda. Sama sekali tidak ada hubungan antara kedua nama di sini.
Menciptakan tiga titik pemasangan, menggunakan Pengaturan Kotak Virtual -> Folder Berbagi gui.
CATATAN: Saya benar-benar harus memulai ulang sesi saya untuk semua poin pemasangan ini muncul.
Perhatikan bahwa gid untuk ini adalah 999 - ini adalah grup vboxsf .
Ini ditugaskan secara otomatis oleh Virtual Box versi 4.3.16 untuk kami. Dokumentasi vbox menunjukkan cara bagaimana mengubah ini jika Anda memasang path secara manual melalui baris perintah, tetapi siapa yang akan mengingatnya - Cukup ambil default yang diminta GUI pada kita ..
Tapi itu tidak berhasil (diharapkan pada titik ini - itulah yang kami coba pecahkan)
Perhatikan bahwa pada titik ini joe_public bukan anggota grup vboxsf itu - dan itu akan menjadi masalah sampai kami memperbaikinya. FYI: Ini adalah grup default yang ditetapkan untuk akun ketika dibuat.
Jadi apa yang kita miliki saat ini (kami belum melakukan apa pun untuk memperbaikinya)
Kami tidak ingin mengubah gid pengguna joe_public di kedua sisi, karena itu menyebalkan pada sistem yang sudah diinstal, dan tidak menyelesaikan ini untuk pengguna lain. Solusi paling sederhana adalah membuat grup id yang cocok - vboxsf - di sisi mac, dan pastikan bahwa joe_public adalah anggota di kedua sisi.
Jadi, masih di vbox / ubuntu, membuat joe_public anggota dari 999 vboxsf kelompok
Saya pikir saya keluar dari akun saya dan kembali lagi ke sini setelah saya melakukan ini.
OSX: —————
Sekarang kita perlu membuat grup vboxsf di mac. Saya ragu bahwa nama itu benar-benar membuat perbedaan di sini - ini adalah grup 999 id yang penting. Harap diingat bahwa ruang nama sistem direktori (dan juga nama pengguna) berbeda antara host dan sistem operasi VM. Tetapi hanya untuk membuat hidup menjadi waras, kita semua menyebutnya vboxsf di mac. Alasan yang sama mengapa joe_public digunakan nama pengguna di kedua sisi.
OSX tidak memiliki perintah add group sederhana seperti linux - jadi gunakan perintah dscl untuk melakukan ini dalam beberapa langkah. Silakan lihat dokumentasi mac os untuk detail lebih lanjut tentang ini. Perhatikan bahwa kita membuat grup vboxsf, dan menambahkan joe_public ke grup itu di sini.
Jadi, pada titik ini, kita seharusnya memiliki
Buktinya di sini adalah jika itu berfungsi - jadi itulah langkah selanjutnya
VBOX: ——————
masuk ke direktori kami dan sentuh file
Periksa apakah kami berhasil membuat file.
OSX: —————
VBOX: ——————
Itu semua tampaknya berfungsi ..
VBOX: —————— VERIFIKASI FINAL
Apa yang kami periksa di sini adalah bahwa semua ini bergantung pada pengguna joe_public yang menjadi anggota grup vboxsf - dan cara paling sederhana adalah dengan menghapus joe_public dari grup
Menghapus pengguna joe_public dari grup vboxsf
Melihat apakah kami dapat mengaksesnya direktori kami - dan kami tidak bisa, dan ini membuktikan bahwa itu adalah masalah izin grup
Tambahkan pengguna kembali ke vboxsf
Berhasil lagi!
VBOX: - SATU MASALAH LEBIH BANYAK - tautan simbolik di vbox -------
Jika Anda masuk ke / media / sf_share , Anda akan menemukan bahwa tautan simbolis di direktori bersama tidak berfungsi. Ini adalah masalah yang sangat besar jika Anda mencoba mengatur lingkungan pengembangan linux penuh pada drive bersama.
Secara default, tautan simbolik tidak didukung pada bagikan kotak virtual. Lihat penjelasan di bawah ini. Pada dasarnya seperti yang saya pahami, tautan simbolik adalah lubang keamanan yang "diperbaiki" di Virtual Box dengan menonaktifkan dukungan untuk mereka dalam kerangka waktu 4.1.8 (2011). Saya menjalankan 4.3.16 di sini ...
https://www.virtualbox.org/ticket/10085
http://ahtik.com/blog/fixing-your-virtualbox-share-folder-symlink-error/
Untungnya ada pintu belakang untuk mengaktifkannya kembali, melalui perintah Host's VBoxManage . Seperti biasa, tolong pahami celah keamanan di sini yang mungkin Anda buka. Saya menggunakan mesin pengembangan yang berdiri sendiri, jadi ini sepertinya bukan masalah.
OSX: ------------
Catatan: Ubuntu adalah nama vm saya, dan dibagikan adalah nama direktori bersama.
Anda bisa mendapatkan nama vm seperti ini:
Dan nama folder bersama, baik melalui Kotak Virtual gui, atau
Saya mem-boot ulang seluruh sistem kotak virtual di sini, saya tidak tahu persyaratan minimum yang harus diambil.
Lagi pula, untuk menguji ini, kembali ke jendela vbox Anda
VBOX: ---------
Tidak ada kesalahan - dan untuk memverifikasi
OSX: ----------
Dan kembali pada sisi mac - hanya untuk membuktikan semuanya berhasil
Harap dicatat, saya hanya menguji ini pada host OSX, dan klien kotak virtual Ubuntu. Referensi yang saya sebutkan di atas tampaknya menunjukkan bahwa mungkin ada masalah menjalankan host berbasis Windows.
KIRI LATIHAN UNTUK SISWA ———————
Manfaat dari metode yang tercantum di atas adalah dapat berjalan di mesin stand-along, tanpa akses jaringan. Tetapi jika Anda berpikir tentang hal ini, masalah nama-ayat-id ini harus menjadi masalah umum di antara lingkungan komputasi yang heterogen.
Apa solusi lain yang tersedia di mana solusi untuk masalah itu tersedia? - Hal-hal seperti Active Directory (produk Microsoft) dan sejenisnya mungkin dapat menyelesaikan ini. Akan menarik untuk mendapatkan koleksi solusi tersebut dan membandingkan berbagai fitur dan pengorbanan di sana.
sumber
Bagi saya yang perlu saya lakukan adalah:
Itu sudah cukup bagi saya untuk mendapatkan akses ke folder bersama. Folder memiliki grup vboxsf, pengguna hanya perlu ditugaskan ke grup itu untuk mendapatkan akses. Jika Anda perlu mengatur akses yang lebih ketat atau akses yang lebih terkendali, Anda mungkin harus melalui langkah-langkah pemasangan secara manual dengan userid-s yang tepat.
Bagi saya solusi fstab tidak berfungsi dan menyebabkan mesin tidak bisa boot dengan benar.
sumber
Setelah Anda membuat folder bersama dalam pengaturan Virtualbox, Ubuntu akan secara otomatis memasangnya untuk Anda lain kali Anda boot sistem (Anda akan melihat ikon di desktop Anda).
Tetapi jika Anda tidak menggunakan akun root, Anda tidak akan memiliki izin untuk mengaksesnya. Yang perlu Anda lakukan adalah menambahkan akun pengguna Anda ke grup pengguna yang disebut 'vboxsf':
Kemudian logout dan login lagi. Anda dapat mengakses folder bersama sekarang.
sumber
Sejak VirtualBox v4.0, mudah untuk menyelesaikan masalah izin ini! Anda tidak perlu khawatir tentang
mkdir
,mount
,chmod
,umask
, dll Untuk mengakses folder auto-mount bersama (yang muncul dalam/media
dengansf_
prefiks secara default), hanya ada satu hal yang perlu Anda lakukan: Tambah nama pengguna kevboxsf
grup melaluisudo usermod -a -G vboxsf [username]
.Untuk kenyamanan, Anda mungkin juga ingin membuat tautan simbolis ke folder bersama di dalam
home
folder Anda (mis.,ln -s /media/sf_Stuff ~/Stuff
).Sumber: http://www.virtualbox.org/manual/ch04.html#sf_mount_auto
sumber
Saya menemukan ini, saya menguji dan berfungsi di Ubuntu dan Xubuntu, hanya fitur automount tidak bekerja untuk saya
I. Instal Tambahan Tamu
Pertama, Anda perlu menginstal Tambahan Tamu VirtualBox ke sistem host:
Pilih di menu VitualBox: Perangkat -> Instal Penambahan Tamu ...
Itu memasang ISO baru untuk sistem host. CD baru muncul di Ubuntu (atau pasang). Jalankan sebagai root skrip instalasi VBoxLinuxAdditions-x86.run (karena itu adalah Mac berbasis Intel) di jendela Terminal:
Mungkin Anda akan diminta untuk me-restart Ubuntu.
Menginstal Guest Additions memiliki banyak keuntungan seperti mengadopsi resolusi layar (ukuran jendela Anda adalah resolusi sistem, yaitu tidak ada scrollbar), mode mouse yang mudah (tidak perlu menekan tombol perintah kiri untuk melepaskan kursor mouse) dan, apa yang kita cari untuk, folder bersama.
II Buat Folder Bersama
Tujuannya adalah untuk mengakses folder bersama, apa cara yang lebih mudah daripada menggunakan sshd atau Samba.
Pilih di menu VitualBox: Perangkat -> Folder Bersama ...
AKU AKU AKU. Pasang Folder Bersama
Pasang folder bersama yang dibuat ke dalam folder dengan izin untuk pengguna Anda. Mari kita buka jendela Terminal di Ubuntu dan:
Buat folder tempat folder bersama dipasang. (Lewati langkah ini jika sudah memiliki folder untuk ini.)
mis. (dalam / tmp)
Dapatkan pengguna Anda uid:
Hasilnya akan seperti:
jadi pengguna saya adalah 1000. Pasang folder yang dibagikan SHARED_FOLDER_NAME ke dalam folder MOUNTED_FOLDER dengan kepemilikan untuk pengguna dengan uid USER_ID sebagai root:
misalnya
Menentukan parameter uid memungkinkan penulisan ke folder bersama untuk pengguna Anda. Folder yang dipasang MOUNTED_FOLDER (mis. / Tmp / share) berisi file dari folder bersama di hard drive Mac Anda. Dimungkinkan juga untuk menulis ke folder share. Secara opsional, folder bersama dapat dipasang secara otomatis pada permulaan mesin virtual. Tambahkan baris berikut ke file / etc / fstab (sebagai root, mis. Sudo vim / etc / fstab):
misalnya
di mana nilai uid dan gid dapat ditemukan di output dari perintah id (lihat langkah 2 untuk contoh terperinci). Folder bersama akan tersedia juga setelah restart mesin virtual.
Sumber: http://www.valibuk.net/2009/03/accessing-mac-os-x-harddrive-from-ubuntu-in-virtualbox-via-share-folders/
sumber
OS Host : macOS
VM (tamu) OS : Ubuntu Server 16.04.5 LTS
VirtualBox v5.2.18
OS host dan OS tamu harus memiliki pengguna yang sama (lebih lanjut dalam teks: nama pengguna ).
Tahap 1: Instal Penambahan Tamu VirtualBox :
1.1. Temukan Penambahan Tamu VirtualBox,
1.2. Mulai VM
1.3. Klik ikon CD di bilah tugas kanan bawah
1.4. Pilih "Pilih disk image ..." "dan cari VBoxGuestAdditions.iso
1.5. Dalam tipe terminal tamu (Anda juga dapat melakukan ini dari terminal host jika Anda memasukkan SSH ke dalamnya):
Tahap 2: Pengaturan Folder Bersama:
2.1. Buat aturan di VM:
Settings > Shared Folders
Add new port forwarding rule
tombol hijau di kanan atas jendela.Auto-mount
danMake Permanent
opsi2.2. Untuk memasang folder bersama pada
/opt
Anda harus membuatshared_folder_dir
subfolder dan mengatur izin yang sesuai untuk itu:2.3. Tambahkan nama pengguna ke grup vboxsf :
2.4. Reboot VM untuk menerapkan perubahan:
Tahap 3: Pemasangan otomatis
host_folder
ke/opt/shared_folder_dir
:3.1. Ubah VM /etc/rc.local:
dan tempatkan tepat di atas
exit 0
:3.2. Reboot VM untuk menerapkan perubahan:
Lihat juga
sumber
Dari /ubuntu//a/171357/476506
Perintah di atas akan memberikan akses ke folder bersama untuk "pengguna".
sumber