Arch Linux UEFI Bhyve Setup
Peter Grehan
grehan at freebsd.org
Mon Jan 9 06:28:24 UTC 2017
Hi Vincent,
> Nothing works with UEFI console for me so I think I’m going to stick
> with BIOS-MBR-GRUB for now, unless you have an idea I can try…
The live ISO can be repacked to work with a serial console. The only
complication is that the systemd-boot (aka gummiboot, Arch's UEFI
loader) are embedded in a FAT filesystem image.
The repack steps are:
1. Install the cdrtools-devel package to get mkisofs
2. Extract the contents of the Arch iso into a working directory
# cd /path/to/work_dir
# tar xf /path/to/archlinux-2017.01.01-dual.iso
3. Find the label of the ISO (to be used in the repack)
# isoinfo -d -i /path/to/archlinux-2017.01.01-dual.iso | grep
^Volume\ id
Volume id: ARCH_201701
4. Set up a vnode-backed md for the FAT boot image and mount it
# mdconfig -f EFI/archiso/efiboot.img
# mount_msdosfs /dev/md0 /mnt
5. Edit the config file, adding serial console lines to the 'options' line
# vi /mnt/loader/entries/archiso-x86_64.conf
....
options archisobasedir=arch archisolabel=ARCH_201701 console=tty0
console=ttyS0
6. Unmount the filesystem (updating the FAT filesystem image) and
cleanup the md
# umount /mnt
# mdconfig -d -u 0
7. Repack the ISO, using the volume ID from step 3. Change the
name of the repacked iso to whatever is suitable with the '-o'
parameter.
# mkisofs \
-iso-level 3 \
-V "ARCH_201701" \
-J -joliet-long \
-b isolinux/isolinux.bin -no-emul-boot -c isolinux/boot.cat \
-boot-load-size 4 -boot-info-table \
-eltorito-alt-boot -eltorito-platform 0xEF \
-eltorito-boot EFI/archiso/efiboot.img \
-no-emul-boot \
-o ../arch_repack.iso .
The system can now be booted with a serial console. An example command
line with serial output on the nmdm device is
bhyve \
-c 2 \
-s 0,hostbridge \
-s 3,ahci-cd,/path/to/arch_repack.iso \
-s 10,virtio-net,tap0 \
-l bootrom,/path/to/BHYVE_UEFI_20160526.fd \
-l com1,/dev/nmdm0A \
-s 31,lpc \
-m 2G -H -w \
arch
later,
Peter.
More information about the freebsd-virtualization
mailing list