Wie mounte ich eine .vhd-Datei?

11

Ich verwende 13.04 Raring amd64 und muss eine .vhd-Datei auf meinem Ubuntu mounten . Ich habe darüber gegoogelt und festgestellt, dass das Virtualbox-Fuse-Paket die Antwort ist.

Das Paket wurde jedoch aus dem apt-Repository gelöscht. Gibt es eine Möglichkeit, das Paket mit 13.04 zu installieren? oder gibt es eine alternative zur virtualbox-sicherung?

Younggun Kim
quelle
Ich habe genau das Gleiche getan und meine Suchergebnisse endeten damit, dass Sie den vdi in ein Rohbild konvertieren konnten
zeitue
Boo. Das ist keine gute Lösung, wenn eine VHD- oder VDI-Datei viel zu groß sein kann, um ein Duplikat als Rohbild zu erstellen
Joshua Robison,
1
Wenn ich virtualbox installiere, kann ich den Befehl vdfuse verwenden?

Antworten:

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

Beachten Sie, dass Sie möglicherweise zusätzliche Optionen benötigen mount, um Berechtigungen nach Ihren Wünschen festzulegen.

Kevin Smyth
quelle
Es funktioniert, Sie können vdfuse von vdfuse.sourceforge.net herunterladen. In meinem Fall lautete die letzte Zeile beispielsweise: sudo mount -o -loop / tmp / win / Partition1 / mnt / Windows
MaxV
4

Mit Ubuntu 15.10 (funktioniert auch unter Ubuntu 16.04) können Sie vhdimount und tsk (The Sleuth Kit) über Folgendes installieren:

sudo apt-get install libvhdi-utils sleuthkit

Dann können Sie wie folgt vorgehen:

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

Als nächstes müssen Sie den Versatz aus der Ausgabe mmlswie folgt berechnen :

echo offset*512 | bc

Und zum Schluss:

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

offset-foundDurch Ihren Versatz ersetzen . Möglicherweise müssen Sie auch den fs-Typ entsprechend dem in Ihrer vhd-Datei enthaltenen fs-Typ ändern.

Ich habe ein Skript erstellt, damit ich es nicht jedes Mal eingeben muss;)

Jiab77
quelle
Dies macht es schreibgeschützt. Was kann ich tun, um es mit Schreibberechtigungen bereitzustellen? Das Weglassen von rofor mountführt zu einem schreibgeschützten Ergebnis.
Mads Skjern
Ändern Sie rodurch rwund das sollte in Lesen / Schreiben statt Lesen / Nur laufen. vhdimountZuordnungen /mnt/vhd/vhdi1im Lese- / Schreibmodus, aber der nächste Befehl mountist im Lese- / Nur- Modus, wenn Sie dies nicht rwals Option angeben
Jiab77
1
In Ubuntu 16.04: Anstatt mmls oder fdisk zu verwenden, um sich über den Startsektor der Partition zu informieren, können Sie auch kpartxeine virtuelle Gerätedatei erstellen, die Sie ohne offsetOption mounten können :sudo kpartx -av /mnt/vhd/vhdi1; sudo mount -vt ntfs-3g -o ro,noload /dev/mapper/loop0p1 /media/${USER}/your/folder
slowhand
2

Beim Durchsuchen des Launchpad-Bereichs von Ubuntu wird Folgendes angezeigt:

virtualbox (Die binäre 'virtualbox-fuse' ist Teil des virtualbox-Pakets)

Dies bedeutet, dass sie virtualbox-fusein das Hauptpaket integriert wurden und Sie nur die Virtualbox aus dem Repository installieren müssen (dies wurde früher genannt virtualbox-ose. Wenn Sie also die PUEL-lizenzierte "Vollversion" benötigen, hilft Ihnen dies nicht weiter.)

Niemand von Bedeutung
quelle
2

Ich würde es vorziehen, mich nicht auf eine VM zu verlassen, um auf Daten auf einem VHD-Image zuzugreifen. Da virtualbox-fuseund vdfuseist nicht mehr verfügbar in Ubuntu ( nicht seit genau (12.04) ) und Debian ( nicht seit Wheezy (7) ). Ich konnte die NTFS-Partition einer persönlichen VHD mit mounten blk-tap.

Setzen Sie tap-ctl spawnnatürlich die entsprechende PID ein . Ihr Partitionierungsschema kann sich von meinem unterscheiden. Passen Sie es daher entsprechend an.

# 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

Diese Schritte stammen aus dem Wiki des Xen-Projekts .

Mein Blockgerät wurde am erstellt /dev/xen/blktap-2/blktap0. Aus irgendeinem Grund wurden kpartx -aPartitionen nicht zugeordnet (ich suchte nach / dev / xen / blktap-2 / tapdev0p1), aber ich stellte fest, dass /dev/disk/by-id/dm-name-tapdev0p1diese mit dem Blockgerät für die Partition verknüpft waren.

ebpa
quelle
1

Folgendes habe ich dafür getan:

Es scheint nicht, dass es einen reibungslosen Weg gibt. Ich habe gerade die virtualbox-fuseDeb-Paketdatei vom Launchpad heruntergeladen . ( hier )

Ich habe 4.1.18 ausgewählt, weil meine vbox etwas älter ist, aber ich denke, es würde mit der neuesten Version funktionieren.

Installieren Sie das Paket mit dpkg -i. Möglicherweise müssen Sie die --force-dependsOption für die Installation angeben .

Younggun Kim
quelle
9
Dann was? Wie mounten Sie eine VHD nach der Installation?
Enkouyami
1

Ich habe erfolgreich eine .vhdx-Datei, die ich mit Windows 10-Sicherungsdateien erstellt habe, mit einem Programm namens auf mein Ubuntu 16.04-Betriebssystem gemountet guestmount

guestmountHandbuchseite auf libguestfs.org .

Beachten Sie, dass die Berechtigungen angepasst werden müssen oder dass der Mount-Zugriff nach sudo -ioder sudo -snach der Ausführung erforderlich ist.

spakmad
quelle
-1

Sie können VirtualBox verwenden.

VirtualBox ist eine kostenlose x86-Virtualisierungslösung, mit der eine Vielzahl von x86-Betriebssystemen wie Windows, DOS, BSD oder Linux auf einem Linux-System ausgeführt werden können.

Um VirtualBox unter Ubuntu 13.04 zu installieren, drücken Sie einfach Ctrl+ Alt+ Tauf Ihrer Tastatur, um das Terminal zu öffnen. Führen Sie beim Öffnen die folgenden Befehle aus:

sudo apt-get install virtualbox

Sobald die Installation abgeschlossen ist, erstellen Sie eine neue virtuelle Maschine

Geben Sie hier die Bildbeschreibung ein

Geben Sie den Namen ein. Stellen Sie sicher, dass Sie den richtigen Typ und die richtige Version des Betriebssystems in der virtuellen Festplatte auswählen.

Geben Sie hier die Bildbeschreibung ein

Wählen Sie eine vorhandene virtuelle Festplattendatei verwenden, suchen Sie nach Ihrer VHD-Datei und klicken Sie dann auf Erstellen.

Geben Sie hier die Bildbeschreibung ein

Mitch
quelle
2
Auf diese Weise können Sie das Betriebssystem ausführen, das sich auf der virtuellen Festplatte befindet, das Image kann jedoch nicht unter Linux bereitgestellt werden.
IQAndreas