Lots of errors can occur if you do not update your kernel properly It usually involves you not getting back into Linux. This FAQ is designed to: (A) Get you back in (B) Determine your problem (C) Fix the problem Please note I did not write all of this. A large portion comes from the LILO documentation other small parts are from the Kernel-HOWTO. *** Getting back in *** * If you have a good kernel and know where Linux root filesystem is mounted, then: Boot off the source install disk that you originally installed Slackware off. When the first prompt comes up "boot:" mount your old partition as such mount root=/dev/hda2 ro where hda2 is the root partition. Your partition might be different Once it loads. Edit /etc/lilo.conf to fix the errors and rerun LILO. Then reboot without the source install disk and see if it fixes the problem. * If you have a bootdisk created with makebootdisk or from when you installed Slackware boot with that and it should load you back into the system. Then fix any errors you have wether they be kernel or LILO or other. * If your kernel is corrupt then you must boot off of either the above mentioned bootdisk or both the boot and root disk combo. If you boot off of the boot/root disk combo run setup again but this time only do two things. (1) TARGET Choose this option and select your root filesystem as what you selected before (I would choose /dev/hda2) Then exit out to the main setup menu (2) CONFIGURE Choose this option and in the screen that asks if you want to make a bootdisk do so using the kernel off of the root disk. Once you have the disk made you can escape setup and reboot with the disk. Once you get inside Linux fix your problems. *** Here is a list of common errors and their solution *** Glossary of common terms Geometry mismatch: This means that the Cylinders/Heads/Sectors that your Harddisk has are not what LILO has been told. Media Failure: Your drive is not working or it is not working properly. This may mean get a new drive it may not. Running the Map installer: Means basically "part of lilo run from the command line". Rerunning lilo will rerun the map installer. Symptom: (Nothing) No LILO prompt at all seen Problem: LILO isn't installed or the partition its on isn't marked active Problem: You have installed another operating system over LILO. You will need to reinstall LILO Solution: Use the rescue boot and reinstall LILO Symptom: LILO says L error ... Problem: The first stage boot loader has been loaded and started, but it can't load the second stage bootloader. This generally means a geometry mismatch or a media failure the following two digit codes can help identify the error 0x00 "Internal error". This code is generated by the sector read routine of the LILO boot loader whenever an internal inconsistency is detected. This might be caused by corrupt files. Try rebuilding the map file. Another possible cause for this error are attempts to access cylinders beyond "1024" while using the linear option. 0x01 "Illegal command" This shouldn't happen, but if it does it may mean an attempt to access a disk which is not supported by the BIOS 0x02 "Address mark not found" This usually indicates a media problem. Try booting again several times 0x03 "Write-protected disk" This should only occur on write operations. 0x04 "Sector not found" This typically indicates a geometry mismatch. If you are booting off a raw written disk image, verify wether it was created for disks with the same geometry as the one you are using. If you are booting from a SCSI disk or large IDE disk, you should check, wether LILO has obtained the correct disk geometry data from the kernel or wether the geometry definition applies to the real disk geometry. Removing compact from lilo.conf may help. So may adding LBA32 or linear. 0x06 "Change line active" This should be a transient error. Try booting a second time. 0x07 "Invalid Initialisation" The BIOS failed to properly initialise the disk controller. You should control the BIOS setup parameters. A warm boot might help too. 0x08 "DMA overrun" This shouldn't happen, Try booting again 0x09 "DMA attempt across 64k boundary" This shouldn't happen, but may indicate a disk geometry mismatch. Try ommitting the compact option in lilo.conf. You may need to specify the disk geometry yourself. 0x0C "Invalid media" This shouldn't happen and might be caused by a media error. Try booting again. 0x10 "CRC error" A media error has been detected. Try booting several times, running the map installer a second time (to put the map file at some other physical location or to write "good data" over the bad spot), mapping out the bad sectors/tracks, is all else fails, replacing the media. 0x11 "ECC correction successful" A read error has occured, but was corrected. LILO does not reconize this condition and aborts the load process anyway. A second load attempt should succeed 0x20 "Controller error" This shouldn't happen 0x40 "Seek failure" This might be a media problem try booting again 0x80 "Disk timeout" The disk or drive isn't ready. Either the media is bad or the disk isn't spinning. If your booting off a floppy you may not have closed the door otherwise try booting again. 0xBB "BIOS error" This shouldn't happen. Try booting again. If the problem persists, removing the compact option or adding/removing linear or lba32 from lilo.conf might help. Symptom: LILO says LI Problem: The first stage boot loader was able to load the second stage but was unable to execute it. This can be caused by a geometry mismatch or by moving /boot/boot.b without running the map installer. Problem: LILO is not installed properly Problem: Your Linux partitions are on a logical partition instead of a primary partition LILO is not installed to a primary partition or LILO is not installed to the Master Boot Record MBR Solution: You may need to install LILO into the MBR. /sbin/lilo /dev/drive where drive is the drive you are installing on i.e. /dev/hda /dev/sdb if you put a partition number after the drive then LILO will be installed to that partition not the MBR. Solution: You may need to alter your lilo.conf at the start by adding lba32. Reinstall LILO. Solution: Make sure that in your system that the kernel is on the same physical device as the LILO map. That is, in lilo.conf it will read, the "boot = ..." is the same physical device as any "image = ..." lines. Symptom: LILO says LIL Problem: The second stage boot loader has been started, but it can't load the descriptor table from the map file. This is normally caused by a media failure or by a geometry mismatch. Symptom: LILO says LIL? Problem: The second stage boot loader has been loaded at an incorrect address. This is typically caused by a subtle geometry mismatch or by moving /boot/boot.b without running the map installer. Symptom: LILO says LIL- Problem: The descriptor table is corrupt. This can either be caused by a geometry mismatch or by moving /boot/boot.b without running the boot installer. Symptom: LILO says Warning BIOS Drive 0xnumber may not be accessible Problem: The Linux system is installed on more than the first two disk /dev/hdc or beyond LILO error Solution: Boot back into the system as per the above rescue steps then read the file /usr/doc/Linux-Mini-HOWTOs/LILO in section 4 it tells you how to make LILO boot off hdc or above. Also look in the file /usr/doc/Linux-HOWTOs/BootPrompt-HOWTO at section 4.7 and the ide reverse section if you have more than a four drive system. Symptom: LILO says geo_query_dev HDIO_GETGEO ( dev 0xnumber) or Device 0xnumber: got bad geometry sec/hd/cyl Problem: LILO cannot get the hard disks geometry Solution: Your LILO needs to be installed with the LBA32 or LINEAR configuration variable or use LILO -L or -l If that doesn't work the entire disk geometry needs to be specified. i.e. in lilo.conf: boot = /dev/hda bios= 0x80 # 0x80 first drive 0x81 is second drive sectors = number of sectors drive has heads = number of heads drive has cylinders = number of cylinders drive has You can find out from the BIOS setup what the number of sectors, heads, cylinders a drive has or you can use a DOS utility such as dparam.com or ideinfo. dparam.com comes when LILO is compiled but is not in the slack install. Look here instead or search google for dparam. ftp.fcaglp.unlp.edu.ar/pub/linux/suse/i386/current/dosutils/dparam/ Symptom: LILO runs but when you load Linux you get Unable to mount root kernel panic error problem: This normally comes up if you have selected your filesystem to be loaded as a module. Solution: Reboot with a rescue disk and make sure Ext2 is not a module in your kernel config. Then recompile your kernel and run LILO. Symptom: LILO runs but when you load Linux you get Warning: unable to open an initial console Kernel panic: no init found. Try passing init= option to kernel The problem is that you did not set the "root=" parameter properly in the /etc/lilo.conf. In my case, I used root=/dev/hda1 which is having the root partition "/". You must properly point the root device in your lilo.conf, it can be like /dev/hdb2 or /dev/hda7. The kernel looks for the init command which is located in /sbin/init. And /sbin directory lives on the root partition. Symptom: LILO runs but when you load Linux you get boot: linux Loading linux................ Uncompressing Linux... Ok, booting the kernel The system continues to load off the disk but nothing more is displayed. Problem: Console Drivers-->vga text console is not selected in your kernel Solution: Boot off of a good kernel, mounting your filesystem and recompile the bad kernel. This is an example of a disks partition to help. +------------------------+ | Master Boot Record (1) | +------------------------+ +--------------------------------------------------------------------+ | boot sector (1) | Extended 1 Boot Sector (2) | | |--------------------------------------------------| | | Boot Sector (3) | Boot Sector (3) | | primary 1 | Logical 1 | Logical 2 | | | | | +--------------------------------------------------------------------+ (1) LILO can be installed here (2) LILO can be installed here if this is the first disk (3) LILO cannot be installed here *** Important tips section *** Run the makebootdisk command as soon as possible so you can get back into Linux. Backup your kernel and add it to LILO before you try a new kernel READ THE DOCUMENTATION in Documentation/changes.txt, especially if you upgrade to a different series of kernel (for 2.5.x users, or Slackware < 8 users) It is best to install LILO to the Master Boot Record and add other operating systems into lilo.conf. Lilo gives more verbose info if you type lilo -v -v -v LILO can't be stored in the boot sector of a logical partition but can be put in the boot sector of an extended partition on the FIRST disk. LILO cannot be run from the second hard disk. Backup the .config file in your current kernel directory before it gets changed In the kernel make sure you have the correct CPU type selected or the system may not boot. If in doubt select i386 At the command prompt type mount and make a note of the filesystem type that / is mounted on. Example: /dev/hda2 on / type ext2 Make sure that the type specified is not compiled in the kernel as a module rather that it is compiled in normally. If you do not do this then the kernel cannot load the rest of the filesystem and you will get a unable to mount root kernel panic error. One thing you should always check is Console Drivers-->vga text console as not having this selected will make the screen blank when after LILO loads the kernel. *** End and Thanks section *** Thanks to the guys who wrote the Kernel-HOWTO, the LILO manuals, and others on Alt.OS.Linux.Slackware who helped.