Bir VirtualBox sürücü resmi (vdi) bağla?


88

İçeriği Nautilus vs.'de görebilmek için bir VirtualBox sürücü görüntüsünü (.vdi) monte etmek mümkün müdür?

VirtualBox 2.x'ten 3.1.6'ya yükselttikten sonra ("erişilemez önyükleme aygıtı") önyükleme yapmayan bir Windows 2000 .vdi var. IDE sürücü ayrıntılarının değiştiğine ve tek yapmam gereken şeyin dahili sürücü görüntüsüne erişmek ve Windows'u boot.iniyeni konuma işaret etmek üzere düzenlemek olduğuna inanıyorum .


1
.Vdi ve sonra .img dosyanız 1 bölümden fazlasını içeriyorsa, bu çok kullanışlıdır: göz atma-img-olmayan-montaj
user2689749

Yanıtlar:


55

Standart görüntüye dönüştürebilir ve daha sonra monte edebilirsiniz.

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

Sonra

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

ext3Bu durumda , dosya sistemi tipini bilmeniz gerekecektir . Takıldıktan sonra, seçtiğiniz editör ile içeri girin ve düzenleyin. /mntKonum içindeki dosyaları çalışan ana makine ile karıştırmayın , aksi takdirde kötü olur.

VDI dosya hakkında bilgi kontrol etmek için çalıştırın: VBoxManage showhdinfo ubuntu.vdi.

Kaynak: [SOLVED] .vdi arşiv yöneticisi ile açilsin mi? - ubuntuforums.org


4
Böyle bir durumda Specilly yararlı. OP, orijinali yedek olarak saklamak için kopya üzerinde çalışabilecek.
Javier Rivera

7
Bunu dinamik boyutta .vdi dosyalarıyla yapın. .İmg'ye dönüştürmek, görüntü dosyasını diskin mantıksal büyüklüğü kadar büyük olmaya zorlar, bu nedenle bu yaklaşım işe yarar, ancak .vdi dosyasından çok daha büyük olabilir. VBoxManage showhdinfo [your vdi file]Emin değilseniz çıktısına bir bakın .
Jack O'Connor,

1
-1, stwissel ve Maxime R.'nin cevapları çözümler sunar - bu adil bir çözümdür, ancak sorunun en iyi cevabı değildir
STW

3
Görüntü (çoğu sürücüler gibi) bir bölümleme tablosu varsa, o zaman bu cevabı birleştirmek gerekir bu bir bireysel bölümleri monte etmek.
bain

1
Çalışmıyor Fs tipi yanlış montaj hatası almaya devam edin. Ext3 ve ext2 ve ext4'ü denedim. Sanal kutu hd fs tipinin ext4 olduğunu söylüyor.
Joshua Robison,

86

Kullanımı qemu-nbd, işlem serverfault ve bu blogda açıklanmıştır .

Temel olarak, gerekirse yüklemeniz qemugerekir:

sudo apt-get install qemu

Ardından ağ bloğu cihaz modülünü yüklemeniz gerekir :

sudo rmmod nbd
sudo modprobe nbd max_part=16

.Vdi resmini yeni oluşturduğunuz nbd'den birine ekleyin:

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

Şimdi birkaç / dev / nbd0p * bölümleme aygıtı düğümü ile birlikte bir / dev / nbd0 blok aygıtı alacaksınız.

sudo mount /dev/nbd0p1 /mnt

İşiniz bittiğinde, her şeyin bağlantısını kesin ve cihazın bağlantısını kesin:

sudo qemu-nbd -d /dev/nbd0

Bunun max_part=16kritik bir parça gibi göründüğünü not etmek isterim . O olmadan /dev/nbd0pX, ana cihaz düzgün çalışsa da, hiçbir dosya göremezsiniz . İnsanların bu sorunla karşılaştığını görmek için Gentoo forumlarında aşağıdaki tartışmayı inceleyin.
firegurafiku

Tüm cevaplar bir dereceye kadar işe yarar, ancak bu benim favorim ve kabul edilen cevap olmalı. klon işini yapar ancak depolama gereksinimlerini ikiye katlar. virtualbox-fuse idealdir, ancak yine de alabilmenize rağmen, işletim sisteminin modern sürümlerinde depolara ulaşamadı.
Hatoru Hansou 17:15

2
Bu harika çalıştı. qemu-kvmBunun yerine kurulumun qemuda işe yarayabileceğini unutmayın . Benim için Ububtu 16.04'te yaptı ve 230 MB yerine yalnızca 23MB ve 13 bağımlılık yükledim ve tam qemu kurulumu için daha birçok bağımlılık yükledim.
18

2
Debian / Ubuntu'da ( bugs.debian.org/cgi-bin/bugreport.cgi?bug=824553 ) oluşturulabilmesi için sudo partprobeçekirdeklerin daha yeni çekirdeklerle çalıştırılması gerektiğini eklemek isterim . /dev/nbd0p*
Kai,

1
Bu kabul edilen cevap olmalı! Benim vdi sabit diskimdeki bir .iso dönüştürmek için çok büyük. Bir süre uğraştıktan sonra, başka yöntemlerin doğrudan vdi kullanıp kullanmadığını görmek için aşağı kaydırdım. Bu basit. (Not: qemu, sabit disk
dolumuzu

35

Vdfuse , aradığınız araç gibi görünüyor . Ubuntu depolarında. Kendinizi derlemek istiyorsanız (2010 kaynak) bunu da yapabilirsiniz .

Ancak, çoğumuz için basit bir kaynama:

sudo apt-get install virtualbox-fuse

Görünen o ki şimdi dinamik vdi'yi de destekliyor.

Ve .vdidosyayı /mntdir içine monte etmek için aşağıdaki komutu kullanın:

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

Diskin tamamı Partition1, Partition2adlandırma formatı olan bölümlerle birlikte monte edilecektir . Daha sonra bu dosyalar döngü monte edilebilir. Örneğin,

sudo mount -o loop /mnt/Parition1 /mountpoint

1
@ mattwilkie: Şimdi fark: artık el ile derlemeye gerek yok
stwissel

1
Rica ederim.
Glas

5
14.04'te mevcut değil.
int_ua

2
: Bir buradan indirebilirsiniz sourceforge.net/projects/vdfuse/?source=typ_redirect ve (15.04 üzerine) işleri
sup

4
Artık 16.10 için geçerli değil, paket artık mevcut değil.
Piskvor

14

Diski başka bir sanal işletim sistemi için ikincil ana bilgisayar olarak ayarlayın, sonra bu (sanal) işletim sistemine önyükleyin ve takabilirsiniz.

Adım 1: Sanal kutuya kurulmuş sanal bir işletim sisteminizin (varsa Ubuntu 16.04) olduğunu varsayarsak, bu sanal işletim sisteminin ayarlarından yeni bir depolama alanı ekleyin. görüntü tanımını buraya girin

Adım 2: Erişmek istediğiniz Vdi dosyasına göz atın ve onu seçin.

Adım 3: Sanal işletim sistemine giriş yapın.

Adım 4: Sanal disk muhtemelen işletim sistemi içinde mevcut olacak. Değilse, 5. adımı izleyin

Adım 5: Sanal işletim sistemi içinde Gparted kullanın ve diskleri kontrol edin. ve diskin sanal işletim sistemi tarafından erişilebilecek türde olduğundan emin olun. Değilse, diski düzenlemeniz gerekebilir, ancak mevcut içeriği kaybedersiniz.


1
Kayıt için, 2016 yılında işe yaramayacak
Paulo Pedroso

1
Ubuntu 16.04’de çalışıyor.
Sharun

değişiklik yapmanız ve kullanmaya geri dönmeniz gerektiğinde bu gerçekten tek çözümdür, vdfuse ile çalışmaya başlayamadınız
DuBistKomisch

7

Kendimi test etmedim ama onları monte etmek için bir sigorta modülü var ( vdfuse), aşağıdaki sayfayı kontrol edin:

Yazma erişimi için kullanmanın riskli olduğunu lütfen unutmayın.


Kullanımı:

$ ./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

Bir dosyayı doğrudan dosya adını kullanarak monte etmek için:

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

Bir makine diski takmak için (anlık görüntüler dahil):

$ ./vdautomount-<version> -p /path/to/vdfuse WinXP /mnt/vdi
$ mount -o loop /mnt/vdi/Partition1 /mnt/WindowsXP

Artık bu yardımcı program desteklenmediğinden alakalı değil.
Evan Carroll,

3

İstediğin gibi değil, sadece vdi'den dosya çıkartma meselesiyse ve çok hızlı bir çözüm istiyorsan :

  1. Ana makinenizde bir ssh sunucusu çalıştırın ( apt-get install openssh-server && service ssh restart)
  2. Varolan vdi dosyasından bir sanal makine oluşturmak için VirtualBox kullanın, ardından o sanal makineyi önyükleyin. (VM'yi oluştururken yalnızca varsayılan Ağ Adaptörünü (NAT) tuttum.)
  3. Sanal makinede, ana makinenize sftp. ( sftp hostuser@hostip)
  4. Sftp oturumunda, putana bilgisayara istediğiniz kadar dosya ekleyin .

1
Çirkin bir kesmek, ama eğer dar bir yerdeyseniz, işi halledersiniz.
Piskvor

Bir sorun, makinenin şu anda doğru şekilde başlatılmaması olabilir; bu nedenle, önce bu sorunu çözmeniz gerekir ve bu, içinden yapamayacağınız anlamına gelir. Ayrıca, sanal kutu işletim sistemlerinizle SSH kullanmak da dosyaları kopyalamanın yoludur. Bir diski paylaşmaya çalışmaktan çok daha hızlı.
Alexis Wilke

2

Vojtech Trefny'nin yukarıda belirttiği gibi,

1) önce VDI'nızı dönüştürün -> IMG

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

2) Sonra IMG'yi takın

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

3) Ancak, bu hata iletisini aldığımda:

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

ve dmesg dedi ki:

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

.img'nin bölüm yapısını kontrol etmeniz gerekir:

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) Gördüğünüz gibi ana bölüm 16775168 bayttan başlıyor. Bununla birlikte, sektör boyutunun 512 bayt olduğunu unutmayın, bu nedenle sonuçları 16775168 x 512 = 8588886016 ile çarpmanız gerekir;

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

5) Aslında bu, yeniden boyutlandırma sonrası dosya sisteminin kirlenmiş olması durumunda benim için işe yaramadı. Bu durumda bunu daha da yaptım:

dd if=ubuntu.img of=ubuntu.disk bs=512 skip=16775168 count=12092416
e2fsck ubuntu.disk
mount ubuntu.disk /mnt

1
Bu sorunun cevabı değil. Başka bir sorunun vardı - bozuk bir görüntü. Yeni bir soruya kendi kendine cevap vermeliydin.
Evan Carroll,

Bu, hata durumunu kapsayan önceki cevaba kadar genişler. Bozuk görüntü tek kullanımlık bir durumdu. Birçok yeni numara için +1.
FractalSpace
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.