Modalità di avvio di un sistema Windows 2000/XP - AaLl86

Modalità di avvio di un sistema Windows 2000/XP
In questa guida è mio obiettivo analizzare i meccanismi di avvio di un sistema basato su Core NT. In
particolare analizzerò in dettaglio il file “Boot.ini” utilizzato per specificare la partizione di avvio di un
sistema operativo e i suoi parametri di configurazione.
PARTE 1 – INTRODUZIONE
Per avviarsi, un sistema operativo basato su core NT (quindi Windows NT, 2000 e XP) per prima
cosa utilizza tre files principali. Questi tre files sono (in ordine):
1. Ntldr
2. Boot.ini
3. NTDETECT.COM
Dopodichè il controllo del sistema passa al file “ntoskrnl.exe” (nel caso di sistemi operativi NT) e agli
altri file di sistema di Windows. La parte che analizzeremo noi in questa guida riguarda il file
“Boot.ini”. Infatti, quando un sistema basato su kernel NT si avvia, presenta (se avete un sistema
multiboot), una schermata su sfondo nero con un menu ed una lista di voci relative a quale OS
avviare e in che modalità (con un timeout prefissato prima che il sistema predefinito parta
automaticamente... solitamente 30 secondi). Il boot.ini è il file che Ntldr legge per sapere quali
opzioni e timeout presentare all'avvio. Il boot.ini è un file (editabile da blocco note) di sola lettura,
nascosto e presente nella root (directory radice) della partizione di sistema. Esso è accessibile anche
in un modo inconsueto e cioè aprendo il blocco note di Windows, posizionandosi sulla directory
"root", digitando BOOT.ini e cliccando sul pulsante "Apri". In definitiva, l’approccio di avvio di NT,
risulta vincente rispetto a quello basato sul DOS di Windows 9x, visto che assicura maggior stabilità,
nonché la possibilità di avviare più sistemi sulla stessa macchina.
PARTE 2 – COME MODIFICARE IL FILE DI BOOT
È possibile visualizzare il file di avvio “Boot.ini” con un semplice editor di testo come il blocco note.
Ma per modificare tale file è necessario rimuovere gli attributi di protezione del sistema. Per fare ciò è
necessario avviare il prompt dei comandi (avvio -> esegui -> CMD) e digitare:
ATTRIB -S -H -R C:\Boot.ini
e premere Invio
A questo punto chiudere il prompt dei comandi e aprire il blocco note (oppure un editor di testo) e
successivamente aprire il file Boot.ini presente nella directory root di Windows (C:\ in questo caso).
Dopo aver completato le modifiche salvare il file e uscire dal Blocco Note. A questo punto per
riportare tutto alla condizione originale è necessario aprire di nuovo il prompt dei comandi e digitare:
ATTRIB +S +H +R C:\Boot.ini
e premere Invio.
Inoltre è possibile modificare tale file con l’utility di Windows MSCONFIG (avvio -> esegui ->
msconfig).
Un esempio di file Boot.ini che permette di eseguire 3 sistemi operativi diversi e una console di ripristino di
emergenza di Windows. Realizzare tale configurazione è relativamente semplice…
PARTE 3 – ALL’INTERNO DEL FILE DI AVVIO
All'interno del BOOT.ini sono presenti due sezioni: "[boot loader]" e "[operating systems]". Ecco
qui un esempio di un file Boot.ini:
[boot loader]
timeout=03
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP X64 Edition" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS=”Microsoft Vista Beta 2” /noexecute=optin /fastdetect
C:\CMDCONS\BOOTSECT.DAT=”Console di ripristino di emergenza di Windows" /cmdcons
Ecco qui il risultato del file Boot.ini dell’esempio precedente.
Questa infatti è la schermata di boot classica di un sistema Windows
Ora arriva la parte più interessante di questa guida: analizzeremo ogni parte del file di avvio e ogni
suo più specifico parametro…
1° Sezione [boot loader]:
timeout - il parametro è usato per indicare per quanto tempo (in secondi) il menù dei sistemi
operativi deve essere visualizzato. Se nel PC è presente un solo sistema operativo questo parametro
viene ignorato. AaLl86 consiglia di specificare un tempo compreso tra 3 e 60 secondi e soprattutto di
scrivere i numeri ad una cifra con uno 0 davanti (per esempio 03 e non 3)
default - il valore dell'opzione che segue questo elemento indica a Ntldr quale delle voci del menu è
da utilizzare e da attivare dopo la scadenza del tempo di timeout. Questo valore corrisponde ad uno
dei sistemi operativi elencati nella sezione “operating systems”.
2° Sezione [operating systems]:
Questa sezione contiene la lista dei sistemi operativi avviabili con percorso, descrizione e switch
(opzionali). In realtà il valore esatto contenuto nella sezione [operating systems] dipenderà dalla
configurazione del computer che esegue Windows XP che si desidera avviare
Per definire la posizione di un sistema operativo, il boot loader utilizza questi parametri:
Parametro
Descrizione
Questo parametro è usato con controller dei dischi IDE ed è inoltre utilizzato
con controller SCSI per sistemi Windows NT. Il numero specificato
nell’esempio è “0”, quindi indica il primo controller del disco IDE (primo e' 0,
secondo 1, e così via)
C’è una precisazione da fare su questo parametro però:
multi(x)
•
•
•
in un computer che usa solo controller IDE questa opzione funziona
bene anche per più di quattro hard disk
In un computer che utilizza solo controller SCSI il parametro multi(x)
funziona solo con i primi due hard disk sul controller primario
Infine, se un computer utilizza hard disk sia SCSI che IDE, il parametro
funziona solo con gli hard disk IDE sul primo controller.
scsi(x)
utilizzato per indicare il controller del disco se il PC utilizza un controller SCSI
(in questo caso il parametro multi(x) non viene utilizzato)
disk(x)
indica quale disco usare, del controller indicato precedentemente. Il valore,
solitamente, è settato a 0 se il controller e' multi(x). Nel caso di controller SCSI,
disk(x) indicherà l'indirizzo SCSI del disco da avviare.
rdisk(x)
indica quale disco usare sul controller indicato in multi(x). Questo parametro
deve essere un numero compreso tra 0 (primo disco) e 3 (quarto disco) ed ha
valore 0 se il controller e' scsi(x).
paritions(x)
indica quale partizione del disco utilizzare. A differenza dei parametri
precedenti la prima partizione del disco sarà 1, la seconda 2, e così via.
\WINDOWS="..."
Infine l’ultimo parametro indica in quale directory sono posizionati i file di
sistema e la descrizione da mostrare alla schermata di boot. Il valore
predefinito per questo parametro è “Windows” per Windows XP, “Winnt” per
Windows 2000 e NT.
Alcuni Switch utilizzati nel BOOT.ini
Qui di seguito è riportata una lista di switch e una breve descrizione di essi. Questi switch possono
essere utilizzati per aiutare a risolvere un problema oppure per attivare una particolare caratteristica
del/i processore/i del sistema:
/basevideo - Avvia Windows usando il driver VGA standard con una risoluzione di 640x480 pixel a
16 colori
/crashdebug - abilita/forza il ripristino automatico e riavvia la macchina
/maxmem=x - inpone a Windows di utilizzare un massimo di x Mb di RAM
/noserialmice[=comx,y,z] - disabilita il riconoscimento del modem o del mouse sulle porte
specificate nello switch.
/fastdetect - Costringe NTDETECT a non rilevare le periferiche seriali e parallele e allo stesso modo
abilita il rilevamento di periferiche plug & play.
/bootlog - Crea un file di log chiamato “ntbtlog.txt” all’avvio del sistema operative specificato.
/burnmemory=x - Costringe il sistema operativo ad ignorare la memoria specificata nello switch. Ad
esempio "/burnmemory=64" costringe il sistema operativo ad ignorare i 64MB iniziali di memoria Ram
/debug - Abilita la console di debug del kernel collegata via porta seriale.
/debugport - Specifica quale porta seriale utilizzare per la console di debug.
/baudrate - Specifica la velocità in bit per secondo (bps) utilizzata dalla console di debug.
/noguiboot - Switch di Windows 2000 e successivi che, se abilitato, impedisce al sistema di caricare
il driver grafico.
/numproc - Indica al sistema operativo da avviare quanti processori deve utilizzare (ovviamente lo
switch è da utilizzare solo in sistemi multiprocessore).
/onecpu - Obbliga il sistema operativo ad usare un solo processore in un computer multiprocessore.
/pae - Switch di Windows 2000 e successivi che abilita il computer ad utilizzare l’Intel Physical
Address Extensions (una caratteristica dei processori Intel).
/nopae - Switch di Windows 2000 e successivi che disabilita l’Intel Physical Address Extensions.
/pcilock - Impedisce a Windows di assegnare automaticamente un IRQ alle periferiche PCI.
/safeboot - Carica la modalità provvisoria di Windows al posto della modalità normale.
/sos - Visualizza una lista dei drivers che sono caricati dal sistema operativo.
/w95 - Switch usato per avviare sistemi Windows 9x
/w95dos - Switch usato per avviare sistemi MS-DOS.
/year=yyyy - Usato per obbligare il sistema operativo a ignorare l’anno indicato nel bios e utilizzare
così l’anno specificato nello switch.
/noexecute=optin - Abilita, in abbinamento a processori che la supportano, la Protezione
Esecuzione Programmi (controllo che viene effettuato via Hardware), impedendo l'inizializzazione di
codice malevolo. Tale opzione si trova solo in Windows XP SP2.
Ecco qui invece come si presenta l’utilità di configurazione di sistema (MSCONFIG)
utilizzata per modificare il file Boot.ini. Notate alcuni switch descritti in precedenza…
by AaLl86
Ultima revisione: 09/11/2005
www.aall86.altervista.org