Volevo essere in grado di avviare tutti i sistemi operativi senza dover attraversare molteplici menu. Sapevo di poter installare NT sopra Win9x e quest'ultimo sopra DOS. Al fine di avviare DOS, però, avrei dovuto passare attraverso il menu di NT e poi attraverso quello di Win9x. Volevo essere in grado di avviare tutti questi sistemi operativi in una volta sola.
Questo è risultato essere una sfida. Il problema con sistemi operativi Microsoft è che richiedono di essere avviati da una partizione primaria. GRUB entra in gioco a questo punto. Esso infatti può nascondere le partizioni primarie. Si possono usare fino a 3 partizioni per installare sistemi operativi Microsoft: GRUB nasconderà le altre 2 partizioni in modo che i sistemi operativi non possano vederle. Allo stesso tempo però, questo implica che avrete bisogno di un'altra partizione per condividere i dati tra DOS, Win9x e Windows 2000. La quarta partizione sarà utilizzata come partizione estesa.
Volevo anche un sistema basato su menu e GRUB ne fornisce uno carino.
Un'altra caratteristica apprezzabile di GRUB è che supporta Reiserfs e quindi non è necessario mantenere i file della directory /boot in una partizione ext2 separata.
Sono necessari 3 floppy disk. Trasformate il primo floppy in un disco di avvio di DOS. Copiate fdisk.exe e sys.exe su questo floppy.
FORMAT /S A: COPY FDISK.EXE A: COPY SYS.EXE A:
Utilizzate il secondo floppy per creare un disco di emergenza di Windows 98. Il terzo disco verrà utilizzato per GRUB.
Installate la vostra distribuzione Linux preferita. Durante questa operazione avrete bisogno di utilizzare fdisk per partizionare il vostro disco fisso: calcolate in anticipo quanto spazio su disco verrà occupato da ogni sistema operativo.
Io ho partizionato il mio disco fisso come segue:
Device Boot Start End Blocks Id System /dev/hda1 1 6 48163+ 16 Hidden FAT16 /dev/hda2 7 19 104422+ 16 Hidden FAT16 /dev/hda3 20 593 4610655 1b Hidden Win95 FAT32 /dev/hda4 594 3737 25254180 5 Extended /dev/hda5 594 848 2048256 6 FAT16 /dev/hda6 849 2123 10241406 7 HPFS/NTFS /dev/hda7 2124 2140 136521 82 Linux swap /dev/hda8 2141 2523 3076416 83 Linux
La prima partizione verrà utilizzata per avviare Windows 2000. 10 MB dovrebbero essere più che sufficienti per far ciò. Questa partizione dovrà contenere solo i file necessari per avviare NT come boot.ini, ntldr, ntdetect.com, etc. NT risiederà, nel mio esempio, nella partizione 6. Questa partizione è di tipo Hidden FAT16.
La seconda partizione conterrà DOS. Ritengo 100 MB sufficienti. Anche questa è di tipo FAT16.
La terza partizione è per Win9x. Ha una dimensione di 5 GB e è di tipo FAT32 per migliorare le performance.
Successivamente, create la partizione estesa con tutto lo spazio rimanente del vostro disco fisso. Questa verrà mostrata da fdisk come la partizione 4.
Create una partizione di 2 GB. Questa partizione verrà utilizzata per condividere i dati tra tutti i sistemi operativi. Verificate che la somma di tutte le partizioni sopra citate sia inferiore agli 8 GB. Questa è una limitazione del DOS.
Create poi la vostra partizione Windows 2000. Nell'esempio èdi 10 GB dato che questa versione di Windows richiede molto spazio. Per ragioni di velocità ho creato questa partizione di tipo HPFS/NTFS.
Successivamente, aggiungete le vostre partizioni di swap e di Linux. Assicuratevi di non avere una partizione separata per /boot. Le cose in GRUB vanno meglio se mantenete /boot nella partizione root.
Dopo aver installato Linux continuate formattando le partizioni FAT16:
mkdosfs /dev/hda1 mkdosfs /dev/hda2 mkdosfs /dev/hda6
Assicuratevi di avere l'ultima versione di GRUB. Nel mio caso sto utilizzando la versione 0.5.96.1. La versione fornita con la mia distribuzione è datata e mi ha dato molti problemi. L'ultima versione può essere scaricata da http://www.fsf.org.
Ora dovete installare GRUB sul floppy disk. Non dovete installarlo sul vostro disco fisso perchè Windows 2000 lo sovrascriverebbe.
grub-install '(fd0)'
Create il file menu.lst per GRUB. Questo file si trova in /boot/grub.
# # Sample boot menu configuration file # # Boot automatically after a minute. timeout 60 # By default, boot the second entry. default 1 # Fallback to the first entry. fallback 0 title Windows 2000 unhide (hd0,0) hide (hd0,1) hide (hd0,2) rootnoverify (hd0,0) chainloader +1 makeactive # For booting Linux title Linux root (hd0,7) kernel /boot/vmlinuz-2.2.17 root=/dev/hda8 video=matrox:vesa:261 title Windows 98 hide (hd0,0) hide (hd0,1) unhide (hd0,2) rootnoverify (hd0,2) chainloader +1 makeactive title DOS 6.22 hide (hd0,0) unhide (hd0,1) hide (hd0,2) rootnoverify (hd0,1) chainloader +1 makeactive # For booting Linux title Linux (single user) root (hd0,7) kernel /boot/vmlinuz-2.2.17 root=/dev/hda8 video=matrox:vesa:261 single title Partition 2 (floppy) hide (hd0,0) unhide (hd0,1) hide (hd0,2) chainloader (fd0)+1 title Partition 3 (floppy) hide (hd0,0) hide (hd0,1) unhide (hd0,2) chainloader (fd0)+1
Verificate di poter avviare Linux con il floppy disk. Se avete dei problemi, potete entrare nella linea di comando di GRUB e verificare cosa sta succedendo. GRUB è ha una buona documentazione, se siete in difficoltà potete consultarla.
Ho dovuto inizializzare la prima partizione prima di installare Windows 2000. Inserite il disco di avvio di DOS e riavviate il vostro computer. Dopo aver ottenuto il prompt di DOS, digitate quanto segue:
FDISK /MBR SYS C:
Ora potete proseguire ed installare Windows 2000. Ad un certo punto Windows 2000 vi chiederà su quale partizione volete che sia installato. La partizione che avete creato con fdisk potrebbe essere mostrata come danneggiata o non formattata. Continuate e selezionatela.
Per nascondere il menu di Windows 2000, modificate il file chiamato boot.ini che dovrebbe trovarsi nel disco C:. Cambiate il valore di timeout da 30 a 0.
[boot loader] timeout=0 default=multi(0)disk(0)rdisk(1)partition(1)\WINNT [operating systems] ...
Inserite il disco di GRUB. Quando compare il menu, inserite il disco di avvio di DOS. Selezionate la partizione 2 (floppy) nel menu. Premete enter. Questo avvierà il floppy disk e nasconderà la partizione 1 e 3.
Eseguite FDISK e verificate che il drive C: corrisponde alla partizione 2. Fatto ciò installate DOS:
SYS C:
Inserite il disco di GRUB. Alla visualizzazione del menu inserite il disco di emergenza di Windows 98. Selezionate la partizione 3 (floppy) nel menu. Premete enter. Questo avvierà il floppy disk e nasconderà le partizioni 1 e 2.
Eseguite FDISK e verificate che il disco C: corrisponda alla partizione 3. Fatto ciò installate Windows 98:
SYS C:
Verificate che tutto funzioni correttamente da GRUB.
Dovreste essere in grado di avviare tutti e 4 i sistemi operativi dal floppy disk di GRUB.
Se tutto sembra corretto, potete procedere ed installare GRUB sul vostro disco fisso. Da Linux digitate:
grub-install /dev/hda
Ora dovreste essere in grado di avviare tutti e 4 i sistemi operativi dal menu di GRUB. Buon divertimento!
Ho trovato questi link molto utili durante la configurazione del mio sistema.
Mi piacerebbe che mi comunicaste la vostra esperienza (buona o cattiva) con questo documento. Se avete suggerimenti per l'aggiunta di altri SO, per favore inviateli a me in modo che possa aggiungerli al documento.