Tivemos esta semana um problema com um computador Dell Optiplex 320, da série ‘N’ (sem sistema operacional). Quando instalava o Ubuntu, ele simplesmente não bootava. Ficava uma tela preta logo depois de usar o Grub. Dando uma buscada no ubuntuforums, encontrei o seguinte: o problema não é o Ubuntu, mas sim o grub. Foi só trocar o grub pelo lilo, e tudo funcionou perfeitamente. Veja abaixo os passos para resolver isso:

Faça boot com o CD de instalação do Ubuntu. Abra um terminal, torne-se root usando o sudo, e faça o seguinte: (nota: não sei como isto vai funcionar com dual-boot. A instalação que eu tenho é single-boot. Caso queira saber como fazer dual-boot depois destas mudanças, veja a thread do link acima.)

sudo mkdir /media/ubuntu
sudo mount /dev/sda3 /media/ubuntu
sudo mount -t proc none /media/ubuntu/proc
sudo mount -o bind /dev/ /media/ubuntu/dev
sudo chroot /media/ubuntu /bin/bash

Com isto você estará dentro de sua instalação. Depois, instale o lilo usando o apt:

sudo apt-get install lilo

Agora vem um passo importante: o Ubuntu usa no fstab o UUID do device, ao invés do endereço tradicional. O lilo não sabe ler isto. Por isso, vamos precisar mudar este detalhe no /etc/fstab:

sudo cp /etc/fstab /etc/fstab.backup
sudo mcedit /etc/fstab

Este é apenas um exemplo! Mas deve ter uma peculiaridade com o seu arquivo: acima do UUID, comentado, deve estar escrito o endereço a usar. Assim:

proc /proc proc defaults 0 0
# /dev/sda3
UUID=18f2c772-d63f-4b71-a560-4146d0a4f298 / ext3 defaults,errors=remount-ro 0 1
# /dev/sda5
UUID=6ffc9530-c9e4-4657-ac3c-5772716ae51c none swap sw 0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/hdb /media/cdrom1 udf,iso9660 user,noauto 0 0
/dev/scd0 /media/cdrom2 udf,iso9660 user,noauto 0 0

Se este for o seu caso, é só apagar o UUID=aqualquercoisa, pelo endereço comentado. Assim:

proc /proc proc defaults 0 0
# /dev/sda3
/dev/sda3 / ext3 defaults,errors=remount-ro 0 1
# /dev/sda5
/dev/sda5 none swap sw 0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/hdb /media/cdrom1 udf,iso9660 user,noauto 0 0
/dev/scd0 /media/cdrom2 udf,iso9660 user,noauto 0 0

Agora, é só instalar o lilo no MBR:

liloconfig

E pronto! Isto deve funcionar. Porém, ao dar o reboot, a splash da inicialização vai se perder. Se quiser usar o splash do boot, você precisa adicionar uma linha ao /etc/lilo.conf. Localize o seguinte bloco:

image=/boot/vmlinuz-2.6.20-12-generic
label="Lin 2.6.20img0"
initrd=/boot/initrd.img-2.6.20-12-generic
read-only

Você precisa adicionar o seguinte, abaixo de read-only:

append="splash"

E pronto. Grave o lilo no MBR novamente com o comando

lilo