Install, Accept, List, Remove and Set New, Current and Old linux kernels in the /boot directory. Inspired by the linux kernel "make install" target, and the /sbin/installkernel shell script.
A profile "~/bootkernel.conf" or "/etc/bootkernel.conf" controls all aspects of bootkernel's behaviour - your chosen naming conventions, whether to maintain symbolic or hard links or neither, which filesystems (if any) need mounting and unmounting, and whether to delete redundant /lib/modules directories when removing the last corresponding kernel.
"Install" copies kernel and other selected files to /boot, adding a ".new" extension.
"Accept" moves current /boot files to ".old" extension, and moves those with ".new" to current,
"List" shows all the kernels in /boot, marked as "new", "old", "current" and "executing" where applicable
"Remove" deletes a specified kernel and associated files from /boot.
"Set" modifies the targets of ".new" ".old" and the implicit .current links if any.
Features
- Behaviour controlled by a profile /etc/bootkernel.conf
- Supports some Grub, rEFInd and UEFI configurations
- Can automatically mount and unmount filesystems to access boot files
- Has "pretend", "ask" and "verbose" modes to reduce mistakes
- Tries to catch common mistakes
- Pure ash/dash shell script works in busybox and normal command line