SUSE Linux Install Problems and Their Solutions

PROBLEM: This document describes how to handle two problems that are experienced by some people trying to install or upgrade SUSE Linux. Regular postings to SUSE support forums show that these problems are fairly common:
Even though the PC boots off of the installation CD or DVD, an error message quickly appears indicating that no installation media can be found;
An installation fails at the first boot with a kernel panic and a message similar to “<0> Kernel panic – not syncing. Attempting to kill init!”. Or an upgrade fails with the message that it cannot find or mount the root partition (update not possible).

ENVIRONMENT: Tested: SUSE Linux Professional 9.3 and SUSE Linux 10.0.
Software: Installing or updrading to these two versions.

SOLUTION:

Copyright (c) 2005 William W. Wayson.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found at http://www.gnu.org/copyleft/fdl.html.

The following was derived from a SUSE Linux Forum message at http://forums.suselinuxsupport.de/index.php?showtopic=15077&hl=ide\=reverse. Many thanks to Markus for posting this solution — a great example of the power of the Linux community.

This document describes how to handle two problems that are experienced by some people trying to install or upgrade SUSE Linux. Regular postings to SUSE support forums show that these problems are fairly common:

Even though the PC boots off of the installation CD or DVD, an error message quickly appears indicating that no installation media can be found;
An installation fails at the first boot with a kernel panic and a message similar to “<0> Kernel panic – not syncing. Attempting to kill init!”. Or an upgrade fails with the message that it cannot find or mount the root partition (update not possible).

Those who suffer the first problem may discover that the CD/DVD’s booted kernel has no CD or DVD device. Those afflicted with the second problem may notice that the device numbering of their hard drives is mixed up (e.g. hda, hdb, and hdc are now hde, hdf and hdg). And even if you successfully install SUSE on a system with a disk (or disks) connected to the on-board ide-channels only, if later on the system is extended by adding disks to the third or fourth IDE or SATA ports, SUSE may no longer boot since it may look on the new disks for the system’s old root partition. While the solutions to each problem are different, they are related and fairly similar.

I believe the cause of the first problem is that the CD/DVD’s initial ram disk, initrd, and kernel simply have no driver or support for the particular IDE port of the PC’s motherboard. The booting is done by the BIOS, but once the kernel takes control of the PC, there is no CD device, therefore the kernel (and the installation program running) sees no CD media.

Sufferers of the second problem usually are using a motherboard with the standard built in IDE ports and either an addon IDE controller card or additional IDE or SATA ports on the motherboard. The problem arises due to the order of enumeration of IDE device names (that is, which hard drive ports the initrd or kernel recognize first). The loading sequence of the modules is important and it seems that the initrd is loading them in simple alphabetical order: e.g. loading “pdc202xx_old via82cxxx” instead of “via82cxxx pdc202xx_old”. Therefore the initial ram-disk sees the additional channels (3 and 4) first and the on-board ide-channels (1 and 2) only afterwards! In the past this problem could be handled by passing the “ide=reverse” boot parameter to the kernel, which reversed the order in which IDE ports were configured and enumerated. But in my case, and those of others, with SUSE Linux Professional 9.3, SUSE Linux 10.0, and Fedora Core 3 (these are the distros I’ve been able to test), this parameter no longer seems to have any effect, probably because the IDE detection is done by the initrd and not the kernel itself. Here I describe a solution for users of SUSE Linux (Fedora Core 3 did not exhibit the device enumeration problem for me).

If your installation fails for reasons similar to those above, a successful installation or upgrade can be had — it just takes a bit more work. Here are the steps:

1.Boot from the CD or DVD. At the first boot menu use the boot parameter “insmod=ide-generic”. This slightly slows down the installation, but ensures that the basic installation will find the disks in proper sequence. The boot prompt field should be visible if you are installing SUSE 9.3 or earlier; if you are booting from a SUSE Linux 10.0 disk, you will have to press the key to get More Options;

2.This should allow you to complete the first part of the installation under SUSE. Even though it may not work, I suggest proceeding through the first boot normally (i.e. don’t do anything special at the boot menu). But if the following initial-boot does not find the root partition or the CD/DVD drive, don’t panic!

3.Unfortunately the parameter “insmod=ide-generic” only works for installation CD or DVD, but not when booting the kernel installed on the hard drive. But you can simply boot again from the installation CD/DVD. Again, choose “Installation” with “insmod=ide-generic”. But then choose “Boot installed system” on a later installation menu (new-installation/update/boot-system/repair in SUSE 9.3; under the Other… button on the Installation Mode screen in SUSE 10.0). With this trick the installation script will find the correct root partition (e.g. /dev/hda7) or present you with a list of Linux root partitions if it finds more than one. After confirmation the system will boot normally (perhaps with somewhat slower I/O), and you will be able to complete the installation or upgrade.

4.In order to avoid item (3) on each following boot you have to correct initrd’s module load-sequence, which is governed by the INITRD_MODULES line in /etc/sysconfig/kernel. Under SUSE Linux 10.0 you can do this from Yast using the /etc/sysconfig Editor item in the System module; I do not remember if 9.3 allows this, so you may have to edit the file manually. If your problem is the first one given above, then you simply have to add “ide-generic” to the INITRD_MODULES line (I placed it first): e.g. change INITRD_MODULES=”sym53c8xx cpqarray processor thermal fan reiserfs” to INITRD_MODULES=”ide-generic sym53c8xx cpqarray processor thermal fan reiserfs”. If your problem is the second, you need to identify and swap the positions of the modules driving your hard drive connections: e.g. change INITRD_MODULES=”pdc202xx_old via82cxxx scsi_mod sd_mod reiserfs” to INITRD_MODULES=”via82cxxx pdc202xx_old scsi_mod sd_mod reiserfs”. After this create a new initrd with “mkinitrd”. This is done for you under SUSE 10.0 if you do this editing using YaST; otherwise just run “mkinitrd” in a terminal window as root. With the next reboot everything will be o.k. (even a future kernel-update should be fine, since this will not change the INITRD_MODULES sequence any more).

(0 votes, average: 0.00 out of 5)You need to be a registered member to rate this post.

Disclaimer: As with everything else at SUSE Conversations, this content is definitely not supported by SUSE (so don't even think of calling Support if you try something and it blows up). It was contributed by a community member and is published "as is." It seems to have worked for at least one person, and might work for you. But please be sure to test, test, test before you do anything drastic with it.