A Ovest Di Paperino

Welcome to the dark side.

Chiavetta USB multi boot per Windows

Antefatto: ho deciso di fare l’upgrade a Windows 7 del mediacenter allettato dalla possibilità di installare un sintonizzatore CableCard e guardare anche qualche canale criptato. Avevo preso in considerazione anche di sostituire l’architettura attuale con un Atom per il surriscaldamento estivo e conseguente rumore di ventolame, ma poi ho pensato che i canali criptati hanno bisogno di una CPU robusta per poter essere fruibili normalmente. Ho deciso di visitare Fry’s per approfittare di due offerte “1 day only”: un sistema di raffreddamento liquido Corsair dal prezzo contenuto (56$) e con ottime review e un HD SSD da 32GB grande abbastanza per Windows 7 senza fronzoli ad un prezzo altrettanto decente (50$ dopo rebate), interessante non tanto per le prestazioni ma per il minor apporto di energia cinetica/termica/sonora nel sistema.

L’HD è risultato probabilmente difettoso, in quanto è scomparso completamente dal radar nel mezzo dell’installazione dell’OS; il sistema di raffreddamento invece era abbastanza ingombrante per il case living room friendly della terza versione del mediacenter. È dovuto scattare il cosiddetto pellegrinaggio di ritorno per la restituzione del radiatorone e la sostituzione dell’HD. Ho approfittato per cercare una chiavetta da 4GB da rendere bootabile e verificare alcune teorie sulla lentezza di installazione di Windows su certi sistemi, ma quel giorno era in offerta irrifiutabile venticinquedollaripiùtasse una chiavetta da 16GB. Ho pensato: qualcuno si sarà già posto il problema di creare una chiavetta multiboot (x86, AMD64, se rver, client, ecc.) e che sarebbe tornata molto comoda al posto delle solite 3-4 chiavette per tutti gli OS. Per il raffreddamento ho trovato una soluzione molto più pratica e decisamente meno costosa.

Tornando in topic: è stato un bagno di sangue ma alla fine ce l’ho fatta. In sintesi: bisogna creare più di una partizione usando uno di quei tool che flippa il “removable bit” e ingegnarsi con qualche bootloader abbastanza avanzato da starci nel Master Boot Record ed essere al tempo stesso in grado di giocare al gioco delle tre carte con le partizioni create.

In dettaglio, anche per mia futura memoria, i passi seguiti.

Ingredienti:

Passi, da seguire in ordine religioso:

  1. Installare GRUB sull’MBR della chiavetta usando il GUI installer; la procedura è indicata in dettaglio nella sezione uno di questa guida (in inglese).
  2. Flippare il media bit usando il tool della Lexar (funziona anche su chiavette di marca diversa); rimuovere e reinserire la chiavetta
    Lexar-Flip-Removable-Bit
  3. Creare due o più partizioni a seconda del numero di OS da rendere installabili; nel mio caso 3 (WHS, Win7 x86/64) più una per i dati. La prima partizione va formattata come FAT o FAT32 mentre per le altre si può scegliere anche NTFS
  4. copiare il contenuto dei dischi di installazione su ogni partizione
  5. creare un file di testo con il “nome” della partizione in ogni partizione (es.: WHS.txt; Win7x86.txt; ecc.)
  6. copiare il file grldr nel root folder della prima partizione
  7. creare un file di testo con il nome di menu.lst nel root folder della prima partizione e editarlo usando questo template:

title Windows Home Server
find --set-root /win7x86.txt
hide()
[…]
find --set-root /WHS.txt
unhide ()
chainloader /bootmgr

title Windows 7 x86
find --set-root /WHS.txt
hide ()
[…]
find --set-root /win7x86.txt
unhide ()
chainloader /bootmgr

In pratica: ogni voce di menu si occupa di nascondere tutte le partizioni non interessanti usando i tag file nel punto 5. e di rendere disponibile solo quella da cui fare il boot, che viene settato con il comando chainloader.

L’installazione è stata avviata con successo per tutti i tre OS sul mio laptop e perciò, come sempre in questi casi è garantita:

works-on-my-machine-starburst

-quack