vdi-Image auf Festplatte schreiben
-
- Beiträge: 17
- Registriert: 03.11.2020 18:35:57
vdi-Image auf Festplatte schreiben
Hallo,
ich möchte ein VDI-Image (VBox) mit einer Debian 10.9-Installation auf eine SSD kopieren, um diese dann native zu starten.
Dabei möchte ich möglichst nur die belegten Bereiche der ext4-Partition kopieren und nicht auch die unbenutzten Bereiche schreiben, also im Prinzip auf Dateiebene bleiben. Andererseits sollen aber auch die Partitions-Kennungen UUIDs übertragen werden, damit ich nicht die fstab und/oder grub anpassen muss.
Gibt es dafür eine möglichst einfache Lösung?
Den MBR kann ich mir mit dd kopieren. Das bekomme ich hin. Für den Rest habe ich aber keine Lösung gefunden.
ich möchte ein VDI-Image (VBox) mit einer Debian 10.9-Installation auf eine SSD kopieren, um diese dann native zu starten.
Dabei möchte ich möglichst nur die belegten Bereiche der ext4-Partition kopieren und nicht auch die unbenutzten Bereiche schreiben, also im Prinzip auf Dateiebene bleiben. Andererseits sollen aber auch die Partitions-Kennungen UUIDs übertragen werden, damit ich nicht die fstab und/oder grub anpassen muss.
Gibt es dafür eine möglichst einfache Lösung?
Den MBR kann ich mir mit dd kopieren. Das bekomme ich hin. Für den Rest habe ich aber keine Lösung gefunden.
Re: vdi-Image auf Festplatte schreiben
Häh? Das VDI-Image alleine nützt Dir gar nichts. Wenn Du eine Virtualbox-VM auf ein anderes LW umziehen willst, kopiere den ganzen Ordner.
Dann musst Du halt die VM "Hinzufügen".
Rolf
Dann musst Du halt die VM "Hinzufügen".
Rolf
-
- Beiträge: 17
- Registriert: 03.11.2020 18:35:57
Re: vdi-Image auf Festplatte schreiben
Soweit ich weiß, beinhaltet die .VDI-Datei alle Daten der virtuellen Festplatte oder sogar Festplatten, sofern keine Snapshots angelegt worden sind.
Diesen Festplatteninhalt möchte ich auf eine SSD kopieren, um diese dann nativ, also ohne VBox zu starten. Das System soll anschließend nicht mehr in einer VM laufen, sondern direkt auf die Hardware zugreifen.
Diesen Festplatteninhalt möchte ich auf eine SSD kopieren, um diese dann nativ, also ohne VBox zu starten. Das System soll anschließend nicht mehr in einer VM laufen, sondern direkt auf die Hardware zugreifen.
Re: vdi-Image auf Festplatte schreiben
Du kannst natürlich einfach die .vdi-Datei kopieren. Ich wette aber die Datei alleine wird Dir nichts nützen. Probiers halt aus.
Rolf
Code: Alles auswählen
cp quelle ziel
Re: vdi-Image auf Festplatte schreiben
Öffne mal ein Terminal und schau dir VBoxManage an. Das Modul clonemedium sollte das können was du suchst.
-
- Beiträge: 17
- Registriert: 03.11.2020 18:35:57
Re: vdi-Image auf Festplatte schreiben
Mit "VBoxManage clonemedium" kann man nach meiner Recherche ein RAW-Image erzeugen. Das ist dann allerdings so groß, wie die virtuelle Festplatte. Ich hatte gehofft, dass es eine Möglichkeit gibt, nur in etwa den Platz zu verbrauchen, den die Nutzdaten benötigen, also ohne die ungenutzten Bereiche.
Re: vdi-Image auf Festplatte schreiben
Code: Alles auswählen
VBoxManage modifymedium disk ./NWABAP75101.vdi –compact
Eventuell willst du im Gast vorher fstrim oder zerofree laufen lassen. (Oder schlicht große Dateien mit Nullen (fallocate -l XG) anlegen bis aller Platz belegt ist und dann wieder löschen.)
Sonst gibt es natürlich für jedes Dateisystem tools um nur das Dateisystem zu kopieren. Dazu kommt die Partitionstabelle. Aber dazu musst du erst mal an den Inhalt der VDI kommen, was erst mal kompliziert ist. Viel schlimmer willst du ja am Ende vermutlich wider ne VDI haben. Einfach ist da sicher nichts.
rot: Moderator wanne spricht, default: User wanne spricht.
-
- Beiträge: 17
- Registriert: 03.11.2020 18:35:57
Re: vdi-Image auf Festplatte schreiben
Das kannte ich, aber das verkleinert leider nur den Platzverbauch des vdi-Images.wanne hat geschrieben:29.05.2021 07:41:46Code: Alles auswählen
VBoxManage modifymedium disk ./NWABAP75101.vdi –compact
Jo, das Problem ist, an den Inhalt des VDIs zu kommen, ohne es zuvor in ein RAW-Image zu konvertieren und damit den vollen Platz der enthaltenen Festplatten auf der realen Festplatte zu belegen. Mit quemu-nbd scheint das aber möglich zu sein, wie ich inzwischen herausgefunden habe.Aber dazu musst du erst mal an den Inhalt der VDI kommen, was erst mal kompliziert ist. Viel schlimmer willst du ja am Ende vermutlich wider ne VDI haben. Einfach ist da sicher nichts.
https://www.robert-sperling.de/virtualb ... t-mounten/
Damit kann man die Festplatte oder auch nur eine Partition mounten.
Für die Kopie ist dann aber immer noch ein Tool notwendig, welches auf Dateiebene "alles" (Dateien + Attribute + ???) kopieren kann.
Das sollte mit rsync gehen, was ich aber noch nie benutzt habe.
Mit dieser Anleitung hier sollte es aber gehen:
https://wiki.ubuntuusers.de/Ubuntu_umzi ... c-kopieren
Jemand, der quemu und rsync regelmäßig benutzt, schüttelt vermutlich den Kopf, aber da ich die Programme beide nicht kenne und in der Terminaleingabe ungeübt bin, bietet beides viel Raum für Fehler und entsprechend groß ist mein innerer Widerstand


Re: vdi-Image auf Festplatte schreiben
Ich verstehe dein Problem anscheinend nicht. Ich hatte gedacht, du willst das Image direkt auf eine SSD schreiben.
Laut https://forums.virtualbox.org/viewtopic ... f1#p444941 lässt sich Virtualbox jedoch nur mit Hilfsmitteln überreden direkt auf ein Gerät zu schreiben, d.h. Exportieren in ein RAW-Image und anschließend dieses Image auf die SSD schreiben.
Outputfile wäre in diesem Fall die SSD-Gerätedatei.https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonemedium hat geschrieben:VBoxManage clonemedium [disk|dvd|floppy] <uuid|inputfile> <uuid|outputfile>
Laut https://forums.virtualbox.org/viewtopic ... f1#p444941 lässt sich Virtualbox jedoch nur mit Hilfsmitteln überreden direkt auf ein Gerät zu schreiben, d.h. Exportieren in ein RAW-Image und anschließend dieses Image auf die SSD schreiben.
-
- Beiträge: 17
- Registriert: 03.11.2020 18:35:57
Re: vdi-Image auf Festplatte schreiben
Ja, genau, ich möchte den Inhalt eines VDIs auf eine SSD kopieren, um anschließend von dieser SSD nativ booten zu können, ohne VBox.
Du meintest wahrscheinlich, dass es z.B. so gehen sollte:
Dass das möglich sein könnte, hatte ich bisher nicht so verstanden, aber du schränkst das ja auch selbst ein. Selbst wenn es grundsätzlich möglich wäre, wäre zu klären gewesen, ob das auf Block- oder auf Dateiebene liefe. Auf Blockebene kopiert man zwar alles, aber leider auch alle leeren Bereiche, was insbesondere bei einer SSD Abnutzung bedeutet. Je nach Füllgrad und Größe ist es zudem unnötig langwierig und ineffizient.
Der Umweg über ein RAW-Image würde genauso viel Schreiberei erfordern.
Du meintest wahrscheinlich, dass es z.B. so gehen sollte:
Code: Alles auswählen
VBoxManage clonemedium disk test.vdi /dev/sdb
Der Umweg über ein RAW-Image würde genauso viel Schreiberei erfordern.
-
- Beiträge: 17
- Registriert: 03.11.2020 18:35:57
Re: vdi-Image auf Festplatte schreiben
Zwischenstand:
Ich habe ein VDI mit der oben erwähnten Methode erfolgreich mounten, bzw. anschließen können. Die einzelnen Schritte:
Kopiert habe ich die Sachen (noch) nicht. Mit fsarchiver konnte ich aber Images der einzelnen Partition anlegen.
Mit dd if=/dev/nbd0 of=mbr.bin count=1 bs=512 konnte ich den MBR auslesen.
Außerdem habe ich herausgefunden, dass 7z ein VDI öffnen kann. Darin sind dann wiederum Images der einzelnen Partitionen, die man wiederum intern mit 7z öffnen kann, sodass man alle Dateien präsentiert bekommt. Somit sollte es auch ohne Terminalhackerei möglich sein, sehr einfach Dateien auszulesen.
Leider habe ich es nicht mit 7z unter Linux hinbekommen, aber es ist schon mal gut zu wissen, dass es grundsätzlich geht.
Ich habe ein VDI mit der oben erwähnten Methode erfolgreich mounten, bzw. anschließen können. Die einzelnen Schritte:
Code: Alles auswählen
apt install qemu-utils
#nbd entladen
sudo rmmod nbd
#nbd neu laden
sudo modeprobe nbd
#Image mounten
sudo qemu-nbd -c /dev/nbd0 VBox.vdi
#alle Partitionen anzeigen
lsblk
#Partitionen mounten
sudo mkdir /media/p1
sudo mount /dev/nbd0p1 /media/p1
sudo mkdir /media/p5
sudo mount /dev/nbd0p5 /media/p5
#nbd trennen
sudo qemu-nbd -d /dev/nbd0
Mit dd if=/dev/nbd0 of=mbr.bin count=1 bs=512 konnte ich den MBR auslesen.
Außerdem habe ich herausgefunden, dass 7z ein VDI öffnen kann. Darin sind dann wiederum Images der einzelnen Partitionen, die man wiederum intern mit 7z öffnen kann, sodass man alle Dateien präsentiert bekommt. Somit sollte es auch ohne Terminalhackerei möglich sein, sehr einfach Dateien auszulesen.
Leider habe ich es nicht mit 7z unter Linux hinbekommen, aber es ist schon mal gut zu wissen, dass es grundsätzlich geht.