cosa significa questo errore? come avviare il nostro

Transcript

cosa significa questo errore? come avviare il nostro
GRUB Error 18
Error 18
Error 18: Selected cylinder exceeds maximum supported by BIOS
COSA SIGNIFICA QUESTO ERRORE?
Spesso e volentieri si installa Linux in dual boot con Windows e siccome Windows è di norma già
presente, lo spazio dedicato a Linux si trova a fine disco.
Succede in questi casi di trovarsi davanti un bel “Error 18” di GRUB e non riuscire quindi ad avviare né
Linux né Windows.
Questo è dovuto al fatto che non semrpe il BIOS è in grado di leggere l’intero disco e di conseguenza non
riesce a caricare il kernel e proseguire nel processo di boot. Il problema quindi non è correlato a Linux.;
sarebbe successa la stessa cosa con qualsiasi altro sistema operativo se installato nella stessa
posizione. GRUB non riesce a leggere il suo file di configurazione e di conseguenza non si riesce ad
avviare nessun sistema operativo installato.
La soluzione veloce per rendere Windows avviabile è inserire il disco di installazione di Windows XP,
entrare nella console di ripristino e digitare “fixmbr”.
Linux resta comunque installato e noi lo vogliamo usare.
COME AVVIARE IL NOSTRO SISTEMA GNU/LINUX.
Dobbiamo creare una partizione di boot all’inizio del disco in modo che il BIOS riesca a caricare il
kernel. Una volta caricato il kernel, il processo di boot può continuare poiché il kernel riesce a leggere
l’intero disco.
In realtà è probabile che non possiamo liberare spazio all’inizio del disco poiché vi sono già altri dati o
sistemi operativi. L’escamotage è quello di usare una chiavetta usb con una piccola partizione di boot e
avviare quindi il computer da usb.
L’articolo si applica ad entrambi i casi ma prendiamo in esame quello della chiavetta usb che è un po’ più
complesso.
L’unica differenza tra i due è che la partizione di boot si trova su un device diverso (sdb) da quello della
partizione di sistema (sda).
IMPORTANTE:
Si presuppone che la situazione di partenza sia una distribuzione linux installata a fine disco avendo
/dev/sda5 come partizione di swap e /dev/sda6 come partizione di root (/).
PROCESSO:
1.
2.
3.
4.
5.
6.
Verificare il BIOS
Preparare la flash memory
Configurare GRUB (/boot/GRUB/menu.lst)
Configurare /etc/fstab
Installiamo GRUB sull’MBR della chiavetta
Avviamo Linux!
NOTA: Il nodo della questione sta nel capire i punti di vista di GRUB e del kernel.
1. VERIFICARE IL BIOS
Non tutte le schede madri supportano il boot da usb, specialmente quelle datate.
Impostar la sequenza di boot in modo che parta prima da cdrom, poi da usb ed in fine da disco rigido.
2. PREPARARE LA FLASH MEMORY
Eseguiamo il boot da un CD live (la chiavetta può essere già presente o inserita dopo il boot, non fa
differenza).
Il disco fisso interno si chiamerà /dev/sda e la chiavetta /dev/sdb.
Tramite un programma di partizionamento (es: cfdisk) creiamo una partizione primaria di tipo ext3
all’inizio della chiavetta (bastano 50Mb ma potete farla più grande se avete diversi kernel).
Nota: Ricordatevi che, quando si creano le partizioni, i device devono essere smontati!
Una volta creata la partizione la dobbiamo formattare per renderla scrivibile:
mkfs.ext3 /dev/sdb1
Ora che la nostra nuova partizione è pronta, la montiamo e montiamo anche la partizione di Linux.
mkdir
mkdir
mount
mount
/mnt/sda6
/mnt/sdb1
/dev/sda6 /mnt/sda6 –t ext3
/dev/sdb1 /mnt/sdb1 –t ext3
Copiamo il contenuto della cartella di boot sulla chiavetta
cp –a /mnt/sda6/boot/* /mnt/sdb1
Sulla partizione di Linux, teniamo come backup la vecchia cartella di boot semplicemente rinominandola
e creaimo una nuova cartella vuota da usare come punto di montaggio
mv /mnt/sda6/boot
/mnt/sda6/boot.old
mkdir /mnt/sda6/boot
#(successivamente la potremo eliminare)
3. CONFIGURARE GRUB
Attenzione: è facile fare confusione d’ora in vanti!
Dal momento che il sistema si avvia da chiavetta usb, essa sarà SEMPRE riconosciuta DA GRUB (ripeto,
da GRUB, non da linux) come primo device: (hd0).
Una volta che grub si sarà avviato, caricherà il kernel.
Il kernel vede come primo disco il disco interno (non la flash memory come fa GRUB).
Questo è molto importante poichè nelle opzioni di boot del kernel dobbiamo passare il nome della
partizione di sistema con la nomenclatura dell kernel.
Se sbagliamo questo parametro, vedremo GRUB avviarsi ma finire in una busy box (una shell di
emergenza) poichè Linux non riesce a caricare il resto del sistema operativo.
Veniamo alla configurazione
Attualmente nel nostro /boot/GRUB/menu.lst troveremo qualcosa come questo
title GNU/Linux
root (hd0,5)
kernel /boot/vmlinuz-2.6.26-6-686 root=/dev/sda6 ro quiet splash
initrd /boot/initrd.img-2.6.26-6-686
boot
che va modificato in questo modo per usare la nuova partizione di boot
title GNU/Linux
root (hd0,0)
kernel (hd0,0)/vmlinuz-2.6.26-6-686 root=/dev/sda6 ro quiet splash
initrd (hd0,0)/initrd.img-2.6.26-6-686
boot
Spiegazione
Ricordiamo che l'istruzione root (hdx,x) indica dove è installato grub, cioè la partizione di boot).
root=/dev/sdxy è il parametro che dice al kernel dove di trova la partizione di sistema.
(hd0,0) è la prima prima partizione del primo device (secondo grub), cioè la nostra partizione di boot.
E’ necessario anteporla al nome del kernel, proprio per istruire GRUB sulla sua posizione. Non si scrive “/
boot/vmlinuz…” perché la partizione NON contiene la cartella boot ma il suo contenuto.
Notare che root=/dev/sda6 era già corretto e non va quindi modificato. Il kernel chiama i device sempre
allo stesso modo indipendentemente da dove esso venga caricato.
4. CONFIGURIAMO LINUX PER RICONOSCERE LA NUOVA PARTIZIONE DI BOOT (/etc/fstab)
La nostra partizione di boot non si trova sul disco fisso sda ma sdb, nella prima partizione primaria (sdb1).
Dobbiamo informare Linux di questo aggiungendo la riga
/dev/sdb1
/boot
ext3 defaults 0 0
nel file /etc/fstab
5. INSTALLIAMO GRUB SULL’MBR DELLA CHIAVETTA
Per rendere la chiavetta avviabile, è necessario installare il boot loader (lo stage 1) sul suo MBR.
Apriamo una console e digitiamo:
grub
> root (hd1,0)
> setup (hd1)
> quit
le istruzioni root e setup indicano rispettivamente:
dove si trova la partizione di boot
dove va installato lo stage 1
nota: stiamo dando i comandi dal live cd quindi la chiavetta è vista come secondo disco (hd1).
6. AVVIAMO LINUX
Entriamo nel BIOS e verifichiamo la sequenza di boot impostando usb come primo device.
Verifichiamo che la chiavetta sia inserita e avviamo il computer.
Dovrebbe presentarsi GRUB che ci permette di lanciare Linux e, se configurati in menu.lst, anche gli
altri sistemi operativi prensenti.
Se la chiavetta non è inserita, partirà Winsows.
Preso spunto dall'articolo
http://wiki.Linuxquestions.org/wiki/GRUB#Errors_and_solutions