cloudymax / pxeless

An automated system install and image customization tool for when PXE is not an option, or is not an option yet.
MIT License
108 stars 16 forks source link

[FEATURE] Customize boot parameters #42

Open tyldum opened 1 year ago

tyldum commented 1 year ago

Thanks for continuing this development.

My main goal is to add toram fsck.mode=skip to the boot parameters. I've done this locally, but would like to upstream it, soliciting feedback on a good approach.

The use-case is that we deploy remote sites, where all we know is the BMC IP of the server and no personell on-site. So generating a server-specific ISO with an approproate cloud-init helps us bootstrap the initial infrastructure node before we have machine provisioning established. The BMC is configured to mount and boot the ISO over the network.

Some of these sites are very remote with high latency (up to a second RTT), which poses some challenges. It all seems to work well with these two parameters added.

So before I submit a PR, how would you like these to be added? An arbitrary --kernel-args, or individual switches (--toram, --skip-fsck)?

cloudymax commented 1 year ago

Thanks so much for trying out the project!

I feel that a '--kernel-args' flag that reads a string of space-separated key-value pairs would be the preferred option due to the huge number of potential options that could be supported.

I'm really excited to see how you approached this as it could enable a lot of GPU/Iommu/VFIO options as well 🙌💫

koenvandesande commented 4 months ago

I'm not quite sure where these options need to go. I have a similar need, but maybe needs to go elsewhere on the command-line: I need to add nomodeset to the GRUB options otherwise I get visual corruption on some machines:

menuentry "Try or Install Ubuntu Server" {
    set gfxpayload=keep
    linux   /casper/hwe-vmlinuz   autoinstall nomodeset   ds=nocloud\;s=/cdrom/nocloud/  ---
    initrd  /casper/hwe-initrd
}

Do your --kernel-args need to go in the same location? Or later/elsewhere?