Maybe staring at the code will be helpful (but I doubt it, our bootloader code is not our finest hour). Bootloader config in anaconda involves three distinct dispatcher steps: (1) bootloadersetup. This sets the list of which drives should be considered for installing a bootloader to, picks the preferred one, and looks for EFI system partitions. This step is non-interactive. (2) bootloader. This displays the screen shown at http://docs.fedoraproject.org/en-US/Fedora/13/html/Installation_Guide/s1-x86-bootloader.html and sets variables all over the place based on the UI elements. Most importantly for this discussion, it controls setting which OS options you'll have in the bootloader menu. It does not, however, write any changes to disk. (3) instbootloader. Given all the previous settings, this writes grub.conf and device.map, and runs grub. Or whatever's appropriate for the platform. This step is non-interactive. It is also impossible to follow. You need to know those three steps to understand exactly what is supposed to happen for each of the three bootloader upgrade options. > 1. Create new boot loader configuration > * I believe this is understand, it installs a new grub > stage#1 into the MBR (or partition). > * In the days of lilo and grub, perhaps this offered a > choice of bootloaders? self.dispatch.skipStep("bootloadersetup", skip = 0) self.dispatch.skipStep("bootloader", skip = 0) self.dispatch.skipStep("instbootloader", skip = 0) self.bl.doUpgradeOnly = 0 So, this option will create a completely new grub.conf file and run grub to install itself to wherever you say (mbr, partition, etc). Whatever the kernel's %post script does will have happened before we hit the instbootloader step. > 2. Update boot loader configuration > * does not run grub-install > * When the kernel package is upgraded, it will call > 'new-kernel-pkg' from it's %scripts and this eventually > updates the existing bootloader configuration file (e.g. > grub.conf, yaboot.conf, elilo.conf, zipl.conf). self.dispatch.skipStep("bootloadersetup", skip = 0) self.dispatch.skipStep("bootloader", skip = 1) self.dispatch.skipStep("instbootloader", skip = 0) self.bl.doUpgradeOnly = 1 This option will cause no changes to be written to grub.conf, but grub-install will still be run. Whatever the kernel's %post script does will have happened before we hit the instbootloader step. > 3. Skip boot loader updating > * does not run grub-install > * When the kernel package is upgraded, it will call > 'new-kernel-pkg' from it's %scripts and this eventually > updates the existing bootloader configuration file (e.g. > grub.conf, yaboot.conf, elilo.conf, zipl.conf). self.dispatch.skipStep("bootloadersetup", skip = 1) self.dispatch.skipStep("bootloader", skip = 1) self.dispatch.skipStep("instbootloader", skip = 1) This option will cause anaconda to not do anything involving the bootloader at all. Whatever the kernel's %post script does will still happen, though. Does that shed any light on the subject? Are these three options at all worth keeping? - Chris _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list