SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I upgraded to Slack Current a few days ago and everything was going well. I haven't made any changes to my system files since then and didn't install any new software yesterday. This morning I tried to boot my machine and got the error message "LIL" when trying to load LILO. I have LILO on my MBR and I don't run any other OS except linux.
The explanation for the LIL error is:
" LIL The second stage boot loader has been started, but it can't load the descriptor table from the map file. This is typically caused by a media failure or by a geometry mismatch."
I couldn't boot with the cd I made from "makerescue" but I was able to boot with a Slax live cd. This morning I could get into the system fine after booting (via root=/dev/hda3), but noticed that once I was in, my hard drive was being recognized as /dev/ide/host0/bus0/target0/lun0/ instead of hda3!! Other than that, I could operate as "root" on /hd3. When I rebooted this evening, I wasn't able to do that anymore. I can't access "root=/dev/hd3" at boot time. The message I get back is that the kernel isn't available on that partition. Nor is it available on /dev/ide/host0/bus0/target0/lun0/part3.
I added a linear option to my lilo.conf file, but that didn't work. I couldn't run /sbin/lilo from my position as "root" on the Slax live cd because I didn't have proper permissions to the files on my hard drive (how can I change this??)
This is from my lilo.conf file:
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
linear
append = "hdc=ide-scsi"
boot = /dev/hda
#compact
install = /boot/boot.b
map = /boot/map
message = /boot/boot_message.txt
prompt
timeout = 1200
# Override dangerous defaults that rewrite the partition table:
change-rules
reset
# VESA framebuffer console @ 1024x768x256
vga = 773
# Normal VGA console
# vga = normal
# VESA framebuffer console @ 1024x768x64k
# vga=791
# VESA framebuffer console @ 1024x768x32k
# vga=790
# VESA framebuffer console @ 1024x768x256
# vga=773
# VESA framebuffer console @ 800x600x64k
# vga=788
# VESA framebuffer console @ 800x600x32k
# vga=787
# VESA framebuffer console @ 800x600x256
# vga=771
# VESA framebuffer console @ 640x480x64k
# vga=785
# VESA framebuffer console @ 640x480x32k
# vga=784
# VESA framebuffer console @ 640x480x256
# vga=769
# End LILO global section
# Linux bootable partition config begins
image = /boot/vmlinuz
root = /dev/hda3
label = Linux
read-only
# Linux bootable partition config ends
When I boot with the Slax live disk, my hda drive is no longer recognized. Instead, it becomes /dev/ide/host0/bus0/target0/lun0/. When I run /part3/sbin/lilo -v -v from that drive I get:
root@slax:/mnt/disc0part3# /sbin/lilo -v -v
LILO version 22.5.7.2, Copyright (C) 1992-1998 Werner Almesberger
Development beyond version 21 Copyright (C) 1999-2003 John Coffman
Released 20-Aug-2003 and compiled at 19:15:26 on Aug 25 2003.
(The last "fatal" error is due to me running the program as "root" on the Slax live cd and not as root on hda3).
The output I get from running fdisk -l as "root" on the Slax live cd is :
Disk /dev/ide/host0/bus0/target0/lun0/disc: 40.0 GB, 40027029504 bytes
255 heads, 63 sectors/track, 4866 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/ide/host0/bus0/target0/lun0/part1 * 1 8 64259+ 83 Linux
/dev/ide/host0/bus0/target0/lun0/part2 9 138 1044225 82 Linux swap
/dev/ide/host0/bus0/target0/lun0/part3 139 4866 37977660 83 Linux
I tried to run /sbin/lilo -v -v -v >/boot/lilo.log 2>/boot/lilo.logerr from dev/ide/host0/bus0/target0/lun0/part3, but it didn't work because I didn't have permission to write to the /boot directory and I was unable to change this permission while logged on as "root" on the Slax live cd. Is there some way that I can become root on / on my hard drive so that I can change permissions to allow me access to files and directories?
I entered the bios settings on my Dell Dimension 4500, but I didn't see any information about the hard drive, so I can't tell if there is a geometry mismatch or not.
I also have an external hard drive and CF card reader that the Slax live cd also recognizes.
Any idea what I can try next? Fortunately, I have my system backed up to my external hard drive. What else can try other than a complete reinstall? What could suddenly be causing this error?
You can run lilo from a knoppix cd using chroot. Boot up with knoppix and open a console and run:
$ su
<Enter>
# mount /dev/hda3 /mnt/hda3
# chroot /mnt/hda3
# /sbin/lilo -v
I'm not sure about the slax live cd but in knoppix all the partitions are mounted "nodev" and as a result, lilo will not run; you get a permission denied error even as root and it won't allow you to do chroot IIRC. Using the mount command per the above fixes that in knoppix(i.e. including the "/dev/hdxx" with the mount point in the mount command) and lilo will run and write to your mbr.
Here's where I'm at today, following up with my post from yesterday.
I haven't been able to get makebootdisk to make a proper LILO boot disk for me (maybe the files are too big?), but I managed to find an old Syslink boot disk that I could boot with. I used this to get into my system and create a new Syslink boot disk with my new kernel. I can boot up my system NO PROBLEM with the Syslink boot disk. Everything looks and functions as it should. But I don't want to be relegated to booting off a floppy for the rest of my life...
So it looks like my hard drive itself is fine.
I then tried this:
lilo -u /dev/hda
followed by lilo and rebooted, but I had no luck.
I then used "hdparm" to see how linux sees my hard drive and got these results:
hdparm -g /dev/hda
So it is seeing 4866 cylinders, 255 heads and 63 sectors.
I then ran "/sbin/lilo -v -v -v >/boot/lilo.log 2>/boot/lilo.logerr" and got nothing back in the .logerr file (good) and the .log file produced this for lilo:
******************************************
raid_setup returns offset = 00000000 ndisk = 0
BIOS VolumeID Device
Reading boot sector from /dev/hda
pf_hard_disk_scan: ndevs=1
0300 3DB012B3 /dev/hda
Resolve invalid VolumeIDs
Resolve duplicate VolumeIDs
0300 3DB012B3 /dev/hda
device codes (user assigned pf) = 0
device codes (user assigned) = 0
device codes (BIOS assigned) = 0
Filling in '/dev/hda' = 0x80
device codes (canonical) = 1
Device 0x0300: BIOS drive 0x80, 255 heads, 4866 cylinders,
63 sectors. Partition offset: 0 sectors.
Using serial number 3DB012B3 on bios 80
Device 0x0303: BIOS drive 0x80, 255 heads, 4866 cylinders,
63 sectors. Partition offset: 2216970 sectors.
Using serial number 3DB012B3 on bios 80
Warning: Unable to determine video adapter in use in the present
system.
Using MENU secondary loader
Calling map_insert_data
Secondary loader: 17 sectors (0x3200 dataend).
bios_boot = 0x80 bios_map = 0x80 map==boot = 0 map S/N: 3DB012B3
Mapping message file /boot/boot_message.txt
Device 0x0303: BIOS drive 0x80, 255 heads, 4866 cylinders,
63 sectors. Partition offset: 2216970 sectors.
Using serial number 3DB012B3 on bios 80
Calling map_insert_file
Message: 1 sector.
BIOS data check will include auto-suppress check
Boot image: /boot/vmlinuz -> vmlinuz-ide-2.4.26
Device 0x0303: BIOS drive 0x80, 255 heads, 4866 cylinders,
63 sectors. Partition offset: 2216970 sectors.
Using serial number 3DB012B3 on bios 80
Setup length is 10 sectors.
Mapped 2457 sectors.
Added Linux *
<dev=0xc0,hd=54,cyl=122,sct=29>
"ro root=303 hdc=ide-scsi"
I have to admit, I don't know how to interpret the dmesg results. Any obvious problems there?
And I did add LBA32 to my lilo.conf which is supposed to allow lilo to bypass any cylinder limits on the hard drive, but that didn't work either.
I don't understand why lilo doesn't like the hard drive. Like I've said, it's worked fine, I made no changes to lilo and then suddenly the "LIL"... message popped up. Maybe I should consider using a new loader (i.e. GRUB?). Or will doing something with "udev" help?
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.