grub error 18 [one OS]

Asked by the badger

i am running *only* ubuntu 6.06 on my machine. starting two days ago, when I try to boot up i get:
----
filesystem type is ext 2fs, partition type 0x83
kernel /boot/vmlinuz - 2.6.15-29-386 root= /dev/hdb1 ro quiet splash
error 18: selected cylinder exceeds maximum supported by BIOS
----

i can then select different kernel versions(?) to try and load. 15-28-36 works, but 15-29-36 is what is the default and not working.

"sudo fdisk -l" gets:
----
Disk /dev/hdb: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 * 1 9541 76638051 83 Linux
/dev/hdb2 9542 9729 1510110 5 Extended
/dev/hdb5 9542 9729 1510078+ 82 Linux swap / Solaris

Disk /dev/sda: 500 MB, 500563968 bytes
16 heads, 32 sectors/track, 1909 cylinders
Units = cylinders of 512 * 512 = 262144 bytes

Device Boot Start End Blocks Id System
/dev/sda1 1 1910 488816 e W95 FAT16 (LBA)
----

there is a lot of advice out there to create a small partition, but i am new to linux and have no command line skills other than copy & paste.

around the same time as error 18 my system has started slowing down and firefox isn't closing properly. is it possible i've updated to a kernel my computer can't handle?

help is really appreciated. hopefully one day i'll be able to return the favour.

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu grub Edit question
Assignee:
No assignee Edit question
Solved by:
the badger
Solved:
Last query:
Last reply:
Revision history for this message
Wrwrwr (wrwrwr) said :
#1

My bet is that your new kernel got placed somewhere far from the beginning of the disk, further then the bios can read from.

A simplest solution would be to remove the new kernel (using a package manager, search for linux-image), make a lot of space on the disk, and then install the new kernel. Don't remove your working kernel. :)

It also might be that you can increase bios translatable disk area with some settings in the bios itself (enabling some big disk support option, or setting mode to auto (what should result in lba mode)).

If this doesn't work upgrading your bios might be a solution. This would probably work only if your bios is significantly outdated (try issuing "sudo dmidecode | grep --after-context 30 "BIOS Information" to get some info about your bios).

Making a small partition and putting all /boot on it is a good idea too, that way you would probably avoid same problem in the future. You can prepare the partition with the gnome partition editor (graphical, package name "gparted"), then you would have to copy the /boot directory to this new partition and update /boot/grub/menu.lst, so that grub knows where to find the kernels. I've never actually tried something like that on a running system, so lets try some other things first (maybe some more arrangements would have to be done).

Please make backups before you try any of this.

Revision history for this message
the badger (drinkcoffeedestroy) said :
#2

Wrwrwr -

thanks for the response, and apologies for the delay.

my busy schedule has kept me from trying these possible solutions as of yet. however, i have begun backing things up in preparation for the possible wiping of the hd. i'm going to wait until gutsy gibbon is released, dowload and burn an iso, and then try mucking around with removing the kernel and/or partitioning for grub. this way i can (hopefully) install gutsy if all else fails, and hence comfort myself with an upgrade ;) (i'm on dapper, and have had issues trying to edgy).

if anything other than a re-install comes out of this i will post up so other users can possibly benefit.

thanks again.