Memasang image drive VirtualBox (vdi)?

88

Apakah mungkin untuk memasang image drive VirtualBox (.vdi) sehingga konten dapat dilihat di Nautilus dll?

Saya memiliki windows 2000 .vdi yang tidak bisa boot ("perangkat boot tidak dapat diakses") setelah memutakhirkan dari VirtualBox 2.x ke 3.1.6. Saya percaya detail drive IDE telah berubah dan yang perlu saya lakukan adalah mengakses image drive internal dan mengedit Windows boot.iniuntuk menunjuk ke lokasi baru.

matt wilkie
sumber
1
Jika file .vdi dan .img Anda berisi lebih dari 1 partisi, ini sangat berguna: browse-img-tanpa-pemasangan
user2689749

Jawaban:

56

Anda dapat mengkonversi ke gambar standar dan kemudian memasangnya.

VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img

Kemudian

mount -t ext3 -o loop,rw ./ubuntu.img /mnt

Anda harus TAHU jenis sistem file, ext3dalam hal ini. Setelah dipasang, masuk dan sunting dengan editor pilihan Anda. Jangan bingung file di dalam /mntlokasi dengan host yang berjalan, atau itu akan menjadi buruk.

Untuk memeriksa rincian tentang file VDI, jalankan: VBoxManage showhdinfo ubuntu.vdi.

Sumber: [ASK] Buka .vdi dengan manajer arsip? - ubuntuforums.org

Vojtech Trefny
sumber
4
Specilly berguna dalam situasi seperti ini. OP akan dapat bekerja pada salinan menjaga yang asli sebagai cadangan.
Javier Rivera
7
Hati-hati melakukan ini dengan file .vdi berukuran dinamis. Konversi ke .img akan memaksa file gambar menjadi sebesar ukuran logis disk, itulah sebabnya pendekatan ini berfungsi, tetapi mungkin jauh lebih besar daripada file .vdi. Lihatlah output dari VBoxManage showhdinfo [your vdi file]jika Anda tidak yakin.
Jack O'Connor
1
-1, stwissel , dan jawaban Maxime R. memberikan solusi - ini adalah solusi yang adil, tetapi bukan jawaban terbaik untuk pertanyaan
STW
3
Jika gambar memiliki tabel partisi (seperti kebanyakan drive), maka Anda harus menggabungkan jawaban ini dengan yang ini untuk me-mount partisi individual.
bain
1
Tidak bekerja Terus mendapatkan kesalahan pemasangan tipe fs salah. Saya mencoba ext3 dan ext2 dan ext4. Kotak virtual mengatakan tipe hd fs adalah ext4.
Joshua Robison
86

Gunakan qemu-nbd, prosesnya dijelaskan di serverfault dan di blog ini .

Pada dasarnya, Anda harus menginstal qemujika perlu:

sudo apt-get install qemu

Maka Anda perlu memuat modul perangkat blok jaringan :

sudo rmmod nbd
sudo modprobe nbd max_part=16

Lampirkan gambar .vdi ke salah satu nbd yang baru saja Anda buat:

sudo qemu-nbd -c /dev/nbd0 drive.vdi

Sekarang Anda akan mendapatkan perangkat blok / dev / nbd0, bersama dengan beberapa node perangkat / dev / nbd0p *.

sudo mount /dev/nbd0p1 /mnt

Setelah selesai, unmount semuanya dan lepaskan perangkat:

sudo qemu-nbd -d /dev/nbd0
Maxime R.
sumber
Saya ingin mencatat bahwa max_part=16tampaknya menjadi bagian yang kritis. Tanpa itu Anda tidak akan melihat /dev/nbd0pXfile apa pun , meskipun perangkat utama akan berfungsi dengan baik. Periksa diskusi berikut di forum Gentoo untuk melihat orang-orang menghadapi masalah ini.
firegurafiku
Semua jawaban bekerja sampai batas tertentu tetapi ini adalah favorit saya dan harus diterima. clonehd melakukan pekerjaan tetapi menggandakan persyaratan penyimpanan. virtualbox-sekering sangat ideal tetapi meskipun Anda masih bisa mendapatkannya, itu tidak berhasil ke repo dalam rilis modern OS.
Hatoru Hansou
2
Ini bekerja dengan baik. Perhatikan bahwa penginstalan dan qemu-kvmbukannya qemumungkin berfungsi juga. Itu berlaku untuk saya di Ububtu 16.04 saya, dan hanya menginstal 23MB dan 13 dependensi daripada 230MB dan banyak lagi dependensi untuk instalasi qemu lengkap.
mivk
2
Saya ingin menambahkan yang tampaknya sudo partprobeperlu dijalankan dengan kernel yang lebih baru sehingga /dev/nbd0p*dibuat di Debian / Ubuntu ( bugs.debian.org/cgi-bin/bugreport.cgi?bug=824553 ).
Kai
1
Ini seharusnya jawaban yang diterima !! Vdi saya terlalu besar untuk dikonversi menjadi .iso di hard drive saya. Setelah berjuang sebentar, saya menggulir ke bawah untuk melihat apakah ada metode lain yang menggunakan Vdi secara langsung. Yang ini sederhana. (Catatan: qemu membutuhkan sekitar 300MB bagi kita yang peduli dengan pengisian hard drive kita.)
psitae
35

Sepertinya vdfuse adalah alat yang Anda cari. Itu ada di repositori Ubuntu. Jika Anda ingin mengkompilasi sendiri (sumber 2010), Anda juga dapat melakukannya .

Namun bagi kebanyakan dari kita, intinya adalah:

sudo apt-get install virtualbox-fuse

Tampaknya sekarang mendukung vdi dinamis juga.

Dan untuk me-mount .vdifile dalam /mntdir gunakan perintah:

sudo vdfuse -a -f /path-to-vdi-file /mnt

Seluruh disk akan dipasang dengan partisi Partition1, Partition2format penamaan. Kemudian file-file itu dapat di-mount loop. Sebagai contoh,

sudo mount -o loop /mnt/Parition1 /mountpoint
stwissel
sumber
1
@mattwilkie: Perbedaannya sekarang: tidak ada kompilasi manual yang diperlukan lagi
stwissel
1
Sama sama. Duduk di layar / keyboard yang tepat alih-alih mematuk glas membuat semua perbedaan :-)
stwissel
5
Ini tidak tersedia dalam 14,04.
int_ua
2
Orang dapat mengunduhnya dari sini: sourceforge.net/projects/vdfuse/?source=typ_redirect dan berfungsi (pada 15.04)
sup
4
Tidak lagi berlaku untuk 16,10, paket tidak ada lagi.
Piskvor
14

Atur disk sebagai master sekunder untuk OS virtual lain, lalu boot ke OS (virtual) ini dan Anda dapat memasangnya.

Langkah 1: Dengan asumsi Anda memiliki os virtual (katakanlah Ubuntu 16.04) sudah diinstal dalam kotak Virtual, tambahkan penyimpanan baru dari pengaturan os virtual itu. masukkan deskripsi gambar di sini

Langkah 2: Jelajahi file Vdi yang ingin Anda akses dan pilih.

Langkah 3: Masuk ke OS virtual.

Langkah 4: Disk virtual mungkin akan tersedia di dalam OS. Jika tidak, ikuti langkah 5

Langkah 5: Di dalam OS virtual, gunakan Gparted dan periksa disk. dan memastikan disk berjenis yang dapat diakses oleh OS virtual. Jika tidak, Anda mungkin harus mengedit disk, tetapi kemudian Anda akan kehilangan konten yang ada.

Josef
sumber
1
Sebagai catatan, pada 2016 itu tidak akan berhasil
Paulo Pedroso
1
Ia bekerja di ubuntu 16.04.
Sharun
ini benar-benar satu-satunya solusi ketika Anda perlu melakukan perubahan dan kemudian kembali menggunakannya, tidak dapat membuat rw bekerja dengan vdfuse
DuBistKomisch
7

Saya belum menguji diri saya tetapi ada modul sekering untuk memasang mereka ( vdfuse), periksa halaman berikut:

Harap dicatat bahwa menggunakannya untuk akses tulis berisiko.


Pemakaian:

$ ./vdfuse-v<version> -h
USAGE: ./vdfuse [options] -f image-file mountpoint
   -h   help
   -r   readonly
   -t   specify type (VDI, VMDK, VHD, or raw; default: auto)
   -f   VDimage file
   -a   allow all users to read disk
   -w   allow all users to read and write to disk
   -g   run in foreground
   -v   verbose
   -d   debug

Untuk memasang gambar secara langsung menggunakan nama filenya:

$ ./vdfuse-v<version> -f image.vdi /mnt/vdi
$ mount -o loop /mnt/vdi/Partition1 /mnt/WindowsXP

Untuk memasang disk mesin (termasuk foto):

$ ./vdautomount-<version> -p /path/to/vdfuse WinXP /mnt/vdi
$ mount -o loop /mnt/vdi/Partition1 /mnt/WindowsXP
João Pinto
sumber
Tidak lagi relevan karena utilitas ini tidak didukung.
Evan Carroll
3

Bukan apa yang Anda minta, tetapi jika itu hanya masalah mendapatkan file dari vdi , dan Anda menginginkan solusi yang sangat cepat :

  1. Jalankan server ssh di host Anda ( apt-get install openssh-server && service ssh restart)
  2. Gunakan VirtualBox untuk membangun mesin virtual dari file vdi yang ada, lalu boot mesin virtual itu. (Saya baru saja menyimpan Network Adapter (NAT) default saat membangun VM.)
  3. Di dalam mesin virtual, sftp ke host Anda. ( sftp hostuser@hostip)
  4. Dalam sesi sftp, putsebanyak file ke host yang Anda butuhkan.
JellicleCat
sumber
1
Peretasan yang buruk, tetapi jika Anda berada di tempat yang sempit, itu akan menyelesaikan pekerjaan Anda.
Piskvor
Satu masalah mungkin bahwa mesin saat ini tidak bisa boot dengan benar sehingga Anda harus memperbaiki masalah itu terlebih dahulu dan itu berarti Anda tidak dapat melakukannya dari dalam. Juga menggunakan SSH dengan OS virtualbox Anda adalah cara untuk menyalin file sekitar. Jauh lebih cepat daripada mencoba berbagi disk.
Alexis Wilke
2

Seperti Vojtech Trefny sebutkan di atas,

1) pertama-tama konversikan VDI Anda -> IMG

VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img

2) Kemudian pasang IMG

mount -t ext3 -o loop,rw ./ubuntu.img /mnt

3) Namun, saat saya mendapat pesan kesalahan ini:

mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

dan dmesg berkata:

[3105578.013671] EXT4-fs (loop0): VFS: Can't find ext3 filesystem

Anda perlu memeriksa struktur partisi .img:

fdisk -l ubuntu.img

Disk ubuntu.img: 21.0 GB, 20971520000 bytes
255 heads, 63 sectors/track, 2549 cylinders, total 40960000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf45bc910

   Device Boot      Start         End      Blocks   Id  System
ubuntu.img1   *        2048    12582911     6290432   83  Linux
ubuntu.img2        12584958    16775167     2095105    5  Extended
ubuntu.img3        16775168    40959999    12092416   83  Linux
ubuntu.img5        12584960    16775167     2095104   82  Linux swap / Solaris

4) Seperti yang Anda lihat, partisi utama mulai dari byte 16775168. Namun, perhatikan bahwa ukuran sektor adalah 512 byte, jadi Anda perlu melipatgandakan hasilnya 16775168 x 512 = 8588886016 sehingga Anda perlu mengimbangi mount seperti ini:

mount -t ext3 -o loop,rw,offset=8588886016 ./ubuntu.img /mnt

5) Sebenarnya ini tidak berhasil bagi saya jika sistem file kotor setelah diubah ukurannya. Dalam hal ini saya selanjutnya melakukan ini:

dd if=ubuntu.img of=ubuntu.disk bs=512 skip=16775168 count=12092416
e2fsck ubuntu.disk
mount ubuntu.disk /mnt
PHZ.fi-Pharazon
sumber
1
Ini bukan jawaban untuk pertanyaan itu. Anda memiliki masalah lain - gambar yang rusak. Anda harus menjawab sendiri pertanyaan baru.
Evan Carroll
Ini memperluas jawaban sebelumnya yang mencakup kasus kesalahan. Gambar rusak adalah salah satu kasus penggunaan. +1 untuk banyak trik baru.
FractalSpace