Old:Dual Boot Linux-Windows: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
Nessun cambiamento nella dimensione ,  22 lug 2005
nessun oggetto della modifica
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
Beh, non tutti possono fare a meno di avere installato anche un sistema Windows sulla propria macchina e quindi spesso è necessario far convivere questi due OS.<br>
Chi di voi non ha mai visto un boot di linux con lo splash screen attivo , magari su unarivista o da un amico , e ci siamo detti chiss� quanto sia difficile farlo,bene dopo questa guida scoprirete il contrario:
Storicamente questa convivenza si è dimostrata spesso poco "pacifica", infatti a non pochi di noi è capitato di non poter accedere a questo o quel sistema operativo, ben sapendo che all'ultima accensione tutto funzionava per il meglio.<br>
Di solito, per quella che è la mia esperienza in fatto di dual boot, posso "addossare" buona parte della colpa di questi malfunzionamenti, alla poca apertura del boot loadr di Windows rispetto agli altri sistemi operativi esistenti.<br>
Per ovviare a questo tipo di problema è possibile percorrere diverse scelte:<br>


# Installare un bootloader più comprensivo (grub, lilo, gag, etc. etc.) e gestire tutto tramite quello;<br>
Mi raccomando occhio a quello che fate dovete essere root per seguire questa guida
# Usare il bootloader di Windows, per avviare anche gli altri OS a cui siamo interessati;<br>


Questo articolo prova a spiegare in modo semplice come impostare ed utilizzare il secondo metodo.<br>
inanzitutto se gi� non li abbiamo ci servono i sorgenti del kernel
Lo spunto e le nozioni riportate derivano dall'articolo di '''Rover''' presente a [http://www.littlewhitedog.com/content-52.html questo indirizzo].


Installeremo in sequenza, prima Windows e poi Linux: per il primo basterà seguire le varie schermate, mentre per il secondo occorrà qualche accortezza in più.<br>
<pre>
Durante l'installazione della distro infatti, verrà richiesto di configurare un bootloader (di solito LILO o grub) e pertanto dovremo fare attenzione alla posizione dove verrà posizionato tale software.<br>
$wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
In altre parole, un boot loader può essere installato nell'inizio di un disco ( il famoso '''MBR''', ovvero il Master Boot Record), in una partizione ben precisa o in un floppy.
#cd /usr/src
#tar xvfj /path/linux-2.6.10.bz2
#rm linux (in caso avessimo gi� ricompilato questo link � da eliminare , e da ricreare)
#ln -s linux-2.6.10 linux
</pre>


Visto che siamo decisi a lasciare al boot loader di Windows l'onere di tutto il lavoro, è necessario per il momento scegliere la terza opzione (/dev/fd0), tenendo a mente di dover installare successivamente il boot loader sul disco.
poi ci occore la patch per lo splash
Una volta completata la procedura di installazione del sistema base ci verrà richiesto di riavviare il sistema, e noi utilizzeremo il disco floppy appena creato per rientrare nel nostro sistema.<br>
Al login accediamo come superutente e provvediamo a configurare il bootloader sul disco fisso usando il comando '''grub-install''' e specifando al partizione del nostro disco, corrispondente alla / del sistema linux.<br>
Ad esempio, nel mio caso ho:


/dev/hda7 ---> /
<pre>
/dev/hda6 ---> /home
# wget http://dev.gentoo.org/~spock/projects/gensplash/archive/fbsplash-0.9.1-2.6.10-rc3-bk6.patch
</pre>


quindi devo scegliere /dev/hda7.<br>
Immagino che qulcuno stia dicendo ti sei sbagliato , ma non mi sono sbagliato lo s� che la patch � per il 2.6.10-rc m� questa � la ultima versione disponibile di questa patch e con una minima modifica andr� benone per il nostro scopo
Pertanto il comando sarà:
<pre>#grub-install /dev/hda7</pre>
A questo punto '''grub-install''' preleverà dal disco floppy che abbiamo creato, i file di cui ha bisogno per clonarsi sul disco: è buona abitudine impostare il floppy in sola lettura per evitare modifiche dei file ed avere sempre una alternativa per far partire il proprio sistema linux.<br>
A questo punto possiamo disconnetterci come superutente (comando '''logout''') e rientrare come utente semplice.<br>
Dopo aver aperto una shell eseguite questo comando:


<pre>$ dd if=/dev/hda7 bs=512 count=1 of=/home/USER/linux.bin</pre>
<pre>
#mv fbsplash-0.9.1-2.6.10-rc3-bk6.patch linux
#cd linux
#patch -p1 < fbsplash-0.9.1-2.6.10-rc3-bk6.patch linux
</pre>


dove USER è il vostro utente.<br>
da notare l'errore che ci restituir� patch
Questo comando crea un file chiamato '''linux.bin''' (ci servirà in seguito), contenente i primi 512 byte della nostra partizione /, la stessa in cui, guarda caso, abbiamo installato il bootloader.<br>
Tale file ci servirà per istruire Windows ad avviare anche l'altro sistema operativo.<br>
Sempre dalla shell, copiamo '''linux.bin''' su un floppy vuoto, precendentemente inserito nell'apposito lettore con


<pre>$ mcopy /home/USER/linux.bin a:</pre>
ora se ci d� l'errore dobbiamo editare il file che come ho detto poche righe f� crea l'errore


NB: '''mcopy''' fa parte del pacchetto degli '''mtools''', nel caso non fosse installato e possibile usare i metodi standard di mount del device e di copia di un file.<br>
<pre>
Nel caso non si disponga di un drive floppy, e possibile usare un qualsiasi supporto utilizzabile in scrittura da Linux (una partizione di fat32, una pen drive, un cdrw, etc etc)<br>
#vi include/linux/sysctl.h
A questo punto dobbiamo riavviare il sistema: è da notare come Windows ancora non rilevi la presenza di Linux.
</pre>
Una volta loggati come utente Administrator o equivalente, possiamo dedicarci alle modifiche.
(usate il vostro editor preferito)


Il boot manager di Windows (almeno nelle versioni più recenti come 2000 o Xp) viene impostato nel file nascosto '''boot.ini''', presente nella directory radice dove è installato il sistema, come ad esempio c:\ .<br>
andate alla riga 138 e subito dopo
Una volta attivata la '''visualizzazione dei file nascosti''' e quella dei '''file di sistema''', è possibile aprire boot.ini ed osservarne il contenuto.<br>
Il file in questione si presenta originariamente così:


<pre>   [boot loader]
<pre>
    timeout=15
KERN_COMPUTE=68, /* adjust timeslices for a compute server */
    default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
</pre>
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect</pre>  


aggiungete questa riga
<pre>
KERN_FBSPLASH=69, /* string: path to fbsplash helper */
</pre>


Per poter gestire Linux è sufficiente aggiungere la seguente riga:
ok salvate il file , e giunta ora di compilare il nostro kernel.


<pre>c:\linux.bin="Linux"</pre>
<pre>
#make menuconfig
</pre>
(usate pure il metodo che pi� vi aggrada)


personalizzabile sia nel nome del file (linux.bin) che nell'etichetta da visualizzare (Linux).<br>
scegliamo le opzioni che ci servono per il nostro kernel , non scendo nei particolari perch� esula dall argomento trattato da questa guida.
Preleviamo il file '''linux.bin''' che abbiamo prodotto con il comando '''dd''' e copiamolo nella directory c:\ .<br>
A questo punto possiamo riavviare il sistema e scopriamo che non si avvia più automaticamente Windows, ma ci viene proposta anche la scelta di Linux!!!<br>
Una volta selezionata quest'ultima voce, ci troviamo davanti il bootloader fornito dall'istallazione di Linux.


Ai più questa soluzione può sembrare contorta quanto inutile, ma a mio avviso consente di gestire Linux in modo decisamente più trasparente se è presente un dual boot con Windows, visto che quest'ultimo non dovrà essere "spodestato" dall'MBR per far posto al LILO o grub di turno.<br>
nella sezione Device Driver/Graphic Support
E, finora, questo metodo non mi ha '''MAI''' abbandonato!<br>
controlliamo che la voce '''Support for frame buffer devices''' sia impostata come statica
ovvero * e anche le voci '''VGA 16-color graphics support''' e '''VESA VGA graphics support''' siano sempre settate statiche, mi raccomando non attiviamo la voce '''Logo configuration'''
ma attiviamo quella successiva ovvero '''Support for the framebuffer splash'''


[[Utente:Ldonesty|Ldonesty]]
ok ora finite la vostra configurazione.
 
ora partiamo con la compilazione
 
diamo sempre da root il comando
 
<pre>
#make -j4
</pre>
(il -j4 serve per avviare 4 processi di compilazione paralleli, in pratica si ottimizza la compilazione)
 
se non riceviamo errori di sorta procediamo
 
ora se gi� non le abbiamo necessitiamo delle splashutils quindi :
aggiungiamo nel nostro sources.list il repository
 
<pre>
deb http://ftp.nluug.nl/ftp/pub/os/Linux/distr/esware/kenny/i386/ ./
</pre>
 
aggiorniamo il nostro db dei pacchetti
 
<pre>
#apt-get update
</pre>
 
e infine installiamo i nostri tools
 
<pre>
#apt-get install splashutils
</pre>
 
dopodich� dobbiamo creare il file che conterra la nosta immagine di splash
 
prima per� � meglio se ci creiamo un backup di questo file non si s� mai
 
<pre>
#cp usr/initramfs_data.cpio.gz usr/initramfs_data.cpio-old.gz
</pre>
 
ora procediamo ,dobbiamo avere il nostro tema estratto in /etc/splash
 
esempio
 
<pre>
matrix:~# ls /etc/splash/
linux
 
matrix:~# ls /etc/splash/linux/
bootsplash-debblue-1280x1024.jpg
1280x1024.cfg vt-debblue-1280x1024.jpg
</pre>
 
benissimo ora diamo
<pre>
#splash_geninitramfs -g usr/initramfs_data.cpio.gz -r 1280x1024 NOME_TEMA
</pre>
 
sostituite 1280x1024 con lq rsoluzione che usate al boot e NOME_TEMA con il nome del tema che avete scelto e precedentemente etratto in /etc/splash
 
ps controllate il file di configurazione del tema prima di procedere per controllare chepunti alla immagine giusta
 
nel mio caso il file dice:
<pre>
# name of the picture file (full path recommended)
jpeg=/etc/splash/linux/vt-debblue-1280x1024.jpg
silentjpeg=/etc/splash/linux/bootsplash-debblue-1280x1024.jpg
</pre>
 
controllo se � davvero cosi
 
<pre>
matrix:/etc/splash/linux# ls | grep jpg
bootsplash-debblue-1280x1024.jpg
vt-debblue-1280x1024.jpg
</pre>
 
bene possiamo procedere
 
controlliamo per scrupolo se il file davvero contiene l'immagine
 
<pre>
#ls -l usr/initramfs_data.cpio.gz
matrix:/usr/src/linux# ls -l usr/initramfs_data.cpio.gz
-rw-r--r-- 1 root root 125245 2005-01-10 20:53 usr/initramfs_data.cpio.gz
</pre>
 
benissimo l'immagine c� lo possiamo notare dalla dimensione del file
 
ora ricreiamo l'iimagine del kernel
 
<pre>
#make -j4 bzImage
</pre>
 
in seguito creiamo e installiamo i moduli del kernel
 
<pre>
#make modules && make modules_install
</pre>
 
se avete gi� un altra versione del kernel 2.6.10 mi raccomando eliminiamo i vecchi moduli
 
bene la configurazione del kernel � finita ora dobbiamo solo copiarlo e modificare lilo/grub
 
<pre>
#cp System.map /boot/System.map-2.6.10-gensplash
#cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.10-rc3-ck1
</pre>
 
ok ora il kernel � installato correttamente non rimane che creare la nostra immagine initrd e siamo quasi al termine
 
<pre>
#mkinitrd -o /boot/initrd-2.6.10-gensplash.img -r /dev/hdax 2.6.10
</pre>
 
sostituite hdx con la vostra partizione di boot
 
ora non rimane che modificare lilo/grub
 
<pre>
#vi /etc/lilo.conf
image=/boot/vmlinuz-2.6.10-gensplash
label=2.6.10-gensplash
read-only
append="video=vesafb:1280x1024x256 splash=silent,theme:linux"
initrd=/boot/initrd-2.6.10-gensplash.img
</pre>
 
allora nella seconda riga occorre sostituire 1280x1024 con la vostra risoluzione , � linux con il nome del tema scelto
 
un altro bel giochino e la voce silent , se lo sostituite con verbose potete vedere i messaggi di boot da subito mentre se lasciate cos� vedrete l'immagine silen ovvero senza messaggi , vi ricordo che se siete in silent potete switchare la visualizzazione in verbose premendo F2
 
ok ora non rimane che rilanciare lilo
 
<pre>
#lilo -v
</pre>
 
se non ci mostra errori possiamo riavviare e goderci il nostro splash.
 
Volevo ringraziare ldonesty e debianizzati.org per il supporto nella stesura di questa guida , in caso di problemi postate pure.
 
Autore: debian
 
[[Categoria:Kernel]]
47

contributi

Menu di navigazione