Dual Boot: risolto problema “selected cylinder exceeds maximum supported by BIOS”

Recentemente ho riscontrato la necessità di sostituire l’hd (di 20 GB) del mio portatile (un Asus L3500D del 2003) con un disco rigido più capiente (160 GB). Poichè sono solito utilizzare sia Windows che Linux ho dovuto abilitare sulla mia macchina il dual boot, in modo da poter scegliere da quale sistema operativo avviare il bootstrap (mediante GRUB). Metto in atto dunque la procedura standard, cioè installo prima Windows e successivamente Linux (Kubuntu Feisty 7.04). Entrambe le installazioni vanno a buon fine, ma al riavvio del sistema accade l’inaspettato: GRUB mi restituisce il famigerato errore 18, causato dall’impossibilità di accedere mediante BIOS alle locazioni dell’hard disk poste oltre il 1023esimo cilindro (dove si trova proprio la mia distro linux). Non demordo, cerco qualche notizia utile in rete e come soluzione viene proposto un aggiornamento del BIOS. Mi collego dunque al sito della Asus e noto con mio sommo dispiacere che il BIOS installato sul portatile è già alla versione più recente (115A), anno di rilascio: 2004. Poichè sono dell’opinione che le macchine si devono adattare alle necessità dell’uomo e non viceversa, cerco qualche soluzione alternativa. Dopo circa un milione di congetture, arrivo ad una soluzione piuttosto logica (e sensata): creare una partizione di boot per linux nei primi 256 MB dell’hd in cui verrà installato anche GRUB, successivamente la partizione NTFS ed infine la ext3 seguita dalla swap. Ok, cancello tutte le mie vecchie partizioni con il cd live di gparted (la panacea di tutti i mali) ed inserisco successivamente il cd di installazione di Kubuntu. Con l’utility integrata (QTParted) creo le partizioni sopra mensionate, i cui rispettivi punti di mount sono:

– /boot per la partizione di boot;

– /media/hda2 per la partizione NTFS;

– / per la partizione ext3;

– /swap per la partizione swap.

Ok, partizioni create, adesso definisco come root di GRUB la hd(0,0) che tradotto significa “la prima partizione del primo (ed unico in questo caso) hd” e successivamente passo all’installazione vera e propria di Linux. A procedura terminata riavvio il sistema ma ancora GRUB non fuonziona come dovrebbe. Ciò è dovuto al fatto che l’applicativo in questione non è stato installato nell’MBR (Master Boot Record) e per effettuare tale operazione uso questo tool: Super GRUB Disk (potete scaricarlo da qui, è gratuito), che mi permette anche di riparare GRUB in caso di mancato o cattivo funzionamento dello stesso. Installo dunque Windows XP, ben sapendo che tale operazione provocherà la sovrascrittura dell’MBR e quindi il successivo nuovo malfunzionamento di GRUB. Però ho sempre Super GRUB Disk dalla mia parte quindi non ho più motivo di temere nulla :). Bene, ora posso installare Windows e senza indugiare ulteriormente lo faccio. A installazione completata riavvio il sistema ed inserisco nel lettore CD il Super GRUB Disk. Scelgo l’opzione adatta al ripristino di GRUB ed il gioco è fatto. Riavvio il sistema e GRUB ha ripreso a funzionare ma, sorpresa delle sorprese, non mi da tra le opzioni la possibilità di avviare Windows. Ninete paura, mi dico, avvio Linux e da linea di comando accedo alla directory /boot/grub per poi modificare il file menu.lst attraverso l’editor di testo nano.

All’interno del file che ho mensionato precedentemente apporto le seguenti modifiche:

1) Imposto l’opzione timeout a 10 secondi (ciò significa che avrò 10 secondi per scegliere quale sistema operativo avviare)

 ## timeout sec
 # Set a timeout, in SEC seconds, before automatically booting the default entry
 # (normally the first entry defined).
 timeout         10

2) Commento l’opzione hidemenu (in modo da poter visualizzare al boot tutti i sistemi operativi installati sulla mia macchina senza dover premere il tasto ESC)

 ## hiddenmenu
 # Hides the menu by default (press ESC to see the menu)
 #hiddenmenu

Infine, inserisco tra le opzioni quella che mi permette di avviare Windows XP

 title         Microsoft Windows XP
 root          (hd0,1)
 makeactive
 chainloader   +1

CTRL+X per salvare il file appena modificato ed il gioco è fatto. Riavvio il sistema per l’ennesima volta e finalmente GRUB fà il suo dovere 🙂

A presto.

Dual Boot: risolto problema “selected cylinder exceeds maximum supported by BIOS”ultima modifica: 2008-06-17T09:07:00+02:00da nazarenolatella
Reposta per primo quest’articolo