Upgrade da Lilo a Grub

From RVM Wiki
Jump to navigation Jump to search


Il presente articolo preso da http://myrddin.org/howto/debian-grub.php, illustra come sostituire Lilo con Grub. Il tutto è stato testato con Debian Sarge.

Installazione di Grub

sudo apt-get install grub grub-doc

Creazione di un floppy di boot

Creare un dischetto di boot per testare GRUB:

Formattare e montare il floppy:

fdformat /dev/fd0
mkfs /dev/fd0
mount /floppy/

Creare la cartella per i files di grub e copiarli, smontare il floppy:

mkdir -p /floppy/boot/grub
cp /boot/grub/stage1 /boot/grub/stage2 /boot/grub/menu.lst /floppy/boot/grub/
umount /floppy/

Installare Grub sul floppy:

/sbin/grub --batch --device-map=/dev/null <<EOFile
device (fd0) /dev/fd0
root (fd0)
setup (fd0)
quit
EOFile

Testare il floppy per vedere se il sistema parte correttamente da Floppy.

In caso positivo proseguire.


Scrittura mbr

Una volta installato il pacchetto, occore installare il boot manager dove voluto.

Se si ha un solo OS ed un solo disco IDE:

sudo grub-install /dev/sda

Se si ottiene l'errore:

/dev/sda does not have any corresponding BIOS drive.

rilanciare grub-install con il parametro --recheck:

grub-install --recheck /dev/sda

Se invece si hanno più os sul disco, e non si vuole che Grub sia il boot manager di default (perchè ad esempio di preferisce Gag è necessario specificare la partizione dove installarlo:

sudo grub-install /dev/sdb

IMPORTANTE Se si utilizza un Raid software, è necessario scrivere l'mbr su tutti i dischi:

sudo grub-install /dev/hda
sudo grub-install /dev/hdc
sudo grub-install /dev/md0

Come indicato in Installazione di Grub con RAID Software installare gli stage aggiuntivi per i dischi raid:

  • Installazione sul primo disco:
# sudo grub

grub> device (hd0) /dev/hda
grub> root (hd0,0)
 Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd0)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... yes
 Running "embed /grub/e2fs_stage1_5 (hd0)"...  15 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.


  • Installazione sul secondo disco

Per l'installazione su secondo disco, gli si dice che il device hd0 è il disco hdc.

# sudo grub

grub> device (hd0) /dev/hdc
grub> root (hd0,0)
 Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd0)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... yes
 Running "embed /grub/e2fs_stage1_5 (hd0)"...  15 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.

Creazione del menu di avvio

Occorre generare il file /boot/grub/menu.lst con il comando

sudo update-grub

ATTENZIONE !

Qualora la partizione di root non sia la prima sull'hard disk, occore editare a mano il file /boot/grub/menu.lst cambiando la riga di commento SENZA TOGLIERE IL CANCELLETTO

# groot=(hd0,1)

Rimozione di lilo

Rimuovere Lilo lasciando il file di configurazione:

sudo apt-get remove lilo


Rimozione della configurazione di lilo

 sudo dpkg --purge lilo


Automatizzare l'esecuzione di update-grub all'installazione/rimozione di un kernel

modificare le seguenti opzioni in /etc/kernel-img.conf:

sudoedit /etc/kernel-img.conf
...
postinst_hook = /sbin/update-grub
postrm_hook = /sbin/update-grub
do_bootloader = no
do_initrd = Yes
...


Riferimenti a kernel obsoleti

E' probabile che grub continui a elencare dei riferimenti a kernel obsoleti ed addirittura disinstallati. Si può ovviare a tutto ciò rimuovendo i pacchetti kernle-image-* e rimuovendo i rispettivi files /boot/vmlinuz-* e /boot/initrd.img-* e poi rilanciando update-grub.

Riferimenti