Re: Bhyve Boot Question

From: Stephan Althaus <Stephan.Althaus_at_Duedinghausen.eu>
Date: Sat, 02 Mar 2024 09:31:17 UTC
On 3/1/24 23:29, Pete Wright wrote:
> Hello,
>
> I was hoping someone could help me diagnose an issue I'm having 
> porting some FreeBSD VM's that are currently running on FreeBSD+Bhyve 
> to a SmartOS+Bhyve configuration.
>
> The VM's I'd like to port over use a file back VM raw disk image, this 
> works fine on my FreeBSD hypervisor but SmartOS would prefer zvols.  
> One thing I should note is I'm using bhyveload(8) to boot my VMs.  The 
> guest instances in question are all FreeBSD as well.
>
> To test migrating these VM's to SmartOS I've done the following:
>
> 1. copy the VM image file to the SmartOS hypervisor
>
> 2. use quemu-img convert to convert the raw disk image to a zvol
>
> I did this with one of the official memdisk USB images, and things 
> worked great.  I used the UEFI bootrom flag to bhyve.  Yet when I try 
> to take one of the VM's I want to port things don't work as expected.  
> When I start the VM the console (and VNC display output) just hang on 
> a blank screen.  I suspect its related to the fact that I use 
> bhyveload(8).
>
> Here is what the disk looks like for one of the VM's in question:
> $ gpart  show nda0
> =>      40  41942960  nda0  GPT  (20G)
>        40       216        - free -  (108K)
>       256      1024     1  freebsd-boot  (512K)
>      1280  39844608     2  freebsd-ufs  (19G)
>  39845888   2097112     3  freebsd-swap  (1.0G)
>
> So my question is this - if I am reading the gpart output correctly, I 
> should be able to use the "bios" bootrom option for Bhyve under 
> SmartOS right and it'd find the "freebsd-boot" partition?  Or is 
> something special happening to my VM when I use bhyveload(8) that 
> would cause problems porting it over to a zvol under SmartOS?
>
> Thanks in advance for any insights!
>
> -pete
>
Hello!

If you have a vm with BIOS boot, you have to use an other bootrom file..

UEFI looks like

bootrom,/usr/share/bhyve/firmware/BHYVE_RELEASE.fd

BIOS would be

bootrom,/usr/share/bhyve/firmware/BHYVE_RELEASE_CSM.fd


Alas i am on OpenIndiana, on SmartOs it may differ..

You can get your infos via pkg commands like this:

# pkg list|grep bhy
system/bhyve 0.5.11-2024.0.0.22024      i--
system/bhyve/firmware 20230801-2024.0.0.0        i--
system/library/bhyve 0.5.11-2024.0.0.22024      i--
system/zones/brand/bhyve 0.5.11-2024.0.0.5618       i--

# pkg contents system/bhyve/firmware
PATH
usr/share/bhyve
usr/share/bhyve/firmware
usr/share/bhyve/firmware/BHYVE.fd
usr/share/bhyve/firmware/BHYVE_CSM.fd
usr/share/bhyve/firmware/BHYVE_DEBUG.fd
usr/share/bhyve/firmware/BHYVE_DEBUG_CSM.fd
usr/share/bhyve/firmware/BHYVE_RELEASE.fd
usr/share/bhyve/firmware/BHYVE_RELEASE_CSM.fd
usr/share/bhyve/firmware/BHYVE_VARS.fd

HTH

Regards,

Stephan