QEMU unterstützt Multiboot nicht nativ. Stattdessen müssen Sie ein virtuelles Festplattenimage erstellen und einen Multiboot-Bootloader installieren (z. B. grub) und dann Ihr Multiboot-Image irgendwo auf der Festplatte platzieren (z. B. in einer Datei auf einer Partition).
Was die Installation von grub auf einer virtuellen Festplatte betrifft, gibt es mehrere Möglichkeiten, dies zu tun, aber hier ist der Prozess, den ich immer verwende:
- Verwenden Sie
qemu-img
oder dd if=/dev/zero
, um Ihr HDD-Image zu erstellen.
- Laden Sie eine Linux-Installer-ISO herunter (ich verwende typischerweise Arch Linux).
- Starten Sie
qemu
mit dem leeren HDD-Image und der ISO unter Verwendung von -hda -cdrom -boot once=d
. Der letzte Teil stellt sicher, dass qemu
zuerst von der CD booten wird.
- Verwenden Sie
fdisk
/parted
/etc, um die Festplatte zu formatieren.
- Hängen Sie Ihre Boot-Partition (die, auf der Sie grub installieren möchten) ein und verwenden Sie
grub-install
.
- Hängen Sie sie ab und fahren Sie den Emulator herunter.
Dann können Sie von dem HDD-Image booten und grub oder einen anderen Loader Ihrer Wahl verwenden, um Ihr Multiboot-Image zu booten.
Der Grund, warum Ihr einfaches ASM-Beispiel funktioniert, liegt darin, dass Sie effektiv den MBR emulieren, den ersten Sektor einer typischen Festplatte, damit das BIOS von QEMU davon bootet (speziell erkennt es die Signatur 0xaa55
).