I've been thinking about how bootloader installation is handled, and think I have some good ideas, but would like to run them past the collected wisdom of my fellow derivativists and debian-boot. Feel free to reply to either or both lists; I'm subscribed to both Feel free to reply to either or both lists; I'm subscribed to both. [ debian-boot members: SprezzOS is a Debian derivative aimed at HPC professionals and power users. the following discussion applies to Debian as well, though, and I'd like to feed patches upstream to Debian if this initiative goes through smoothly. ] For as long as I can recall, a multiple disk setup has required selection of a device on which to install some bootloader, typically LILO or GRUB. This has required expert knowledge from the user, because it's impossible for the OS to determine from which device the blackbox BIOS will seek to boot. This is annoying for at least the following reasons: - users might not have any idea what the question is asking, or the ramifications of their selection, - physical topology changes must be reflected in the BIOS configuration - user must select between install to disk sector 0 or a partition, the latter requiring unreliable blocklists last i checked. - devices with cruft in their sector 0 can screw up the boot process if the BIOS selects them for booting Now, UEFI improves the situation somewhat, due to its guaranteed ability to interpret the GPT partition table entries, find an ESP (EFI System Partition) if present (based off GPT GUID), and read the FAT16ish filesystem therein. This doesn't solve problems #1 or #4, though. Instead, in SprezzOS I'd like to install GRUB2's (the only bootloader explicitly supported by SprezzOS) Stages 1 and 1.5 onto all possible physical disks (for this purpose, a hardware-assembled RAID is a physical disk), with no user intervention. This has multiple obvious possible wins and problems: Wins: - No need for user configuration / room for user mistakes - Topology changes are handled without BIOS changes, so long as GRUB is configured exclusively using UUID/WWNs for disk/partition identification (adding a new disk can break the setup, but that's true with the present system, also). - If we lose the device from which we're booting, we can still boot off some other one. If no important partitions were on the lost disk, we'll even be able to run. Losses: - If there's data present in the initial sectors of the disk in some non-recognized format, we might overwrite it. This is also true for the current system, but only applies to the disk the user has specified. - Drives which are slow or unreliable might be selected for boot. This can happen in the current scheme, but only in the event of user selection. - GRUB install / update time is multiplied by the number of drives present - Must detect cases where a partition or partition table information exists where GRUB would be installed (must do this for current case, but only on user-selected drive). Does anyone have thoughts to contribute? What have I overlooked here? I'm sure this idea has been had, and discussed, before. Thanks! --rigorously, nick -- nick black http://www.sprezzatech.com -- unix and hpc consulting to make an apple pie from scratch, you need first invent a universe.
Description: Digital signature