tinkerbell / actions

Suite of Tinkerbell Actions for use in Tinkerbell Workflows
Apache License 2.0
27 stars 42 forks source link

Create action to support fallback for nodes lacking UEFI/netboot #9

Open nicklasfrahm opened 3 years ago

nicklasfrahm commented 3 years ago

Some boards do not support netbooting natively, such as the Rock Pi X. A current workaround is to supply a bootloader USB with the following folder structure:

/dev/sdxy/
└─ efi/
      └─ boot/
            └─ bootx64.efi

The bootx64.efi in this case is the renamed version of ipxe. I barely know anything about netbooting and bootloaders, but I suspect there is a better way.

It would be useful if there was an action, that would configure the boot partition to attempt to PXE boot first (to allow deprovisioning) and then to attempt to boot via the configured hard disk. This feature could be part of rootio, but I suspect that it should be a seperate action.

This would also greatly improve compatibility with devices, that do not have a UEFI to configure boot options, such as older Raspberry Pis or other single board computers.

gianarb commented 3 years ago

It would be useful if there was an action, that would configure the boot partition to attempt

Unfortunately, netbooting is a strict requirement, mainly because you need to netboot in order to run an actions, so if you don't have netbooting capabilities you can't run an action. When testing raspberry pi I did the same as you, I used a USB stick

nicklasfrahm commented 3 years ago

And I completely get that, but my idea is that for the first provisioning you use a well-know SD card image or USB. After that, for regular reboots and deprovisioning, you can use this action to overwrite the well-known boot partition with this action, such that the boot partition will always have the following boot order:

It is basically a compatibility guarantee, that will make sure that these devices are always able to netboot.

thebsdbox commented 3 years ago

I think @detiber may have some experience on this, although it sounds like it may make a good discussion topic.