Upgrade da Lilo a Grub: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
Controllare la sezione Dischetto di boot
 
mNo edit summary
 
(5 intermediate revisions by the same user not shown)
Line 6: Line 6:
== Installazione di Grub ==
== Installazione di Grub ==


  apt-get install grub grub-doc
sudo apt-get install grub grub-doc


== Creazione di un floppy di boot ==
== Creazione di un floppy di boot ==
Line 48: Line 48:
Se si ha un solo OS ed un solo disco IDE:
Se si ha un solo OS ed un solo disco IDE:


  grub-install /dev/hda
  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:
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:


  grub-install /dev/hda2
  sudo grub-install /dev/sdb


<B> IMPORTANTE </B>
<B> IMPORTANTE </B>
Line 58: Line 64:


<pre>
<pre>
grub-install /dev/hda
sudo grub-install /dev/hda
grub-install /dev/hdc
sudo grub-install /dev/hdc
grub-install /dev/md0
sudo grub-install /dev/md0
</pre>
 
Come indicato in [[Installazione di Grub con RAID Software]] installare gli stage aggiuntivi per i dischi raid:
 
* Installazione sul primo disco:
 
<pre>
# 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.
</pre>
 
 
* Installazione sul secondo disco
 
Per l'installazione su secondo disco, gli si dice che il device hd0 è il disco hdc.
 
<pre>
# 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.
</pre>
</pre>


Line 67: Line 116:
Occorre generare il file /boot/grub/menu.lst con il comando
Occorre generare il file /boot/grub/menu.lst con il comando


  update-grub
  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 ==
== Rimozione di lilo ==
Line 74: Line 128:
Rimuovere Lilo lasciando il file di configurazione:
Rimuovere Lilo lasciando il file di configurazione:


  apt-get remove lilo
  sudo apt-get remove lilo




== Rimozione della configurazione di lilo ==
== Rimozione della configurazione di lilo ==


   dpkg --purge lilo
   sudo dpkg --purge lilo




Line 87: Line 141:
modificare le seguenti opzioni in /etc/kernel-img.conf:
modificare le seguenti opzioni in /etc/kernel-img.conf:
<pre>
<pre>
sudoedit /etc/kernel-img.conf
...
postinst_hook = /sbin/update-grub
postinst_hook = /sbin/update-grub
postrm_hook = /sbin/update-grub
postrm_hook = /sbin/update-grub
do_bootloader = no
do_bootloader = no
do_initrd = Yes
do_initrd = Yes
...
</pre>
</pre>


Line 97: Line 154:


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.
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 ==
*[http://www.cyberciti.biz/faq/error-devhdx-does-not-have-any-corresponding-bios-drive-and-solution/ nxCraft :Error /dev/hdX does not have any corresponding BIOS drive and Solution | Frequently Asked Questions]

Latest revision as of 08:11, 7 May 2007


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