Newsgroup: it.comp.hardware.cd
Titolo: Avviare Windows da CD

Leggetevi questo articolo!!!
Windows-Boot-CD
Di: Tobias Remberg e Hajo Schulz
Ultimo aiuto
Avviare Windows da CD-ROM.
Backup regolari offrono spesso solo un'ingannevole sicurezza: non poche
volte, dopo un blocco di sistema, può capitare che Windows non si lasci più
avviare, e quindi anche il programma di ripristino del backup è spesso
inutilizzabile. Un'installazione protetta da virus ed avviabile da CD-ROM fa
parte quindi di una ben assortita valigetta di pronto soccorso
Per avviare Windows 98 o 95 in modalità GUI, deve essere installato su un
supporto scrivibile. Windows non può essere avviato da CD-ROM. Così o in
maniera simile è stato scritto in diverse riviste di personal computer ed
anche C'T lo ha affermato. Ora è tempo di rivedere quest'affermazione.
Il motivo di questa affermazione è causato dal fatto che se Windows all'
avvio non accede in scrittura al registro di sistema, sommerge l'utente con
messaggi d'errore. Questo, però, è solo un errore "estetico": se si può
vivere con questa lacuna, Windows si lascia avviare da un CD-ROM. L'articolo
si occupa di come evitare questi messaggi d'errore e di come si possa
ottimizzare l'avvio da CD.
I vantaggi dell'avvio di Windows da CD si leggono come "lista dei desideri"
di amministratori ed insegnanti, di power-user e utenti normali. Qui, punto
particolarmente interessante, sarebbero i nomi lunghi dei file: se non c'è a
disposizione nessun Windows avviabile - sia che dipenda per disattenzione
personale (format c:) che per crash di sistema - si hanno grosse difficoltà
di salvare i nomi lunghi dei file. Un Windows funzionante è spesso anche
necessario, per estrarre un file da un archivio di backup o da un
file-system cifrato. Secondo la legge di Murphy, quando avviene un crash di
sistema non si ha il tempo di installare di nuovo tutto. Inoltre una nuova
installazione potrebbe sovrascrivere i dati da salvare.
Vantaggiosa è anche la possibilità di poter avviare il proprio sistema
assieme a speciali programmi, anche su un computer diverso. Questo, in certi
viaggi d'affari può rivelarsi un ancora di salvezza. È indispensabile in
casi critici di sicurezza un sistema sicuro dal punto di vista
crittografico, che sia reperibile solo nel caso, dovesse essere avviato su
un computer estraneo.
Inoltre le scuole e gli internet-Cafè, in altre parole luoghi ai quali i
computer sono esposti a utenti amanti del gioco e dello "smanettamento"
possono approfittare di un CD di avvio. Così l'impegno intellettuale degli
studenti appassionati di computer che si pongono interrogativi del tipo:
"Come installo un cavallo di Troia sul computer della scuola, per catalogare
l'inserimento delle password e così raggiungere i diritti d'amministratore?"
diventa un irrisolvibile nodo Gordiano. Questo, per i tormentati insegnanti
di matematica ed informatica della prima generazione, potrebbe rappresentare
un barlume di speranza nella terra degli indomabili geni dei computer.
Si Prenda.
Per realizzare un CD di avvio di Windows, sono necessari oltre ad un
masterizzatore e relativo software, almeno 500Mbyte di spazio libero sul
disco rigido e un paio di programmi freeware da Internet, dei quali
riparleremo in seguito. Sarebbe anche necessario avere installato almeno una
volta Windows su un computer e conoscere alcuni comandi DOS fondamentali -
la cosa infatti è un po' laboriosa, lunga e complicata. In tre ore
riuscirete a malapena a venirne fuori a causa dei molti riavvii necessari.
Il metodo descritto funziona per ora solo dalla versione B di Windows 95
così come con Windows 98. Windows 95a si blocca durante l'installazione.
Windows NT e rispettivamente Windows 2000 rimangono esclusi - fino a nuovo
ordine - a causa della loro architettura completamente diversa.
In effetti il punto difficile è l'accesso in scrittura al registro di
sistema. Ci sono due posti sensati dove potrebbe risiedere quando si vuole
avviare Windows da CD. Il primo è direttamente il CD-ROM. Un sistema nel
quale il Registry si trova su un CD-ROM funziona. L'opinione che Windows 95
necessiti all'avvio un supporto scrivibile si rivela falsa. Windows produce
continui messaggi d'errore, nei quali avverte che il disco è pieno, ma un
backup si lascia tranquillamente ripristinare.
Il secondo posto - sensato e più elegante - per il Registry è offerto da un
RAM-Disk. Un RAM-Disk è una parte della memoria centrale che si comporta
come un disco fisso, con la differenza che i suoi dati non sono mantenuti in
caso di riavvio. Il trucco sta nel fatto che non tutti i file di Windows
debbano essere copiati nel RAM-Disk, ma solamente i file del Registry. Per
questo motivo la grandezza necessaria del RAM-Disk si riduce dai 40 Mbyte di
un'installazione minima a meno di quattro Mbyte. Tutti gli altri file, che
non si modificano, rimangono anche dopo l'avvio su CD. Windows gira quindi
in una combinazione tra CD-ROM e RAM-Disk. Così il Registry può essere
modificato senza che debba essere necessario un disco fisso.
Ordine Temporaneo
Prima di iniziare con l'installazione di Windows per il CD-ROM, dovreste
realizzarvi un disco di ripristino da un sistema avviabile e copiare le
rispettive directory \win95 e \win98 dal vostro CD sul disco fisso. La nuova
installazione diventa chiaramente più veloce, ed in secondo luogo si ha il
vantaggio, che sebbene possa sembrare banale, non sia necessario il driver
del CD-ROM. In altre parole quando si avvia da dischetto, il driver del
CD-ROM è installato, e parte l'installazione, al prossimo riavvio si può
rimanere a bocca asciutta.
Il prossimo passo è la creazione di alcune directory sul disco fisso: c:\w
serve per la preparazione dell'immagine di avvio del CD-ROM, sotto c:\cdrom
è memorizzato tutto quello che poi sarà copiato sul CD. I Dati che dovranno
essere poi memorizzati nel RAM-Disk, vanno memorizzati per il momento in
c:\cdrom\ramdisk, la "directory di Windows" del RAM-Disk sarà
c:\cdrom\ramdisk\w. Inoltre dovreste creare anche una directory c:\backup,
nella quale vanno copiati da c:\ i file: msdos.sys io.sys config.sys ed
autoexec.bat.
Alla directory c:\w appartengono copie dei file dblbuff.sys, himem.sys
ifshlp.sys setver.exe dalle propria directory Windows così come attrib.exe
keyb.com
 keyboard.sys mscdex.exe subst.exe xcopy.exe xcopy32.exe e - per
Windows 98 - xcopy32.mod dalla sottodirectory command. Inoltre vanno
aggiunti rispettivamente: i driver dos del vostro drive CD-ROM ed il driver
del RAM-Disk. Quello fornito da Windows contenente RAMDrive.sys non si
adatta al caso, perché non gli si può assegnare alcuna lettera di drive. Il
driver che ha fornito miglior prova di sé, è l'utilità xmsdsk.exe che è
messa a disposizione per il download gratuito su vari siti, per esempio
sotto [1]. Se usate qualcos'altro dovrete attenere le vostre modifiche di
autoexec.bat a quanto descritto in seguito.
Prima della reinstallazione di Windows, bisogna ancora cancellare i file
c:\config.sys e c:\autoexec.bat ed aver creato un nuovo autoexec.bat con il
seguente contenuto:
c:\w\subst.exe x: c:\cdrom
path c:\;c:\w
c:\w\keyb it,,c:\w\keyboard.sys
A causa del fatto che il sistema dovrà poi essere avviato da CD-ROM e che a
quest'ultimo potrà essere assegnata solo una lettera di drive che non sia
già assegnata, bisognerebbe installare il sistema su un drive la cui lettera
si trovi abbastanza avanti nell'alfabeto. È importante affinché tutti i
collegamenti ed i percorsi nel Registry siano indipendenti dalle partizioni
esistenti. Questo obbiettivo è raggiunto, non con una serie di partizioni
fittizie, bensì con il comando subst, con il cui aiuto si assegna ad una
directory del disco fisso (N.d.T.: e non solo) una lettera di drive. La
prima riga del nuovo autoexec.bat provoca, che dopo un riavvio la directory
c:\cdrom sia vista come drive x:, ovvero esattamente come sarà visto più
tardi il CD-ROM dopo un riavvio.
Affinché nella prossima installazione nessun'altra precedente venga
soprascritta, dovrete rinominare i file 
win.com
 e system.ini su tutte le
cartelle Windows e su tutte le partizioni, anche in quella attualmente in
funzione. Lo stesso vale per i file esistenti che si chiamano system.dat.
Per "avvicinarvi" a questi file dovrete per il momento lasciare Windows e
riavviare in modalità MS-DOS. Successivamente dovrete renderli i file
visibili con il comando attrib -r -h -s system.dat e potrete ora cambiargli
nome. Questa misura cautelativa è causata dalla seguente motivazione: quando
Windows all'avvio non trova il Registry atteso, va alla ricerca in tutte le
partizioni del disco fisso del file system.dat - che contiene il Registry -
e parte da lì. Questo può avere la conseguenza, che sia avviato con un
errato system.dat ed in tal modo sia persino danneggiata un'altra
installazione.
Completamente nuovo
Ora installate Windows, e cioè tramite l'avvio di setup.exe dalla directory
del disco rigido che contiene i dati che avete copiato dalla directory win9x
del CD-ROM. Il setup reclamerà che subst.exe è in funzione. Questo messaggio
lo potete ignorare, ed a dispetto della voce consigliata premete il tasto
ESC. Come percorso per l'installazione scrivete x:\w.
Il primo riavvio nel corso della reinstallazione deve essere eseguito dal
disco di ripristino di Windows precedentemente realizzato. Dovrete quindi
ignorare il messaggio che vi dice di togliere tutti i dischi dai
drive.Windows non sceglie automaticamente i percorsi nei files autoexec.bat
e config.sys in maniera corretta nell'installazione su un drive di rete - e
di questa categoria fanno parte quelli creati con il comando subst. Perciò
il primo riavvio della nuova installazione deve avvenire incondizionatamente
dal dischetto d'avvio affinché questi siano corretti e il file ifshelp.sys,
che serve per il supporto della VFAT, sia inserito nel config.sys.
Modificate quindi il file C:\CONFIG.SYS, tramite il comando edit e costatate
che siano previste almeno le seguenti righe con il percorso corretto:
devicehigh=C:\w\himem.sys
devicehigh=C:\w\ifshelp.sys
devicehigh=C:\w\dblbuff.sys
devicehigh=c:\w\setver.exe
Nella stessa maniera controllate il file autoexec.bat. Qui, la variabile d'
ambiente Path deve essere estesa, per comprendere le directory windows e
windows\command che saranno contenute nel CD. In caso contrario il sistema
all'avvio non trova 
win.com
, che inizia il processo di funzionamento della
modalità gui per windows. La dotazione minima dovrebbe assomigliare a:
c:\w\subst.exe
path c:\w;x:\w;x:\w\command;x:\w\system
c:\w\keyb it,,c:\w\keyboard.sys
Togliete il disco d'avvio, riavviate il computer con Ctrl-Alt-Canc e
continuate l'installazione fino alla fine. Con questo Windows dovreste
giocarci un po' per personalizzarlo e configurarlo adeguatamente.Tutto ciò
che sarà configurato in seguito Windows lo dimenticherà, perché il registro
di sistema sarà contenuto in un RAMDisk. Dovrete quindi installare ancora i
pochi driver necessari (Scheda grafica e audio) ed i programmi che dovranno
essere copiati sul cd. Per facilitare un po' i passi seguenti, vi dovreste
in ogni caso installare l'utilità TweakUI. In Windows98 si trova nella
directory \tools\reskit\powertoy sul CD d'installazione, la versione per
Windows 95 può essere gratuitamente scaricata da [2].
Strade Divise
Per la preparazione del Ram-Disk che conterrà il registro, ritorna in nostro
aiuto il comando Ms-Dos subst. Aggiungete come seconda riga la seguente nell
'autoexec.bat:
C:\w\subst.exe w: C:\cdrom\ramdisk
Nel file msdos.sys del disco d'avvio è scritto dove windows si aspetta di
trovare il Registro di sistema. Per poterlo editare bisogna prima renderlo
accessibile con il comando attrib -s -r -h. Poi si potranno modificare i
percorsi nelle prime quattro righe:
[Paths]
WinDir=w:\W
WinBootDir=w:\w
HostWinBootDrv=w
Affinché in seguito il sistema, quando sarà avviato da CD, non incorra nel
già citato imprevisto di avviarsi usando il file system.dat di un'
installazione presente nel disco fisso, il file dovrebbe essere rinominato.
Il suo nome è scritto nel file io.sys. Per modificarlo, deve essere visibile
con il comando attrib.Poi lo si corregga con un editor esadecimale -.In
mancanza di altro con: edit /70 c:\io.sys in una finestra msdos - si cerchi
la stringa system.dat e la si modifichi in system.tat. Attraverso questa
piccola modifica ci si assicura che solamente i file chiamati system.tat
siano riconosciuti come registro di sistema, tutti i system.dat saranno
ignorati.
In windows '95 questa modifica è molto consigliata, mentre in windows '98 è
da valutare:Qui il nome del registro di configurazione non si trova
solamente nel file io.sys,ma anche tra l'altro nei file del programma che si
occupa del controllo automatico del registro all'avvio del computer.Se si
effettua la modifica, bisognerà convivere con un avviso d'errore relativo al
registro ogni volta che sarà avviato windows. Oltre a ciò bisogna
disattivare il caricamento di scanregw.exe. Può essere comodamente fatto con
l'utilità msconfig.exe, che rimuoverà le voci specifiche del registro di
configurazione.
Affinché il prossimo riavvio di windows vada liscio, copiate ora la cartella
del menu avvio da c:\cdrom\w a c:\cdrom\ramdisk\w.
Per il riempimento del temporaneo sostituto del RAMDisk riavviate windows in
modalità msdos. Copiate i file system.dat system.ini user.dat win.ini da
c:\cdrom\w a c:\cdrom\ramdisk\w dopo averli resi accessibili tramite il
comando attrib. Nel caso abbiate modificato il file io.sys modificate nella
directory di destinazione il nome del file.
Quando windows sarà riavviato, utilizzerà il registro sul drive w:. Il
sistema ha bisogno non solo di accedere in scrittura al registro, ma anche
che esso sia nella directory di windows. Perciò anch'esso deve risiedere
dopo il riavvio nel RAMDisk. La sua posizione è memorizzata nel registro
nella chiave HKLM\Software\Microsoft\Windows\Currentversion. Modificate qui
con il regedit.exe la chiave SystemRoot in w:\w.
In questo momento il menù di avvio si trova nel RAMDisk simulato dal comando
subst, dove consuma spazio inutile. Perciò lo dovrete di nuovo spostare nel
cdrom: avviate tweakUI dal pannello di controllo, scegliete la linguetta
"general" e impostate in "special folders" le voci "programs","start menu","
start up" con x:\w\Menu Avvio e così anche le sottodirectory. In windows '98
inoltre dovete reimpostare anche la voce "desktop" con x:\w\desktop. Al
prossimo riavvio potrete cancellare le directory w:\w\Menu Avvio e
w:\w\desktop.
Ricordi sfuggenti
Per utilizzare veramente un RAMDisk e necessario un nuovo riavvio in
modalità msdos. Il comando attirib -r -s -h c:\cdrom\ramdisk\*.* /s elimina
i fastidiosi attributi dei files che saranno messi nel RAMDisk. Con edit
bisogna ora cancellare o commentare con rem la riga:
subst w: c:\cdrom\ramdisk.
Al suo posto inserite le seguenti righe:
c:\w\xmsdsk 4000 w:/y
copy c:\
command.com
 w:\
set comspec=w:\
command.com
c:\w\xcopy c:\cdrom\ramdisk\*.* w:\ /s
Ora all'avvio, invece di usare un drive virtuale con subst sarà creato un
RAMDisk di quattro Mbyte. Il comando di copia sarà eseguito dall'interprete
di comandi che è nominato da comspec come nuova shell e nel contenuto della
directory copiata si trova il registro. Se dopo il riavvio funzionerà tutto
regolarmente, potrete cancellare tutti i file e le directory in
c:\cdrom\ramdisk\w compresi system.ini, user.dat, win.ini, control.ini,
system.tat e system.dat.
Masterizzato
Per la creazione di un CD d'avvio è necessario un dischetto d'avvio,
oppure - secondo il software utilizzato - una sua immagine. Nel caso che con
il vostro software non possiate creare cd avviabili, non rimane altro che
creare un cd normale che sarà avviato da un dischetto protetto da scrittura.
Anche su computer con Bios che non supporta avvio da CD si dovrà adottare
questa soluzione per richiamare in vita il CD. Create innanzi tutto con
format a: /s oppure sys a: un normalissimo disco di avvio. Copiateci dentro
da c:\ i file corretti io.sys msdos.sys ed anche gli ultimi file config.sys
ed autoexec.bat che soprascriveranno quelli precedenti. Inoltre deve essere
copiata anche l'intera directory c:\w.
In a:\config.sys dovrà ora essere corretto il percorso ed inserito il driver
del cdrom: Il risultato dovrà assomigliare a qualcosa come:
devicehigh=a:\w\himem.sys
devicehigh=a:\w\ifshelp.sys
devicehigh=a:\w\dblbuff.sys
devicehigh=a:\w\setver.exe
device=a:\w\aspi8dos.sys
device=a:\w\aspicd.sys /d:cd001
Anche in a:\autoexec.bat sono necessarie le modifiche ai percorsi, inoltre
il comando di subst deve essere ancora sostituito dal comando mscdex.exe. Il
file alla fine dovrebbe avere il seguente aspetto:
a:\w\mscdex.exe /d:cd001 /L:X /M:50
a:\w\xmsdsk 4000 w: /y
copy a:\
command.com
 w:\
set comspec=w:\
command.com
a:\w\xcopy x:\ramdisk\*.* w:\ /s
path w:\;x:\w;x:\w\command;x:\w\system
a:\w\keyb it,,a:\w\keyboard.sys
x:
Sulla riga del mscdex.exe e da prestare attenzione che il buffer dei dati
non sia scelto troppo piccolo: con i consueti /M:12 ed un drive veloce
Windows all'avvio potrebbe rimanere bloccato, perché il drive renderebbe
disponibili i dati non abbastanza velocemente. Il parametro /L:X assicura
che al cdrom sia assegnata la lettera x al drive del CD-ROM. La motivazione
dell'ultima riga la trovate nell'articolo dal titolo "Stierkampf". Prima di
ripristinare il vecchio sistema sull'hard disk è forse una buon'idea copiare
i file io.sys msdos.sys autoexec.bat config.sys da c: in una certa cartella
in modo da non dover ripartire dall'inizio nel caso che il cd non funzioni o
si voglia creare un'altra versione. Dopo potrete copiare i file da c:\backup
di nuovo in c:\ ed i file rinominati system.dat system.ini e 
win.com
 nella
directory di windows con i loro nomi originali.
Nel caso che il vostro software di masterizzazione non legga nessun disco di
avvio, create un immagine del floppy creato prima con un programma come l'
utilità gratuita a linea di comando getbtimg [3] o il software per windows
shareware WinImage [4]. I metodi per procedere qui sono molti e dipendono
dal software utilizzato. In ogni caso prima della masterizzazione dovreste
eliminare i fastidiosi attributi dall'intero contenuto della cartella da
copiare con il comando attrib -s -h C:\cdrom\*.*/s. Il CD dovrà avere un
file system di tipo Joliet e dovrà contenere l'intero contenuto di c:\cdrom
nella directory radice.
A proposito in [3] troverete anche una guida per realizzare CD di avvio
senza che il vostro software sia preparato per farlo.
Se nella lettura vi ha vinto l'impressione che la creazione di un disco di
avvio per windows vada su una strada piena di pietre, calmatevi: quello che
qui si legge così complicato è nella pratica solo una passeggiata.
Bibliografia:
[1] Free Software For DOS,
http://www.geocities.com/siliconvalley/lakes/1401/soflib1.htm
[2] Windows 95 Power Toys Set,
http://www.microsoft.com/windows95/downloads/contents/
wutoys/w95pwrtoysset/
[3] How to make a PC-Bootable CD,
http://www.os.rim.or.jp/~gigo/bootcd/index_e.html
[4] WinImage, 
http://www.winimage.com/
[5] Klaus Ditze, Avvio da CD, Nuove caratteristiche nuove domande, c't
12/95, pag 72
[6] Curtis E. Stevens, Stan Merkin, "El Torito" Bootable CD-Rom Format
Specification, Documento PDF su: 
http://www.ptltd.com/techs/specs.html
[7] Ahead Software GmbH, Nero Burning ROM, 
http://www.ahead.de/
Articolo tradotto Paolo Jus e Sara Jus
Dalla rivista tedesca: C'T (
http://www.heise.de/ct
) 11/99-pag.206-Sezione
pratica.

 [.]