Jak zamontować plik .vhd?

11

Używam 13.04 Raring amd64 i muszę zamontować plik .vhd na moim Ubuntu . Zaglądałem na ten temat i odkryłem, że pakiet bezpieczników virtualbox jest odpowiedzią.

Ale pakiet został usunięty z repozytorium apt. Czy jest jakiś sposób na zainstalowanie pakietu w / 13.04? czy jest jakaś alternatywa dla virtualbox-fuse?

Younggun Kim
źródło
Zrobiłem to samo, a moje wyniki wyszukiwania zakończyły się tym, że można przekonwertować vdi na surowy obraz
zeitue
gwizd. to nie jest dobre rozwiązanie, gdy plik vhd lub vdi może być zbyt duży, aby zrobić kopię jako surowy obraz
Joshua Robison
1
Więc jeśli zainstaluję virtualbox, mogę użyć polecenia vdfuse?

Odpowiedzi:

4
sudo apt-get install virtualbox-fuse
sudo mkdir /mnt/vhd-disk/
sudo vdfuse -f disk.vhd /mnt/vhd-disk/
sudo mount -o loop  /mnt/vhd-disk/Partition1 /mnt/partition1

Pamiętaj, że możesz potrzebować dodatkowych opcji, mountaby ustawić uprawnienia według własnych upodobań.

Kevin Smyth
źródło
Działa, możesz pobrać vdfuse ze strony vdfuse.sourceforge.net, na przykład w moim przypadku ostatnia linia to: sudo mount -o -loop / tmp / win / Partition1 / mnt / Windows
MaxV
4

Używając Ubuntu 15.10 (działa również na Ubuntu 16.04), możesz zainstalować vhdimount i tsk (The Sleuth Kit) poprzez:

sudo apt-get install libvhdi-utils sleuthkit

Następnie możesz postępować w następujący sposób:

sudo mkdir -v /mnt/vhd
sudo vhdimount -X allow_root /path/to/file.vhd /mnt/vhd/
sudo mmls -aB /mnt/vhd/vhdi1

Następnie musisz obliczyć przesunięcie z danych wyjściowych w mmlsnastępujący sposób:

echo offset*512 | bc

I aby zakończyć:

sudo mkdir -v /media/${USER}/your/folder
sudo mount -vt ntfs-3g -o ro,noload,offset=offset-found /mnt/vhd/vhdi1 /media/${USER}/your/folder

Zastąp offset-foundswoim przesunięciem. Być może trzeba będzie zmienić typ fs zgodnie z typem fs zawartym w pliku vhd.

Stworzyłem skrypt, więc nie muszę go wpisywać za każdym razem;)

Jiab77
źródło
Montuje to jako tylko do odczytu. Co mogę zrobić, aby zamontować go z uprawnieniami do zapisu? Pominięcie rofor mountnadal powoduje tylko odczyt.
Mads Skjern
Zmień roprzez rwi powinien działać w trybie odczytu / zapisu zamiast odczytu / tylko. vhdimountodwzorowuje na /mnt/vhd/vhdi1tryb odczytu / zapisu, ale następne polecenie mountjest w trybie odczytu / tylko, jeśli nie zostanie określone rwjako opcja
Jiab77
1
W Ubuntu 16.04: Zamiast używać mmls lub fdisk, aby dowiedzieć się o początkowym sektorze partycji, możesz także użyć kpartxdo utworzenia pliku urządzenia wirtualnego, który możesz zamontować bez offsetopcji:sudo kpartx -av /mnt/vhd/vhdi1; sudo mount -vt ntfs-3g -o ro,noload /dev/mapper/loop0p1 /media/${USER}/your/folder
powolny
2

Przeszukując przestrzeń startową Ubuntu, pojawia się:

virtualbox (binarny „virtualbox-fuse” jest częścią pakietu virtualbox)

Oznacza to, że połączyli virtualbox-fusesię w główny pakiet i wystarczy zainstalować virtualbox z repozytorium (tak się kiedyś nazywało virtualbox-ose, więc jeśli potrzebujesz „pełnej” wersji licencjonowanej PUEL, to ci nie pomoże).

Nikt z importu
źródło
2

Wolałbym nie polegać na maszynie wirtualnej, aby uzyskać dostęp do danych na obrazie vhd. Od virtualbox-fusei vdfusenie jest już dostępny w Ubuntu ( nie od dokładnego (12.04) ) i Debiana ( nie od Wheezy (7) ). Byłem w stanie zamontować partycję NTFS osobistego dysku VHD za pomocą blk-tap.

tap-ctl spawnOczywiście wstaw odpowiedni pid . Twój schemat partycjonowania może różnić się od mojego, więc dostosuj odpowiednio.

# apt-get install blktap-utils
# modprobe blktap
# tap-ctl allocate
/dev/xen/blktap-2/tapdev0
# tap-ctl spawn
tapdisk spawned with pid 1234
# tap-ctl attach -m 0 -p 1234
# tap-ctl open -m 0 -p 1234 -a vhd:/full/path/to/image.vhd
# mount /dev/disk/by-id/dm-name-tapdev0p1
# ls -lh do/your/thing with/all/your/files.txt 
# tap-ctl close -m 0 -p 1234
# tap-ctl detach -m 0 -p 1234
# tap-ctl free -m 0

Te kroki pochodzą z wiki projektu Xen .

Moje urządzenie blokowe zostało utworzone o godzinie /dev/xen/blktap-2/blktap0. Z jakiegoś powodu kpartx -anie mapowałbym partycji (szukałem / dev / xen / blktap-2 / tapdev0p1), ale znalazłem, że /dev/disk/by-id/dm-name-tapdev0p1zostały połączone z urządzeniem blokującym partycję.

ebpa
źródło
1

Oto, co dla niego zrobiłem:

Wygląda na to, że nie ma płynnej drogi. Właśnie virtualbox-fusepobrałem plik pakietu deb ze startera. ( tutaj )

Wybrałem 4.1.18, ponieważ mój vbox jest trochę starszy, ale myślę, że będzie działał z najnowszą wersją.

Zainstaluj pakiet za pomocą dpkg -i. Może być konieczne określenie --force-dependsopcji instalacji.

Younggun Kim
źródło
9
Co wtedy Jak zamontować dysk VHD po jego zainstalowaniu?
Enkouyami,
1

Z powodzeniem zamontowałem plik vhdx utworzony za pomocą plików kopii zapasowej systemu Windows 10 w moim systemie operacyjnym Ubuntu 16.04 za pomocą programu o nazwie guestmount

guestmountstrona podręcznika na libguestfs.org .

Należy pamiętać, że uprawnienia będą musiały zostać dostosowane lub zamontować dostęp po sudo -ilub po sudo -swykonaniu.

spakmad
źródło
-1

Możesz użyć VirtualBox.

VirtualBox to bezpłatne rozwiązanie do wirtualizacji x86, które pozwala na uruchomienie szerokiej gamy systemów operacyjnych x86, takich jak Windows, DOS, BSD lub Linux na systemie Linux.

Aby zainstalować VirtualBox pod Ubuntu 13.04, po prostu naciśnij Ctrl+ Alt+ Tna klawiaturze, aby otworzyć Terminal. Kiedy się otworzy, uruchom poniższe polecenia:

sudo apt-get install virtualbox

Po zakończeniu instalacji idź dalej i utwórz nową maszynę wirtualną

wprowadź opis zdjęcia tutaj

Wpisz nazwę. Upewnij się, że wybierasz prawidłowy typ i wersję systemu operacyjnego, który znajduje się w VHD.

wprowadź opis zdjęcia tutaj

Wybierz użyj istniejącego pliku wirtualnego dysku twardego i wyszukaj plik VHD, a następnie kliknij przycisk Utwórz.

wprowadź opis zdjęcia tutaj

Mitch
źródło
2
To pozwoli ci uruchomić system operacyjny na VHD, ale nie pozwoli ci zamontować obrazu w Linuksie.
IQAndreas