Quando
un computer basato su piattaforma Intel (quindi la maggior parte)
viene acceso, prima di tutto viene avviato il POST (Power
On Set-Test) che controlla la configurazionedel PC dal BIOS. Eseguito
il POST il computer legge il Master Boot Record (MBR) dell'hard
disk indicato come attivo dal BIOS (Q99743, Q100323, I114841).
L'MBR è una parte dell'hard disk che contiene informazioni
molto importanti: un piccolo programma di gestione, informazioni
su come è partizionato l'HD, dove è situato il boot
record e altre cosette molto delicate. L'MBR corrisponde al primo
settore dell'HD (cilindro 0, testina 0, settore 1) e qualsiasi modifica
viene fatta alla struttura di un HD (creazione di una partizione,
definizione del file system, tipo di partizione, ecc.) viene memorizzata
nell'MBR.
Sotto WinNT (e 2000) l'MBR manda in esecuzione il file NTLDR
che a sua volta legge il boot.ini che permette di selezionare
il sistema operativo da caricare in caso di sistemi multi-boot.
In seguito alla lettura del boot.ini, NTLDR esegue NTDTECT.COM
che contiene la lista dell'hardware installato. Se il sistema operativo
scelto è diverso da WinNT o Win2000 viene caricato il file
BOOTSECT.DOS altrimenti il controllo passa al Kernel di NT
(NTOSKRNL.EXE), cioè la base del sistema operativo
WinNT, dopodiché vengono caricati tutti i driver e la configurazione
del sistema.
3.Il
file boot.ini
Il
file boot.ini è un semplice file di testo che permette,
quando viene caricato dal sistema, di poter scegliere quali operazioni
eseguire ed eventualmente quale sistema operativo caricare se il
computer ne ha installati più di uno (Q102873, Q99743).
Il file è impostato come di sistema, invisibile e di sola
lettura quindi per leggerlo o modificarlo bisogna cambiare queste
voci dalle opzioni di visualizzazione dei file del Pannello di Controllo
e dalle proprietà del file stesso.
Brevemente: il file boot.ini principalmente segnala dove
si trova la partizione contenente Windows NT (o 2000) per permetterne
l'avvio. Questa informazione viene data principalmente da una stringa
di testo ch utilizza delle specifiche chiamate comunemente ARC
(Advanced RISC Computing) e che è in grado di gestire
facilmente computer basati su tecnologia Intel x86 o RISC e dischi
fissi EIDE o SCSI.
La tecnologia RISC necessita di un ARC più complesso che
qui non interessa visto che la maggioranza degli utenti ha computer
basati su piattaforma Intel x86, mentre vale la pena di affrontare
le differenze tra gli HD EIDE e quelli SCSI. Normalmente, durante
l'installazione del sistema operativo, è la stessa procedura
d'installazione che si occupa di creare un boot.ini conforme all'architettura
del PC. Se il computer non ha hard disk SCSI, l'ARC ha una struttura
del tipo:
multi(x)disk(y)rdisk(z)partition(w)\winnt
dove x è sempre uguale a 0, y è
sempre uguale a 0, z è compreso tra 0 e 3 e si riferisce
all'HD dove è installato WinNT e w è il numero della
partizione che contiene WinNT e parte da 1 in su.
X è 0 perché identifica il primo controller e il boot
può avvenire solo da un Hd montato su questo. Y è
0 perché e strettamente correlato con x e con la struttura
di tipo multi(x) sarà sempre uguale a 0. Z può identificare
al massimo 4 HD (due per canale) installati su un computer (0 è
il primo HD master del primo canale IDE). W identifica la partizione
dove è installato WinNT assegnando un determinato numero
identificando prima le partizioni attive e poi quelle logiche e
contrariamente a x, y e z che cominciano da 0, ha come primo valore
valido 1. \winnt identifica la cartella dove è installato
il sistema operativo.
Nel caso il sistema operativo sia installato su un hard disk SCSI,
a causa delle differenze strutturali rispetto ai dischi IDE, la
struttura dell'ARC è leggermente diversa rispetto a quella
precedentemente vista:
scsi(x)disk(y)rdisk(z)partition(w)\winnt
dove
x è il numero del controller SCSI così come viene
identificato dal driver NTBOOTDD.SYS, y è lo SCSI
ID del disco principale, z è il numero dell'unità
logica (LUN) del disco principale ed è sempre uguale a 0
e w è il numero della partizione (come per i disci IDE).
Sui computer su piattaforma Intel il driver del controller SCSI
viene copiato e nominato come NTBOOTDD.SYS che si trova nella
directory principale (generalmente in C:) e si occupa della gestione
del disco fisso usato per l'avvio. (Per la cronaca: nei computer
RISC il file non è necessario perché il driver è
contenuto direttamente all'interno del firmware).
4.Problemi di avvio e possibili soluzioni
Alcuni
problemi al boot possono impedire il caricamento del sistema operativo,
in particolare se la tabella delle partizioni non è aggiornata,
se il file boot.ini esattamente configurato, o se l'MBR è
rovinato o addirittura se è rimasto infettato da un boot-virus.
In caso di problemi all'avvio i sintomi possono passare da oscuri
messaggi d'errore a preoccupanti schermate nere, senza possibilità
di andare avanti nel processo di boot. Come si può ovviare
a questi problemi?
In generale qualsiasi problema si verifichi all'avvio può
essere risolto andando a riscrivere la tabella delle partizioni
aggiornata e forzando Windows a riconoscere la nuova tabella.
Se la partizione d'avvio è FAT 16 o FAT32 (ricordate che
WinNT non riconosce la FAT32 quindi può essere installato
solo su FAT o NTSF, Windows 2000 invece anche su FAT32) bisogna
disporre di un floppy contenente il file sys.com (a volte
i dischi di ripristino non contengono questo file che va quindi
scompattato manualmente dal CD di installazione di Windows). Avviato
il computer da dischetto, dopo il caricamento dell'MS-DOS bisogna
dare il comando A:\SYS C: che trasferisce i file di sistema
DOS nell'unità specificata (in questo caso C:\) e va a sovrascrivere
il file di caricamento di Windows NT/2000, per cui al prossimo avvio
bisognerà ripristinare il processo di avvio di WinNT/2000.
Per ripristinare il boot di NT bisogna avviare il CD di installazione
da BIOS oppure utilizzare i floppy di installazione (più
avanti vedremo come ottenerli). Alla domanda se installare una nuova
copia del sistema operativo o se ripararne una esistente basterà
premere la lettera R e in seguito scegliere l'autoriparazione:
in questo modo sarà automaticamente riscritto il processo
di boot con la tabella delle partizioni aggiornata e sarà
di nuovo possibile caricare Windows.
Nel caso di partizioni di avvio NTFS non è necessario reinstallare
i file di sistema MS-DOS e sarà sufficiente procedere direttamente
alla procedura di riparazione dei file di sistema da CD. Infatti
se una partizione NTFS non si avvia questo può essere dovuto
solo a problemi all'MBR o a uno dei seguenti file: NTLDR, NTDETCT,
BOOT.INI o NTBOOTDD.SYS (quest'ultimo non è sempre
presente, dipende dalla configurazione del sistema), corrotti, danneggiati
o infetti da virus.
Con una conoscenza approfondita dell'MS-DOS è quindi possibile
semplicemente ripristinare questi file copiandoli direttamente dal
CD di installazione e creando il file boot.ini manualmente
con un editor di testi. Chiaramente questa procedura è piuttosto
delicata e sicuramente il processo di riparazione automatico è
più sicuro.
5.Problemi all'avvio di sistemi multi-boot
La
procedura di riparazione vista precedentemente permette di recuperare
anche sistemi multi-boot, cioè dove sono presenti più
sistemi operativi.
La regola generale per l'installazione di più sistemi operativi
è che, per permettere il dual-boot, WinNT/2000 deve essere
installato per ultimo in modo da riconoscere automaticamente gli
altri sistemi già installati.
Tra i vari sistemi operativi il più elastico è sicuramente
Win2000 che può essere installato in qualsiasi partizione
di qualsiasi disco con un qualsiasi file system senza creare problemi.
Gli altri sistemi Microsoft hanno invece delle controindicazioni:
per esempio Windows NT, non riconoscendo la FAT32, non può
essere installato su un sistema dove c'è Win98 o WinME installati
in una partizione con questo file system; Windows 98 deve essere
installato solo sul disco di avvio e questo provocherebbe, in un
sistema multi-boot con avvio su un altro disco con Win2000, l'impossibilità
del suo riconoscimento e caricamento da parte del boot.ini. Per
qualsiasi configurazione con più sistemi operativi bisogna
attenersi strettamente alle indicazioni fornite dalla Microsoft
che sono contenute nei numerosi file di testo (.txt) nei CD di installazione
perché non tutto è possibile.
6.Ripristinare l'MBR
Un
discorso a parte merita il Master Boot Record. Se l'MBR per una
qualsiasi ragione, viene rovinato o infettato, si può rimediare
utilizzando l'istruzione fdisk /mbr che non è documentata
ufficialmente dalla Microsoft ma che la Knowledge Base illustra
abbondantemente (Q69013).
In molti non sanno però che l'istruzione suddetta riscrive
solo una parte dell'MBR e non tutto, in particolare solo la parte
iniziale del settore di boot, cioè i primi 446 byte che contengono
il programma che esegue la routine di bootstrap (è
il programma che ha lo scopo di recuperare informazioni per determinare
quali partizioni sono eseguibili), quindi non cancella o aggiorna
la tabella delle partizioni che invece si trova nell'ultima parte
del settore di boot.
L'istruzione fdisk /mbr inoltre agisce solo sul disco di
sistema e non può riscrivere l'MBR di un disco secondario.
Il fatto che questa istruzione riscriva solo la prima parte del
settore vuol dire che, se per caso il PC è stato infettato
da un boot-virus (MyBomber, Stealth.B, Monkey.B, ecc.) la sua funzione
è inutile perché questi virus attaccano anche la tabella
delle partizioni che quindi rimarrebbe infetta (Q166454).
Per
ripristinare un MBR corrotto quindi, valgono le stesse regole illustrate
nel paragrafo 6.6.3 cioè bisogna usare il CD di installazione
per riparare i file di avvio.
Impostato da BIOS l'avvio da CD e inserito il CD di installazione
di WinNT/2000, parte automaticamente la procedura di installazione.
Dopo il controllo dell'hardware verrà chiesto se installare
un nuovo Sietema Operativo o ripararne uno già installato
e premendo la R partirà la procedura di riparazione automatica.
Scegliendo, alla richiesta successiva, di riparare tutti i possibili
file di avvio danneggiati, si avvierà la procedura che ripristina
l'MBR, aggiorna la tabella delle partizioni e i file di avvio (boot.ini
compreso). A questo punto il sistema sarà di nuovo avviabile.
Nel caso di Win9x, per ripristinare l'MBR si deve usare un floppy
di avvio con MS-DOS completo di tutti i comandi (a volte il command.com
non viene copiato completo) e, dal prompt del DOS, dare il comando
SYS C:. Questo comando, oltre a copiare i file di sistema
per permettere l'avvio dei sistemi operativi basati sul DOS (95/98/98SE)
ripara il settore di avvio e aggiorna la tabella delle partizioni
(Q102793, Q155053).
7.Floppy di avvio di WinNT, Win2000
Il
nuovo WinME non è esente dai problemi di arresto che erano
stati un vero e proprio calvario per gli utenti di Win98SE. In realtà,
i problemi di WinME sono diversi da quelli del precedente Win98
infatti sotto WinME la machina viene spenta troppo velocemente e
il sistema non ha modo di effettuare tutte le operazioni. Questo
provoca l'esecuzione dello Scan Disk al successivo avvio
della macchina.
La
Microsoft ha rilasciato una patch di correzione del problema non
molto adatta agli utenti poco pratici del registro di configurazione.
La procedura di aggiornamento prevede di scaricare un driver aggiornato
e corretto e di modificare delle voci direttamente nel registro
Windows, operazione sempre piuttosto delicata.
Chi vuole informazioni più precise mi può scrivere
o cercare l'articolo originale nella Knowledge Base della Microsoft
(vedi i miei link) con numero Q273017
Glossario