flatcar / Flatcar

Flatcar project repository for issue tracking, project documentation, etc.
https://www.flatcar.org/
Apache License 2.0
731 stars 31 forks source link

Can not boot from PXE on Virtual Enviroments like VMWare Workstation or Virtual Box #586

Open holymoly opened 2 years ago

holymoly commented 2 years ago

Current situation

I setup a PXE Boot Enviroment using netboot.xyz to be used inside my virtualized enviroment (VMWare Workstation, vsphere, Virtual Box). The PXE Boot works and flatcar is booting but hangs during the boot with the messages in the picture. image After the time expires it will loop to the same fault. I don't have that problem using the specific iso or ova files.

Impact

Cannot install via PXE on my virtual enviroment.

Ideal future situation

Option to be able to boot the specifc images via PXE.

**Implementation options

-

Additional information

-

pothos commented 2 years ago

Looks like the wrong boot loder or kernel cmdline argments were used, a PXE boot doesn't look for the A/B partition normally, please check that you have both the initrd=flatcar_production_pxe_image.cpio.gz kernel argument passed and that your boot loader has flatcar_production_pxe_image.cpio.gz as initrd.

A reference for kernel arguments can be found here: https://www.flatcar-linux.org/docs/latest/installing/bare-metal/booting-with-ipxe/

t-lo commented 2 years ago

@holymoly Did you try Pothos's suggestion? Did it work?

jepio commented 2 years ago

I'll report it upstream.

holymoly commented 2 years ago

I was not able to change the setup with the error to run it correctly. It was based on a notboot.xyz enviroment on my ubiquity edge router. I decided to switch to the netboot.xyz docker image to provide everything that is needed for booting. It can be found here https://hub.docker.com/r/linuxserver/netbootxyz After setting this up everything worked perfectly. So the fault was surly on my side but i did not have a deeper look.

pothos commented 2 years ago

There was a recent change in netboot.xyz to use some initrd magic argument instead of the cpio.gz which Flatcar expects. Maybe the Docker image you used successfully was on an older version that didn't have the broken change?

jepio commented 2 years ago

Reported here https://github.com/netbootxyz/netboot.xyz/issues/1070

holymoly commented 2 years ago

Today I tested netboot.xyz and flatcar with the reported issue ( netboot.xyz release 2.0.5.5) https://github.com/netbootxyz/netboot.xyz/issues/1070

I still have the same issue when I boot flatcar in VMWare Workstation. netboot.xyz uses the following configuration.

#!ipxe

# Flatcar Container Linux
# https://kinvolk.io/flatcar-container-linux/
# For further info on:
# iPXE and flatcar Container Linux: https://docs.flatcar-linux.org/os/booting-with-ipxe/
# Setting up Ignition: https://docs.flatcar-linux.org/os/provisioning/
# 64-bit only

goto ${menu}

:flatcar
set os Container Linux by Flatcar
menu ${os}
item --gap ${os}
item stable ${space} ${os} Stable Channel
item beta ${space} ${os} Beta Channel
item alpha ${space} ${os} Alpha Channel
item edge ${space} ${os} Edge Channel
item ignition_config ${space} Set ignition.config.url: ${ignition.config.url}
choose --default ${menu} menu || goto flatcar_exit
echo ${cls}
goto ${menu} ||
goto flatcar_exit

:stable
:beta
:alpha
:edge
set release ${menu}
set base-url http://${release}.release.flatcar-linux.net/amd64-usr/current
kernel ${base-url}/flatcar_production_pxe.vmlinuz ${flatcar_firstboot} ${flatcar_params} flatcar.autologin=tty1 flatcar.autologin=ttyS0 initrd=flatcar_production_pxe_image.cpio.gz ${cmdline}
initrd ${base-url}/flatcar_production_pxe_image.cpio.gz
boot
goto flatcar_exit

:ignition_config
echo -n Please set Ignition URL: && read ignition.config.url
set flatcar_params ignition.config.url=${ignition.config.url}
set flatcar_firstboot flatcar.first_boot=1
clear menu
goto flatcar

:flatcar_exit
clear menu
exit 0

As there suggested by @pothos I checked the initrd configuration and it looks ok to me. Am I missing something regarding the boot loader?

jepio commented 2 years ago

Can you switch to UEFI boot in VMware Workstation? I see that BIOS boot is still broken in netboot.xyz, while UEFI boot works correctly.

jepio commented 2 years ago

There is an error in the boot log when using BIOS:

[    0.932433] Initramfs unpacking failed: invalid magic at start of compressed archive
holymoly commented 2 years ago

UEFI works perfectly. Would the problem with the unpacking in Bios mode be a Issue for flatcar or for netboot?

Thanks alot for the help!