Virtuelle Festplatte, Bootloader fehlt. Wie bootet man?

Virtuelle Festplatte, Bootloader fehlt. Wie bootet man?

Ich hatte ein Netbook mit einer dreifach partitionierten Festplatte. Auf einer der Partitionen (sagen wir /dev/sda2) hatte ich eine Instanz von Crunchbang Linux installiert. Ich hatte es mit dem Befehl „dd“ (dd if=/dev/sda2 of=<...>) auf einer externen Festplatte gesichert.

Jetzt habe ich das Partitionierungsschema auf diesem Netbook geändert, sodass das Image nicht mehr in die neuen, kleineren Partitionen passt, aber ich wollte mir einige Konfigurationsdateien auf meiner alten Instanz ansehen und habe daher beschlossen, das Roh-Backup in eine VMware-Datei (.vmdk) zu konvertieren, eine VM zu erstellen und die Instanz zu starten.

Aber … es sieht so aus, als ob ich zu diesem Zeitpunkt /boot auf einer separaten Partition (/dev/sda1) hatte, die ich vergessen hatte zu sichern :(. Jetzt bootet die VMware-Instanz nicht, weil sie das Betriebssystem auf der virtuellen Festplatte nicht finden kann.

Gibt es da eine Lösung? Kann ich eine kleine virtuelle Festplatte erstellen, Grub2 und Kernel-Images in der VM darauf installieren und von dort booten? Wie? Alle Ideen sind willkommen!

Antwort1

Erstellen Sie eine Crashbang Linux VM, booten Sie Ihre VM von dort aus und mounten Sie dann entweder das VMDK oder das Original-Backup als sekundäres Volume. Lesen Sie auf Seite 7 des VMWare-Benutzerhandbuchs, wie Sie ein Image als separate Partition mounten.Hier.

Antwort2

Wenn Sie nur einige Dateien nachschlagen müssen, können Sie die .vmdk-Datei problemlos in Ihrem eigenen Linux mounten, ohne dass Sie eine VM benötigen:

 losetup /dev/loop0 /path/to/your/file.vmdk
 losetup -o 32256 /dev/loop1 /dev/loop0
 mount /dev/loop1 /your/mount/point

Der Trick liegt im Offset, in diesem Fall 32256. Dies funktioniert für die erste Partition, aber wenn Sie die erste Partition nicht mounten möchten, müssen Sie nach dem ersten Befehl Folgendes verwenden:fdiskauf dem Loop-Gerät:

 fdisk -l /dev/loop0

Der Offset ist dann das Produkt aus Bytes pro Sektor multipliziert mit dem Anfang der Partition, die Sie mounten möchten.

Wenn Sie es auch booten möchten,denkendass Sie lediglich das /boot-Verzeichnis von einer anderen laufenden Crunchbang-Installation derselben Architektur in Ihr altes Image kopieren müssen, dort chrooten, Grub aktualisieren und los geht‘s. Sie können das von einer Instanz einer Crunchbang-VM aus tun, während diese nicht ausgeführt wird: Speichern Sie einfach das Image der neuen Instanz in einer neuen VMDK-Datei, mounten Sie diese wie die andere, kopieren Sie /boot vom neuen in das alte Image, chrooten Sie in das alte Image, aktualisieren Sie Grub und voilà.

verwandte Informationen