Linux+Win9x+Grub HOWTO

Joel Rosen

Questo HOWTO dirà come usare il bootloader GRUB per trasformare il proprio computer in una macchina con un dual boot Windows + Linux, senza influenzare l’attuale installazione di Linux. Traduzione a cura di Claudio Cattazzo, <claudio@linux.it>.

Sommario

1. Introduzione ..............................................................................................................................................................2 1.1. Perché usare questo metodo? .........................................................................................................................2 1.2. Copyright and License....................................................................................................................................2

2. Requisiti .....................................................................................................................................................................2 2.1. Quali sono i requisiti? ....................................................................................................................................2

3. Procedura...................................................................................................................................................................2 3.1. Creare la partizione di Windows ....................................................................................................................3 3.2. Installare GRUB .............................................................................................................................................3 3.3. Installare Windows.........................................................................................................................................5

1. Introduzione

1.1. Perché usare questo metodo?

Sono un grande appassionato delle cose che non sono Microsoft, così quando ho ricevuto il mio nuovo computer l’ho avuto con Linux preinstallato. È una fantastica macchina desktop, ma mi mancano terribilmente i miei giochi di Windows e GIMP non è il massimo. Così ho finalmente ceduto ed ho deciso di rendere la macchina dual boot. Quando ho cercato istruzioni su come fare ciò, tutto quello che ho trovato sono state indicazioni su come installare Linux se si ha già Windows installato e come avviare con Loadlin. Sfortunatamente, poiché Loadlin funziona sotto DOS, il metodo di Loadlin di rendere il proprio sistema dual boot richiede che si abbia Windows installato sulla prima partizione del primo hard disk, a causa del fatto che Windows crede di essere il centro dell’universo e che tutti gli altri sistemi operativi dovrebbero ruotargli attorno. Questo è un problema se si ha già Linux su quella partizione e non si vuole distruggere il proprio sistema per installare Windows.

Qui è dove GNU GRUB, il GRand Unified Bootloader serve. Differisce da bootloader come LILO in quanto può mentire a Windows e fargli credere di essere installato sulla prima partizione anche se non lo è. Così si può tenere l’attuale sistema Linux dov’è ed installare Windows a fianco.

1.2. Copyright and License

Copyright (c) 2002 Joel Rosen. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with the no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license may be found here (http://www.gnu.org/copyleft/fdl.html).

2. Requisiti

2.1. Quali sono i requisiti?

Si avrà bisogno di:

• Un computer con un’installazione di Linux funzionante.

• Abbastanza spazio libero su disco per la nuova partizione di Windows.

• Un editor di partizioni come GNU Parted (http://www.gnu.org/software/parted/).

• GRUB (http://www.gnu.org/software/grub/) in rpm o sorgente.

• Un disco di avvio di Windows/DOS con il supporto per il CDROM ed un CD con installato Windows 9x, o un CD avviabile di installazione di Windows.

• (Consigliato) Un disco di avvio di Linux.

3. Procedura

3.1. Creare la partizione di Windows

Se si ha già una partizione libera o un disco per la propria installazione di Windows, si può saltare questa sezione. Altrimenti, si avrà bisogno di lanciare un editor di partizioni per deframmentare il proprio disco e creare una nuova partizione per Windows. Io ho usato GNU Parted (http://www.gnu.org/software/parted/) per la mia installazione; dovrebbe funzionare anche sfdisk. NON si usi fdisk, non preserverà i propri dati. E si noti che questo processo non è garantito, ci si assicuri di fare backup dei file importanti prima di iniziare.

Ecco come la mia tabella delle partizioni appariva prima dell’installazione:

Device      Start  End        System
/dev/hda1   1  3        Linux
/dev/hda2   4  1222        Extended
/dev/hda5   4  36        Linux swap
/dev/hda6   37  1222        Linux

/dev/hda1 è la mia partizione /boot (si può o non si può avere una partizione di boot separata per Linux), /dev/hda2 è una partizione estesa che contiene due drive logici, /dev/hda5 e /dev/hda6, che contengono la mia partizione swap di Linux e la partizione di installazione di Linux.

Da root, si lanci il proprio editor di partizioni. Si ridimensioni la propria partizione Linux rendendola quando piccola si vuole. (Ci si assicuri che la dimensione non sia più piccola della quantità di dati sul proprio disco.) Il programma deframmenterà per un bel po’ e poi cambierà la tabella delle partizioni. Si ridimensioni la partizione estesa che contiene la propria partizione Linux di conseguenza. Si dovrebbe ora avere abbastanza spazio inutilizzato sul proprio disco nel quale creare una nuova partizione primaria di Windows. Si prosegua e si crei la partizione con un filesystem Win95 FAT32 (LBA). Ora la propria tabella delle partizioni dovrebbe apparire come qualcosa di simile:

Device       Start      End       System
/dev/hda1     1      3       Linux
/dev/hda2     4      905       Extended
/dev/hda3     906      1222      Win95 FAT32 (LBA)
/dev/hda5     4      36       Linux swap
/dev/hda6     37      905       Linux

Consiglio fortemente di eseguire a questo punto fdisk e di scriversi tutte le informazioni sulle partizioni su un pezzo di carta. Se si commette un errore nella propria installazione, Windows sarà estremamente contento di riscrivere la tabella delle partizioni a suo piacimento ed in caso di emergenza ci sarà bisogno di sapere come sono le proprie partizioni.

3.2. Installare GRUB

3.2.1. Installazione

Si dovrebbe avere un RPM o un pacchetto sorgente di GRUB (http://www.gnu.org/software/grub/) da qualche parte sul proprio disco. Si prosegua lungo la procedura di installazione appropriata per il proprio sistema. Ora GRUB dovrebbe essere installato ma non caricato. Da root si esegua:

# /sbin/grub-install /dev/hda

Questo caricherà GRUB nel master boot record del proprio disco. Ora c’è bisogno di modificare /boot/grub/grub.conf per configurare il menu d’avvio di GRUB:

3.2.2. Modificare grub.conf

default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.7-10)
root (hd0,0)
kernel /vmlinuz-2.4.7-10 ro root=/dev/hda6
initrd /initrd-2.4.7-10.img
title Windows 98
map (hd0,0) (hd0,2)
map (hd0,2) (hd0,0)
rootnoverify (hd0,2)
chainloader +1
title DOS Boot Disk
map (hd0,0) (hd0,2)
map (hd0,2) (hd0,0)
chainloader (fd0)+1

Proseguiamo e vediamo cosa significa.

"default=0" e "timeout=10" faranno avviare Linux entro 10 secondi se non è stato toccato niente. "splashimage" è autoesplicativo e non molto importante.

"title" denota ogni impostazione di boot ed il testo che segue è quello che apparirà nel proprio menu all’avvio. "root" specifica quale partizione contiene la propria immagine del kernel Linux (questo potrebbe o no essere la propria partizione di root (/) attuale). Quindi, "root (hd0,0)" dice a GRUB che il kernel è sulla prima partizione di /dev/hda. Si può notare che GRUB ha un sistema di numerazione curioso, 0-3 per le partizioni primarie e 4+ per le partizioni logiche. La riga seguente dice a GRUB solo dove trovare il kernel e dov’è l’attuale partizione di root con il sistema Linux. "initrd" dice dov’è situata la propria immagine init del ramdisk. Si noti che queste poche righe probabilmente saranno alquanto differenti se non si ha una partizione /boot separata. Si veda la pagina info di GRUB se si necessita di maggiore aiuto.

Le righe "map" sotto la sezione di Windows 98 sono essenziali per far funzionare la propria installazione. Sono le righe magiche che ingannano Windows nel fargli credere di essere installato sulla prima partizione del primo disco. Se non si mappa la partizione di Windows come (hd0,0), Windows distruggerà la propria tabella delle partizioni e non si sarà in grado di avviare nulla.

"rootnoverify" dice a GRUB di avviare dalla partizione di Windows, ma di non tentare di montarla, e "chainloader +1" dice a GRUB di agganciarsi al bootloader di Windows che avvierà Windows.

La sezione "DOS boot disk" è necessaria se si andrà ad avviare da floppy per iniziare l’installazione di Windows, ma verrà utile anche dopo averlo installato se si vuole usare un disco di avvio DOS per qualsiasi ragione. Se il proprio CD di installazione di Windows è avviabile, si avrà bisogno di avere una sezione "Windows boot disk" che si aggancia al proprio device CDROM.

Ora si salvi grub.conf e si esca dal proprio editor di testo. Al contrario di LILO, GRUB non richiede che venga lanciato un eseguibile dopo che si è modificata la configurazione di boot. Ora, con il disco di avvio di Linux di emergenza a portata di mano, si provi a riavviare il computer. Quando il sistema parte si dovrebbe vedere il menu di GRUB con le tre opzioni di avvio. Si selezioni Linux. Con buone speranze, Linux si avvierà come al solito e GRUB sarà installato correttamente. Se così non fosse, si ha fortunatamente un disco di avvio di Linux così si può avviare Linux e correggere il proprio grub.conf. Una volta che si ha GRUB che avvia Linux con successo, è tempo di installare Windows.

3.3. Installare Windows

Si rimuovano tutti i dischetti ed i CD dal proprio computer e si riavvii. NON si avvii il proprio computer con dispositivi di installazione già nel drive. Se lo si fa, il proprio BIOS avvierà l’installazione di Windows direttamente e GRUB non avrà la possibilità di effettuare la sua magia. Quando compare il menu di GRUB, si inserisca il floppy o il CD e si selezioni il disco di avvio DOS o il CD di installazione di Windows, a seconda del proprio sistema di installazione. L’installazione di Windows dovrebbe vedere la partizione che è stata fatta per lui sul drive C:. Si prosegua e si installi Windows.

Ecco. Ora il proprio computer è impostato come una macchina in dual boot.