Bugzilla – Bug 132514
Wrong grub configuration with onboard promise controller. First boot after installation fails
Last modified: 2007-01-29 15:17:13 UTC
My system has a standard VIA onboard controller (KT600 chipset) and promise fasttrack controller. When installing SuSE 10.0, the drives on the promise controller are recognozied first becoming hda to hdd, the drives on the via controller are hde and hdf. hde/f are 5GB windows partition as hde1/hdf1, logical partition hde4/f4, swap on hde5, linux root on hdf5, hde6/f6 are linux lvm. Installation with this configuration is fine. But after the first boot, grub can´t find the root partition (error 22). YaST creates a grub configuration with root on (hd5,4) and it seems that this is causing the problem because grup sees the harddisk in the order the hd´s are recognized by the bios. When i´m changing this entry to (hd1,4) everything is fine (of course i also had to change to gfxmenu entry).
In the yast module it's possible to set order of the disks, use "Bootloader installation" tab, press "Bootloader Installation Details". There is a table with disk order, set the order of the disks as seen by BIOS. I'm not sure if we can solve this somehow automatically. Jiri?
No, we cannot. We have the information which is provided by BIOS, and it is not correct in some cases. Sorry, but can't help here...
Well, i think this bug could be annoying for all people who are not linux experts. I can´t think they could solve it. BTW: This bug was introduced with SuSE 9.3. Everything worked fine with 9.2 with the same hardware and disk configuration. I think the reason is that the 9.2 installation kernel had integrated ide drivers while the 9.3 installation loads the driver later as module. And maybe probing the driver modules is done just alphabetically (pdcXX module before viaXX module). If during installation, the via XX module would be loaded first, i think everything will be ok after the first boot.
I think that the problem appeared because we started using EDD BIOS extension to get the mapping between BIOS ID and Linux device. Unfortunatelly, some BIOSes provide incorrect information. Steffen?
Well, some older kernels had an "ide-reverse" boot option. Could this be a solution?
Module loading order is not the problem. GRUB wouldn't notice. Please start the installation, go to console 2, run 'getsysinfo' and attach the tar file it produces.
getsysinfo only outputs /proc/acpi and hangs there without doing anything serious?
Just remove /proc/acpi from the script and try again.
Created attachment 58777 [details] Output of getsysinfo Output of getsysinfo as requested.
I´ve attached the getsysinfo output. Maybe i could help you finding a solution for the problem
So, what you are saying is that you installed on one of the VIA disks, your BIOS boots of the other VIA disk but YaST (or hwinfo for that matter) puts them into grub's map as 5th and 6th disk even though they are seen by the BIOS as 1st and 2nd?
Exactly. When booting the system, the Bios first shows the 2 disks and 2 CD/DVD devices connected to the via controller, then it logs the Bios messages from the onboard promise controller and shows me the 4 disks connected to this controller. But after booting the kernel yast shows me the 4 disks connected to the promise controller as hd[a-d] and the disks connected to the via controller as hd[[e,f]. This is the generated device map: (hd1) /dev/hdb (hd6) /dev/sda (hd2) /dev/hdc (hd3) /dev/hdd (fd0) /dev/fd0 (hd4) /dev/hde (hd5) /dev/hdf (hd0) /dev/hda and menu.lst contains: color white/blue black/light-gray default 0 timeout 8 gfxmenu (hd5,4)/boot/message ###Don't change this comment - YaST2 identifier: Original name: linux### title SUSE LINUX 10.0 root (hd5,4) kernel /boot/vmlinuz root=/dev/hdf5 vga=0x317 selinux=0 resume=/dev/hde5 splash=silent showopts initrd /boot/initrd After the first reboot, grub cannot access the root partition. I have to manually change (hd5,4) to (hd1,4) and then everthing is working
Uh, is that old. Hope is isn't relevant any longer.