Bugzilla – Bug 119193
Errors when installing lilo with autoyast on 10.0RC1
Last modified: 2007-10-24 14:12:23 UTC
When telling autoyast on 10.0RC1 to use lilo as bootloader, autoyast fails during the installation with "An error occured during the installation of the bootloader. Do you want to try again?" Looking at the created /mnt/etc/lilo.conf there are two issues: 1) lilo.conf contains a line "default", i.e., without the "= Linux", causing lilo to fail. 2) The <global_entry> <key>append</key> <value>vga=0x0301 apic apm=power-off splash=0</value> </global_entry> part from the profile is ignored, i.e., there is no global append line in lilo.conf. The <kernel_parameters>vga=0x0301 apic apm=power-off splash=0</kernel_parameters> part is considered but those parameters are inserted only in each section. But for later automatic processing of the lilo.conf in some post-install scripts we already want to add the global append line. This used to work at least in autoyast in SuSE 9.0.
Created attachment 51041 [details] Yast2 logfiles, including the autoyast profile and the wrong lilo.conf
Jiri, this looks like one for you.
Could you, please, provide whole AutoYaST profile and the installation logs? See http://www.opensuse.org/Bug_Reporting_FAQ#Attachments_-_y2logs.2C_hwinfo_etc. for details on how to attach the logs.
Hmm, I thought I did that! The attachment I added was the .tzg that yast created when pressing Shift+F8 while the error message about the bootloader was on the screen. I just added the autoinst. xml, which is the profile autoyast calculated from my rules and profiles, and the lilo.conf to this archive. Do you need sth. else?
yes, please, attach the whole AutoYaST profile.
Oops, sorry, ignore last comment, I'm blind...
OK, I have it. Ad "append" : According to lilo.conf man-page, it is supported only inside sections (especially those with sections). The problem why the values cannot be used is in autoinst.xml. The line <value config:type="symbol">Linux</value> must be changed to <value>Linux</value> (and similarly for all options), otherwise YaST interprets it as different data type, and it results in incorrect output.
1) About "append" I looked at lilo.conf.5 from lilo-22.7-2.i586.rpm which comes with opensuse 10.0 RC1. The man page says: "Additionally, the kernel configuration parameters append, ramdisk, read-only, read-write, root and vga can be set in the global options section. They are used as defaults if they aren't specified in the configuration sections of the respective kernel images." So I guess you have some different version of lilo in which the global append is said to be ignored? Anyway, that would have been a major change, because the global append worked as long as I can remember (SuSE 4 or 5 or sth.). 2) The problem with the "default" line without the "= Linux" still occurs when changing the profile part to <global_entry> <key>default</key> <value>Linux</value> </global_entry> And it even occurs, when I remove that part completely. I.e., without telling autoyast anything about a global "default" value, it should derive it itself, and that fails the same way, i.e., ending up with a "default" without a "=Linux". I've attached the logs as y2logs_second.tgz from an autoyast run without he "default" key in the profile.
Created attachment 51368 [details] Logfiles from a run without the default key
The bugs are still not resolved in SuSE Linux 10.0 final. 1) Still, a global append entry will be ignored, although the man page states that a global append is valid. But it seems that other entries are ignored, too. See below. 2) The wrong "default" line in lilo.conf seems to be added whenever there is *any* global entry defined. Using this profile: <bootloader> <global> <global_entry> <key>vga</key> <value>normal</value> </global_entry> </global> <loader_type>lilo</loader_type> </bootloader> will - not add a "vga=normal" entry added in /mnt/etc/lilo.conf in the global section - add the erroneous "default" line in /mnt/etc/lilo.conf. With just <bootloader> <global> </global_entry> </global> <loader_type>lilo</loader_type> </bootloader> the lilo.conf will be correct, but with a global key and value defined, this key/value seems to be ignored and causing the "default" line (which will make lilo fail, of course). So please consider this issue again...
Uhm, sorry for changing the priority, I mis-clicked this entry :-) Changed it back to P5.
Well, one of the problems is that the format of the bootloader section has changed for 10.0. The old should be preseved for compatibility, but it seems to be a bit buggy. The goal to change it was that now you can define one configuration and just by replacig the loader_type entry, it can be used for both GRUB and LILO. In 9.3, it worked just because the line specified was directly written to the configuration file. Now, from the lines specified, a configuration file is created and parsed to grab the information from it. And global append is not supproted by YaST, that's why it gets lost. So, the only way seems to be to add a support for global append for LILO (it has to be added for ELILO anyway, so the effort should be minimal).
Ok, I understand the design excludes a global append at the moment. Anyway, even with this design decision, there are at least two bugs left: - specifying a global append should just be ignored, but not lead to a single default line in lilo.conf (instead of "default=Linux"). - it's not just the append option, but also global options like "vga=normal" are a) ignored and b) lead to the same single "default" line. So I think this must be fixed anyway, independent from accepting or refusing a global append by design...
Global VGA is the same as global append, it will be solved together. With missing other options: I will have to check what's happening there...
Reasigning to new maintainer
Just tested on 10.1 alpha4. Still doesn't work. This is very bad now, because 10.1a4 doesn't accept a vga parameter in the per-section append line. So, currently there is no possibility at all to set a vga parameter with autoyast. We have some hosts with Ati and Nvidia cards that have problems with lilo and the boot screen without vga=normal. I hope this will be fixed until 10.1 is released...
I just want to say that I have the same problem to,. Got the same message in suse 10.0, 10.1, and in SLED 10 RC3. sorry, I'm not a verry big help..
After the problem kept me from installing 10.1 on some hosts, I wrote a fix for preventing the faulty "default" line. The patch works on BootLILO.ycp and is activated when we are in autoinst mode. It checks if the value (right-hand side) for the default parameter is empty and, if so, adds the name of the first section as value, so that the first sections becomes the default section. Uwe asked me to add the patch here, however, please note that it does not by any means fix the real problem: - Whenever some global option is set in the profile, the value for the default-options is empty - definfing a value for default, i.e. sth. like "default=myLinuxKernel" does not work, and will still not work with my patch - other global options, e.g. the disk option or vga etc. are not inserted to lilo.conf at all. I wonder why nothing was done to fix this problem after I reported it for 10.0RC1. Now we have 10.1 and it still does not work. And this bug is a *stopper* for certain systems: If you need to set global options like the disk option to boot from a scsi disk when having an IDE and a SCSI disk, it is just not possible to autoinstall such a system (especially because there seems to be another bug that prevents chroot scripts after installing lilo). I've reported that bug one year ago, and seeing that nothing was done to fix is, is very very sad.
Created attachment 98399 [details] Fix the faulty "default" line in lilo.conf during autoinstall Patch should work same way for BootELILO.ycp.
This bug still exists in SLES 10sp1b6 for ia64 when writing elilo.conf. The result is a system that won't boot after installation with autoyast. Editing elilo.conf in the EFI shell to change "default" to "default=Linux" fixes the install so it boots properly.
As this bug still occurred in SLES10-SP1-Beta6 (and IMHO is not fixed in latest build 303) I recommend to fix it for openSUSE 10.3.
I performed additional testing on SLES10-SP1-rc on ia64 HP rx2660, BL860C and rx3600. This bug did not appear with SP1-rc on any of these machines. So for the rc at least, this appears to be fixed.
fixed (#22)