To summarize:
YaST reads device.map.
- If it doesn’t exist, it creates it using kernel device names (sda, sdb). It’s usually bad. … although I could imagine that in some rare cases it might help.
- If it refers to unexisting disks, it doesn’ t complain. I would personally disagree but …
- If it refers to existing disks in the wrong order (a common case) because the BIOS order has changed - due to user manipulation, BIOS bug or broken SATA controller, or whatever other reason - it has no way to know.
After a kernel update, /sbin/update-bootloader writes an entry for the new kernel in /boot/grub/menu.lst and set the root device according to device.map:
- it knows on which physical drive the mounted / or /boot partition is located.
- it looks in device.map to determine the BIOS number of this drive
- it writes this number in menu.lst (as in my example in the previous post).
As previously mentioned, if you don’t want the perl Bootloader to modify (and possibly mess up) menu.lst, set LOADER_TYPE=“none” in /etc/sysconfig/bootloader. You don’t even need YaST for that.
Actually, the term “BIOS drives” is confusing, speaking of hd0, hd1, etc. I should have said “Grub drives”. We often call them “BIOS drives” because we assume that they will match 0x80, 0x81, etc. In most cases, they do. But when they don’t … we’re not amused.