lunedì 7 febbraio 2011

Installare Windows su un drive USB

Nonostante Microsoft neghi che sia possibile, Windows XP può, con un piccolo hack, essere installato in un disco USB oppure in un pen drive. Sto parlando di un’installazione completamente contenuta in un dispositivo USB, comprese tutte le applicazioni di cui abbiamo bisogno. Anche i giochi funzionano normalmente e le prestazione del disco sono ottime, se utilizziamo un dispositivo USB 2.
Potremmo creare un sistema di backup da utilizzare nel caso in cui l’installazione principale sia resa non utilizzabile a causa di un virus o di un malware. Oppure potremmo avere il nostro Windows portabile (da tasca) da utilizzare al lavoro quando vogliamo eseguire applicazioni che non possono essere installate nel computer dell’ufficio.
Ecco di cosa abbiamo bisogno, per iniziare:
• un PC con Windows XP installato per eseguire i passi di questo tutorial;
• un PC che sia in grado di fare il boot da un dispositivo USB. Le moderne schede madri dovrebbero avere tutte questa capacità;
• un disco o pen drive USB;
• un CD originale di Windows XP. Questo procedimento è stato verificato con Windows XP SP1 ma sembra che funzioni anche con le prime versioni di Windows XP;
• un software che permetta di modificare i file ISO, come per esempio WinISO;
• il CAB SDK dal sito della Microsoft;
• un software per masterizzare le immagini ISO.
Sommario
Ecco come precederemo: creeremo un’immagine ISO del CD di installazione di Windows, modificheremo alcuni file all’interno dell’ISO e masterizzeremo un nuovo cd con il quale sarà possibile installare Windows XP sul nostro dispositivo USB.
Creazione del file ISO
Se utilizziamo WinISO, selezioniamo Make ISO dal menù Actions, dopo aver inserito il CD di installazione di Windows XP.
Estrazione dei file da modificare
Riavviamo WinISO ed apriamo il file ISO appena creato (File -> Open). Selezioniamo i seguenti file dall’ cartella I386:
• TXTSETUP.SIF
• DOSNET.INF
• USB. IN_
• USBPORT.IN_
• USBSTOR.IN_
ed estraiamoli in una cartella a piacere (Actions -> Extract).
Estraiamo i file .IN_
Usiamo il Cab SDK (dalla linea di comando) per estrarre il contenute dei file .IN_. Ognuno di questi file contiene esattamente un file .INF. Per esempio, per estrarre il file USBSTOR.IN_ dobbiamo digitare: “cabarc x USBSTOR.IN_“. Scompattando i file .IN_ dobbiamo ottenere questi file:
• USB.INF
• USBPORT.INF
• USBSTOR.INF
Ora possiamo eliminare i file .IN_.
Modifica del file TXTSETUP.INF
Spostare le seguenti voci dalla sezione [InputDevicesSupport.Load] nella sezione [BootBusExtenders.Load], come mostrato di seguito:
[BootBusExtenders.Load]
pci = pci.sys
acpi = acpi.sys
isapnp = isapnp.sys
acpiec = acpiec.sys
ohci1394 = ohci1394.sys
usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbstor = usbstor.sys
[InputDevicesSupport.Load]
usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbccgp = usbccgp.sys
hidusb = hidusb.sys
serial = serial.sys
serenum = serenum.sys
usbstor = usbstor.sys
Ora facciamo lo stesso per le sezioni [BootBusExtenders] e [InputDevicesSupport]:
[BootBusExtenders]
pci = “PCI-Bustreiber”,files.pci,pci
acpi = “ACPI Plug & Play-Bustreiber”,files.acpi,acpi
isapnp = “ISA Plug & Play-Bustreiber”,files.isapnp,isapnp
acpiec = “Integrierter ACPI-Controllertreiber”,files.none,acpiec
ohci1394 = “IEEE-1394-Bus-OHCI-konformer Anschlusstreiber”, files.ohci1394 , ohci1394
usbehci = “Erweiterter Hostcontroller”,files.usbehci,usbehci
usbohci = “Open Hostcontroller”,files.usbohci,usbohci
usbuhci = “Universeller Hostcontroller”,files.usbuhci,usbuhci
usbhub = “Standard-USB-Hubtreiber”,files.usbhub,usbhub
usbstor = “USB-Speicherklassentreiber”,files.usbstor,usbstor
[InputDevicesSupport]
usbehci = “Erweiterter Hostcontroller”,files.usbehci,usbehci
usbohci = “Open Hostcontroller”,files.usbohci,usbohci
usbuhci = “Universeller Hostcontroller”,files.usbuhci,usbuhci
usbhub = “Standard-USB-Hubtreiber”,files.usbhub,usbhub
hidusb = “HID-Parser”,files.hidusb,hidusb
serial = “Treiber fr seriellen Anschluss”,files.none,serial
serenum = “Enumerator fr seriellen Anschluss”,files.none,serenum
usbstor = “USB-Speicherklassentreiber”,files.usbstor,usbstor
usbccgp = “USB Generic Parent Driver”,files.usbccgp,usbccgp
Aggiungiamo una voce nella sezione [HiveInfs.Fresh]:
[HiveInfs.Fresh]
AddReg = hivedef.inf,AddReg
AddReg = hivesys.inf,AddReg
AddReg = hivesft.inf,AddReg
AddReg = hivecls.inf,AddReg
AddReg = hiveusd.inf,AddReg
AddReg = dmreg.inf,DM.AddReg
AddReg = usbboot.inf,usbservices
ed una nella sezione [SourceDisksFiles]:
[SourceDisksFiles]
usbboot.inf = 1,,,,,,_x,3,,3
bootvid.dll = 1,,,,,,3_,2,0,0,,1,2
kdcom.dll = 1,,,,,,3_,2,0,0,,1,2
Salviamo il file TXTSETUP.SIF.
Modifica del file DOSNET.INF
Modifichiamo la sezione [Files] in questo modo:
[Files]
d1,usbboot.inf
d1,_default.pif
d1,12520437.cpx
d1,12520850.cpx
Modifica del file USB.INF
Modifichiamo le sezioni [StandardHub.AddService] e [CommonClass.AddService]:
[StandardHub.AddService]
DisplayName = %StandardHub.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbhub.sys
LoadOrderGroup = Boot Bus Extender
[CommonClassParent.AddService]
DisplayName = %GenericParent.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbccgp.sys
LoadOrderGroup = Boot Bus Extender
Modifica del file USBPORT.INF
Modifichiamo le sezioni [EHCI.AddService], [OHCI.AddService] , [UHCI.AddService] e [ROOTHUB.AddService]:
[EHCI.AddService]
DisplayName = %EHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbehci.sys
LoadOrderGroup = Boot Bus Extender
[OHCI.AddService]
DisplayName = %OHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbohci.sys
LoadOrderGroup = Boot Bus Extender
[UHCI.AddService]
DisplayName = %UHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbuhci.sys
LoadOrderGroup = Boot Bus Extender
[ROOTHUB.AddService]
DisplayName = %ROOTHUB.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbhub.sys
LoadOrderGroup = Boot Bus Extender
Modifica del file USBSTOR.INF
Modifichiamo la sezione [USBSTOR.AddService]:
[USBSTOR.AddService]
DisplayName = %USBSTOR.SvcDesc%
ServiceType = 1
StartType = 0
Tag = 3
ErrorControl = 1
ServiceBinary = %12%\USBSTOR.SYS
LoadOrderGroup = Boot Bus Extender
Creazione del file USBBOOT.INF
Estraiamo il file USBBOOT.INF da questo ZIP e copiamolo nella stessa cartella dove abbiamo modificato i file precedenti.
Ricompattiamo i file .INF nei file .IN_
Se non abbiamo ancora eliminato i file .IN_, facciamolo ora. Apriamo il Prompt dei Comandi e navighiamo nella cartella contenente i file .INF modificati. Eseguiamo i seguenti comandi:
• cabarc n USB.IN_ usb.inf
• cabarc n USBPORT.IN_ usbport.inf
• cabarc n USBSTOR.IN_usbstor.inf
I 3 file .IN_ dovrebbero essere stati ricreati.
Modifica del file ISO
Riapriamo il file ISO con WinISO e navighiamo nella cartella I386. Cancelliamo i seguenti file:
• DOSNET.INF
• TXTSETUP.SIF
• USB.IN_
• USBPORT.IN_
• USBSTOR.IN_
e salviamo, chiudiamo e riapriamo il file ISO. Navighiamo nella cartella I386 ed aggiungiamo i file che abbiamo modificato:
• USBBOOT.INF
• DOSNET.INF
• TXTSETUP.SIF
• USB.IN_
• USBPORT.IN_
• USBSTOR.IN_
Salviamo il file ISO. Abbiamo praticamente finito. Masterizziamo l’immagine ISO in un CD. Prima di iniziare l’installazione di Windows sul nostro dispositivo USB, dobbiamo STACCARE tutti i dischi IDE e SATA interni al nostro computer. Inoltre, modifichiamo le impostazioni del BIOS ed impostiamo che il boot avvenga prima dai dischi USB e poi dal CDROM. Per finire, colleghiamo il disco USB direttamente al computer, senza utilizzare alcun HUB.
Inseriamo il nuovo CD di Windows nel CDROM ed accendiamo il compuer. Portiamo a termine l’installazione nel solito modo: il sistema operativo verrà installato nell’unico disco disponibile, quello USB. Durante l’installazione un messaggio ci dirà che i driver USB non sono certificati. Questo è normale. Le nostre modifiche hanno invalidato il checksum. Clicchiamo su Yes un paio di volte e continuiamo.
Quando abbiamo terminato, spegniamo il computer e riconnettiamo gli hard disk interni. Ricordiamoci anche di verificare che le impostazioni nel BIOS siamo corrette (il boot deve avvenire prima dai dispositivi USB e poi dagli hard disk). Ora il nostro dispositivo USB contiene un’installazione di Windows XP perfettamente funzionante. Quando vogliamo utilizzarla, colleghiamo il disco USB e riavviamo il computer.

Nessun commento:

Posta un commento