The initramfs is actually corrupted by the Linux self-decompression mechanism. The decompressed kernel is written (in this case) from address 0x01000000 (16MB) to 0x0210c388 (~33MB). xhyve puts the initramfs at 0x01343000 (19MB), which gets overwritten.
Adding a sufficient offset to ramdisk_start in kexec.c allows the installer to start successfully. I have not tested it further.
I checked what qemu does. It apparently puts the initrd near the end of the allocated RAM. With 128 MB of memory, the 12MB initrd is put at 0x07fdf573 (~115MB), with 1GB it is put at 0x000000003f395000 (~1011MB).
I attempted to start the Debian installer using the vmlinuz and initrd.img found on here: http://ftp.nl.debian.org/debian/dists/testing/main/installer-amd64/current/images/hd-media/
I used the following command:
Unfortunately the boot process doesn’t go very far because the kernel encounters a corrupt initramfs:
The initramfs is actually corrupted by the Linux self-decompression mechanism. The decompressed kernel is written (in this case) from address 0x01000000 (16MB) to 0x0210c388 (~33MB). xhyve puts the initramfs at 0x01343000 (19MB), which gets overwritten.
Adding a sufficient offset to
ramdisk_start
inkexec.c
allows the installer to start successfully. I have not tested it further.I checked what qemu does. It apparently puts the initrd near the end of the allocated RAM. With 128 MB of memory, the 12MB initrd is put at 0x07fdf573 (~115MB), with 1GB it is put at 0x000000003f395000 (~1011MB).