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

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
m (task Revisione Wiki #44)
 
(15 versioni intermedie di 6 utenti non mostrate)
Riga 1: Riga 1:
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:
{{Old}}
__TOC__
== Introduzione ==
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>
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 bootloader di Windows rispetto agli altri sistemi operativi esistenti.<br>
Per ovviare a questo tipo di problema è possibile percorrere diverse scelte:<br>


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


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


<pre>
Installeremo in sequenza, prima Windows e poi Linux: per il primo basterà seguire le varie schermate, mentre per il secondo occorrerà qualche accortezza in più.<br>
$wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
Durante l'installazione della distro infatti, verrà richiesto di configurare un bootloader (di solito LILO o GRUB) e pertanto dovremo fare attenzione alla posizione in cui verrà posto tale software.<br>
#cd /usr/src
In altre parole, un bootloader 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.
#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>
 
poi ci occore la patch per lo splash
 
<pre>
# wget http://dev.gentoo.org/~spock/projects/gensplash/archive/fbsplash-0.9.1-2.6.10-rc3-bk6.patch
</pre>
 
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
 
<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>
 
da notare l'errore che ci restituir� patch
 
ora se ci d� l'errore dobbiamo editare il file che come ho detto poche righe f� crea l'errore
 
<pre>
#vi include/linux/sysctl.h
</pre>
(usate il vostro editor preferito)
 
andate alla riga 138 e subito dopo
 
<pre>
KERN_COMPUTE=68, /* adjust timeslices for a compute server */
</pre>
 
aggiungete questa riga
<pre>
KERN_FBSPLASH=69, /* string: path to fbsplash helper */
</pre>
 
ok salvate il file , e giunta ora di compilare il nostro kernel.


== Copia su floppy del MBR ==
Visto che siamo decisi a lasciare al bootloader di Windows l'onere di tutto il lavoro, è necessario per il momento scegliere la terza opzione (<code>/dev/fd0</code>), tenendo a mente di dover installare successivamente il bootloader sul disco.
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 <code>'''grub-install'''</code> e specificando la partizione del nostro disco, corrispondente alla <code>/</code> del sistema Linux.<br>
Ad esempio, nel mio caso ho:
<pre>
<pre>
#make menuconfig
/dev/hda7 ---> /
/dev/hda6 ---> /home
</pre>
</pre>
(usate pure il metodo che pi� vi aggrada)
quindi devo scegliere <code>/dev/hda7</code>.<br>
 
Pertanto il comando sarà:
scegliamo le opzioni che ci servono per il nostro kernel , non scendo nei particolari perch� esula dall argomento trattato da questa guida.
<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>
nella sezione Device Driver/Graphic Support
A questo punto possiamo disconnetterci come superutente (comando '''logout''') e rientrare come utente semplice.<br>
controlliamo che la voce '''Support for frame buffer devices''' sia impostata come statica
Dopo aver aperto una shell eseguite questo comando:
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'''
 
ok ora finite la vostra configurazione.
 
ora partiamo con la compilazione


diamo sempre da root il comando
<pre>$ dd if=/dev/hda7 bs=512 count=1 of=/home/USER/linux.bin</pre>


<pre>
dove USER è il vostro utente.<br>
#make -j4
Questo comando crea un file chiamato <code>'''linux.bin'''</code> (ci servirà in seguito), contenente i primi 512 byte della nostra partizione <code>/</code>, la stessa in cui, guarda caso, abbiamo installato il bootloader.<br>
</pre>
Tale file ci servirà per istruire Windows ad avviare anche l'altro sistema operativo.<br>
(il -j4 serve per avviare 4 processi di compilazione paralleli, in pratica si ottimizza la compilazione)
Sempre dalla shell, copiamo <code>'''linux.bin'''</code> su un floppy vuoto, precedentemente inserito nell'apposito lettore con


se non riceviamo errori di sorta procediamo
<pre>$ mcopy /home/USER/linux.bin a:</pre>


ora se gi� non le abbiamo necessitiamo delle splashutils quindi :
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>
aggiungiamo nel nostro sources.list il repository
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)<br>


<pre>
== Modifica del file <code>boot.ini</code> ==
deb http://ftp.nluug.nl/ftp/pub/os/Linux/distr/esware/kenny/i386/ ./
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.


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


<pre>
<pre>   [boot loader]
#apt-get update
    timeout=15
</pre>
    default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect</pre>  


e infine installiamo i nostri tools


<pre>
Per poter gestire Linux è sufficiente aggiungere la seguente riga:
#apt-get install splashutils
</pre>


dopodich� dobbiamo creare il file che conterra la nosta immagine di splash
<pre>c:\linux.bin="Linux"</pre>
 
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.
personalizzabile sia nel nome del file (<code>linux.bin</code>) che nell'etichetta da visualizzare (Linux).<br>
Preleviamo il file <code>'''linux.bin'''</code> che abbiamo prodotto con il comando '''dd''' e copiamolo nella directory <code>c:\ </code>.<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.


Volevo ringraziare ldonesty e debianizzati.org per il supporto nella stesura di questa guida , in caso di problemi postate pure.
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>
E, finora, questo metodo non mi ha '''MAI''' abbandonato!<br>


Autore: debian
{{Autori
|Autore=[[Utente:Ldonesty|Ldonesty]]
}}

Versione attuale delle 09:57, 7 mag 2016

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


Introduzione

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.
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.
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 bootloader di Windows rispetto agli altri sistemi operativi esistenti.
Per ovviare a questo tipo di problema è possibile percorrere diverse scelte:

  1. installare un bootloader più comprensivo (grub, lilo, gag, etc.) e gestire tutto tramite quello;
  2. usare il bootloader di Windows, per avviare anche gli altri OS a cui siamo interessati;

Questo articolo prova a spiegare in modo semplice come impostare ed utilizzare il secondo metodo.
Lo spunto e le nozioni riportate derivano dall'articolo di Rover presente a questo indirizzo.

Installeremo in sequenza, prima Windows e poi Linux: per il primo basterà seguire le varie schermate, mentre per il secondo occorrerà qualche accortezza in più.
Durante l'installazione della distro infatti, verrà richiesto di configurare un bootloader (di solito LILO o GRUB) e pertanto dovremo fare attenzione alla posizione in cui verrà posto tale software.
In altre parole, un bootloader 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.

Copia su floppy del MBR

Visto che siamo decisi a lasciare al bootloader 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 bootloader sul disco. 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.
Al login accediamo come superutente e provvediamo a configurare il bootloader sul disco fisso usando il comando grub-install e specificando la partizione del nostro disco, corrispondente alla / del sistema Linux.
Ad esempio, nel mio caso ho:

/dev/hda7 ---> /
/dev/hda6 ---> /home

quindi devo scegliere /dev/hda7.
Pertanto il comando sarà:

# grub-install /dev/hda7

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.
A questo punto possiamo disconnetterci come superutente (comando logout) e rientrare come utente semplice.
Dopo aver aperto una shell eseguite questo comando:

$ dd if=/dev/hda7 bs=512 count=1 of=/home/USER/linux.bin

dove USER è il vostro utente.
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.
Tale file ci servirà per istruire Windows ad avviare anche l'altro sistema operativo.
Sempre dalla shell, copiamo linux.bin su un floppy vuoto, precedentemente inserito nell'apposito lettore con

$ mcopy /home/USER/linux.bin a:

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.
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)

Modifica del file boot.ini

A questo punto dobbiamo riavviare il sistema: è da notare come Windows ancora non rilevi la presenza di Linux. Una volta loggati come utente Administrator o equivalente, possiamo dedicarci alle modifiche.

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:\ .
Una volta attivata la visualizzazione dei file nascosti e quella dei file di sistema, è possibile aprire boot.ini ed osservarne il contenuto.
Il file in questione si presenta originariamente così:

   [boot loader]
    timeout=15
    default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect


Per poter gestire Linux è sufficiente aggiungere la seguente riga:

c:\linux.bin="Linux"

personalizzabile sia nel nome del file (linux.bin) che nell'etichetta da visualizzare (Linux).
Preleviamo il file linux.bin che abbiamo prodotto con il comando dd e copiamolo nella directory c:\ .
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!!!
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.
E, finora, questo metodo non mi ha MAI abbandonato!




Guida scritta da: Ldonesty Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized