This document discusses various ways to customize a bootloader's behavior based on hardware properties detected at boot time. It presents options for tweaking Grub2 or Syslinux to select different boot options depending on characteristics like the CPU type, virtualization support, or whether the system is running in a hypervisor. Specific examples are provided of using Syslinux modules or Lua scripts to detect properties and adjust the kernel command line accordingly in order to boot different kernels optimized for the detected hardware.