Raccolta di howto, informazioni, consigli, trucchi e documentazione di varia utilità per ricordare tante cose utili

mercoledì 4 novembre 2009

Avviare Linux dal boot manager di Windows Vista

Solitamente quando sullo stesso PC si vuole installare sia Windows che Linux si usa GRUB per decidere al boot quale sistema avviare sulla macchina. Può tuttavia in alcune situazioni risultare utile utilizzare il boot manager di Windows per avviare entrambi i sistemi operativi (per esempio in presenza di alcuni software di sicurezza che hanno il brutto vizio di riscrivere il MBR se non trovano quello originale di Windows). Per raggiungere questo risultato bisogna procedere comedescritto di seguito.
L'esempio si basa sull'ipotesi di un di un disco sata con una partizione primaria dove è installato Windows e tre estese per Linux e lo swap e per condividere i dati tra i duo S.O. Ovvero le partizioni seguono il seguente schema
/dev/sda1     Windows Vista NTFS
/dev/sda5     Linux ext3
/dev/sda6     swap linux
/dev/sda7     FAT32
Per prima cosa dobbiamo installare il GRUB non più nel MBR (in quanto windows lo sovrascrive con il suo) ma direttamente nella partizione dove è installato Linux. Dopo aver avviato Linux (eventualmente tramite un liveCD se nessun boot manager è funzionante) avviare grub e dare i seguenti comandi
grub> root(hd0,4)
grub> setup(hd0,4)
grub> quit
Successivamente per poter istruire correttamente il Windows Boot Manager dobbiamo effettuare una copia del boot sector di Linux (sempre rimanendo in Linux) con il comando
dd if=/dev/sda5 of=/tmp/linux.bin bs=512 count=1
dove /tmp è una cartella che dovrà essere accessibile anche a Windows, nell'esempio è il mount point di /dev/sda7 ma potrebbe essere un qualunque dispositivo rimovibile formattato con FAT.

Aquesto punto possiamo passare a Windows, eventualmente installandolo se non lo abbiamo ancora fatto, e comunque ripristinando nel MBR il codice del boot manager di Vista. Tutte le successive operazioni elencate dovranno essere eseguite da una finestra di comandi con i privilegi amministrativi.
Per prima cosa copiare il file linux.bin precedentemente creato nella radice della partizione attiva; solitamente è il disco C: ma se non si è sicuri utilizzare il comando diskmgmt.msc per verificarlo.
Usare il comando bcdedit.exe per aggiungere la "entry" di GRUB nel boot manager di Vista con la seguente sintassi
bcdedit /create /d "GRUB" /application BOOTSECTOR
questo comando ritornerà un id del tipo {25ac1879-54cf-04bd-dfc73e60be72} che di seguito chiamerò esclusivamente {ID}. Si dovrà quindi specificare quale device contiene la copia del boot sector ed in quale file con i comandi:
bcdedit /set {ID} device boot
bcdedit /set {ID} PATH \linux.bin
Alla fine dobbiamo dire al boot manager in quale ordine proporci le scelte e per quanto tempo con i comandi
bcdedit /displayorder {ID} /addlast
bcdedit /timeout 10
Al reboot successivvo apparirà la schermata del Windows Boot Manager dando la scelta se avviare Windows o GRUB (dal quale sarà poi possibile avviare Linux)

P.S.
Avendone la possibilità è tuttavia più indicato e più semplice installare EasyBCD che permette di configurare il boot manager di Vista in maniera più semplice e intuitiva

Nessun commento: