Al momento sei offline in attesa che la connessione Internet venga ristabilita

Processo di avvio di Windows NT e vincoli del disco rigido

Questo articolo è stato precedentemente pubblicato con il codice di riferimento I114841
Sommario
Questo articolo descrive i vincoli di dimensione del disco rigido presenti in Windows NT e Windows NT Advanced Server. Per capire tali vincoli, è necessario capire sia le strutture di dati che definiscono le partizioni dei dischi, sia le interazioni tra Windows NT e l'interfaccia BIOS del sistema utilizzata durante il processo di avvio del sistema operativo e dell'hardware.
Informazioni

Tabella delle partizioni

La struttura dei dati che descrive le partizioni del disco rigido è nota con il nome di tabella delle partizioni. È composta da un massimo di quattro voci a 16 bit, ciascuna delle quali dispone di 10 campi che descrivono i seguenti attributi di ogni partizione:
   CAMPO               DIMENSIONE   -----------------   --------   Boot Flag           1  byte   Starting Side       1  byte   Starting Cylinder   10 bit   Starting Sector     6  bit   System Indicator    1  byte   Ending Side         1  byte   Ending Cylinder     10 bit   Ending Sector       6  bit   Relative Sectors    4  byte   Number of Sectors   4  byte

System Indicator

Il campo System Indicator è utilizzato per specificare il tipo di file system contenuto nella partizione. Di seguito sono riportati alcuni valori comuni:
   VALORE  FILE SYSTEM   -----   -----------   0x0B    Partizioni Fat32 primarie fino a 2047 GB   0x0C    Come 0x0B, utilizza le estensioni 0x13 Int dell'indirizzamento logico dei blocchi   0x0E    Come 0x06, utilizza le estensioni 0x13 Int dell'indirizzamento logico dei blocchi   0x0F    Come 0x05, utilizza le estensioni 0x13 Int dell'indirizzamento logico dei blocchi   0x05    Partizione estesa   0x06    Formato FAT BIGDOS   0x07    IFS, ad esempio, HPFS e NTFS   0x1C    Partizione di ripristino IBM
Quando una partizione appartiene a un insieme FT (Fault Tolerant), Windows NT imposta il bit massimo di System Indicator per distinguerlo da partizioni non FT dello stesso tipo. Ad esempio, una partizione FAT FT ha un valore di System Indicator di 0x86, mentre una partizione NTFS FT ha un valore di System Indicator di 0x87.

Quando un membro di un insieme FT è disabilitato, Windows NT imposta i due bit più elevati. Ad esempio, una partizione FAT disabilitata ha un valore di System Indicator di 0xC6, mentre una partizione NTFS FT ha un valore di System Indicator di 0xC7.

Boot Flag

Il campo Boot Flag indica quale partizione è attiva o di avvio. Può essere attiva una sola partizione per disco. Il valore di Boot Flag per la partizione attiva è impostato a 0x80. Altre partizioni del disco sono impostate a 0x00. Il record di avvio principale, descritto di seguito nel dettaglio, cerca questo flag per individuare il settore di avvio attivo.

Starting ed Ending Side, Cylinder e Sector

I campi Starting ed Ending Side, Cylinder e Sector sono molto importanti in relazione al modo in cui Windows NT interagisce con il disco.

Il numero massimo di facce (testine di lettura/scrittura) che possono essere rappresentate con 1 byte è 256. Il numero massimo di cilindri che possono essere rappresentati con 10 bit è 1024. Il numero massimo di settori che possono essere rappresentati con 6 bit è 63 in quanto i settori iniziano dal numero 1, mentre i cilindri e i lati iniziano dal numero 0.

Il valore Cylinder, rappresentato da 10 bit, è troppo elevato per essere contenuto in un unico byte. Per memorizzare 10 bit, due bit vengono prelevati dal byte in cui viene memorizzato il valore Sector a 6 bit.

Con una dimensione di settore standard di 512 byte, i 24 bit utilizzati per registrare gli indirizzi del record di avvio e fine si traducono in una partizione della larghezza massima di 7,8 GB (8.455.716.864 byte) che può essere descritta con questi campi. Si tratta di un dato particolarmente importante in quanto le stesse dimensioni di campo vengono impiegate dall'interfaccia BIOS INT 13 che definisce in che modo il BIOS del sistema interagisce con il disco rigido.

Relative Sectors

Il campo Relative Sectors rappresenta lo scarto in settori dall'inizio della tabella delle partizioni all'inizio della partizione.

Number of Sectors

Il campo Number of Sectors rappresenta il numero totale di settori della partizione.

NOTA: i campi Relative Sectors e Number of Sectors hanno ciascuno una dimensione di 32 bit. Nella maggior parte dei casi, insieme contengono le stesse informazioni dei campi Starting ed End Side, Cylinder e Sector che sono rappresentate con un totale di 24 bit per l'inizio e 24 bit per la fine.

Processo di avvio di Windows NT

Nei computer che dispongono di processori Intel, il processo di avvio del sistema operativo è controllato dal BIOS del sistema. Dopo il test POS (Power On Self Test) iniziale, quando vengono inizializzati i componenti hardware, il BIOS del sistema identifica la periferica di avvio. Si tratta solitamente di un disco floppy o di un disco rigido. Nel caso di un disco rigido, il BIOS legge il primo settore fisico del disco, denominato record di avvio principale, ne carica un'immagine in memoria e quindi trasferisce tale immagine al settore di avvio principale.

Il record di avvio principale contiene la tabella delle partizioni e il codice eseguibile necessario per esaminare la tabella e identificare la partizione attiva. Il record di avvio principale trova quindi sul disco la posizione di partenza della partizione attiva e carica in memoria un'immagine di tale primo settore, denominato settore di avvio, quindi trasferisce l'esecuzione a tale immagine.

Mentre il record di avvio principale è generalmente indipendente dal sistema operativo, il settore di avvio della partizione attiva dipende sia dal sistema operativo che dal file system. Nel caso di Windows NT e Windows NT Advanced Server, il settore di avvio è responsabile di identificare il file eseguibile NTLDR, che continuerà il processo di avvio. Gli unici servizi di dischi disponibili al codice del settore di avvio in questa fase del processo di avvio del sistema sono forniti dall'interfaccia INT 13 del BIOS. Il codice del settore di avvio deve essere in grado di trovare il file NTLDR e le strutture di dati del file system, quali la directory principale, la tabella di allocazione dei file (FAT) nel caso di un volume FAT MS-DOS o la tabella dei file principale nel caso di un volume NTFS. Tali tabelle devono essere presenti all'interno dell'area del disco indirizzabile dalla struttura faccia, cilindro e settore a 24 bit utilizzata dall'interfaccia INT 13 del BIOS e dalla tabella delle partizioni. Questo limita la dimensione della partizione di sistema a 7,8 gigabyte indipendentemente dal file system utilizzato.

NOTA: a seconda del file system e dell'hardware del computer, possono venire applicati altri vincoli. Alcuni di questi vincoli sono descritti di seguito.

Per poter gestire partizioni superiori a 7,8 gigabyte, Windows NT ignora gli indirizzi contenuti nei campi Starting ed Ending Sector della tabella delle partizioni a favore dei valori dei campi Relative Offset e Number of Sectors. Questo rende disponibili altri 8 bit per rappresentare i settori, che consentono alle partizioni di essere descritte fino a un massimo di 2^32 settori.

Con una dimensione di settore standard di 512 byte, i 32 bit utilizzati per rappresentare i valori Relative Offset e Number of Sectors si traducono in una partizione della dimensione massima di 2 terabyte ovvero 2.199.023.255.552 byte.

In fase di partizionamento di un disco, Windows NT scrive i valori corretti nei campi della tabella delle partizioni ogni volta che è possibile. Quando il numero totale di settori di una partizione supera il numero che può essere descritto nella notazione faccia, cilindro, settore, Windows NT scrive nella tabella delle partizioni i valori massimi consentiti per questi campi. Questo impedisce al BIOS del sistema di tentare di calcolare gli indirizzi iniziali e finali sulla base di dati errati.

Ad esempio, si supponga di disporre di un'unità SCSI da 3,5 GB collegata a un controller SCSI Adaptec serie 154x. Se la funzione di traduzione del settore esteso è disabilitata nella scheda, potrebbe riportate le seguenti caratteristiche di disco nel BIOS del sistema:
   Cilindri: 1023, Facce: 64, Settori: 32
che si traducono in 1 gigabyte. Con la funzione di traduzione estesa abilitata, la periferica potrebbe essere segnalata con le seguenti caratteristiche:
   Cilindri: 435, Facce: 255, Settori: 63
che si traducono in 3,5 GB.

Una volta che Windows NT è in esecuzione, utilizza i propri driver SCSI per interagire direttamente con il disco senza utilizzare l'interfaccia INT 13 del BIOS. Pertanto, durante le normali operazioni i parametri del BIOS sono sostanzialmente inutili. Le differenze diventano fondamentali se il disco deve essere formattato con una sola partizione e utilizzato come unità di avvio.

Senza traduzione estesa, Windows NT nota che il disco è di dimensioni superiori rispetto ai parametri indicati dal BIOS. Quando Windows NT partizionerà l'unità durante l'installazione iniziale, gli indirizzi dei settori iniziale e finale verranno completati con i rispettivi valori massimi consentiti. Questo rende possibile per il record di avvio principale funzionare correttamente nonostante l'unità sia inferiore a 7,8 gigabyte.

Con la traduzione estesa, Windows NT sarà in grado di scrivere valori validi per gli indirizzi iniziale e finale nella tabella delle partizioni e pertanto la partizione rimarrà avviabile.

I seguenti messaggi di errore potrebbero essere visualizzati quando la traduzione estesa non è abilitata e il record di avvio principale non è in grado di individuare il settore di avvio della partizione attiva:
Errore durante il caricamento del sistema operativo.
Oppure
Sistema operativo mancante.

File System

FAT e HPFS dispongono entrambi di limiti interni di 4 GB dettati dal fatto che utilizzano campi a 32 bit per memorizzare le dimensioni dei file. NTFS utilizza campi a 64 bit per tutte le dimensioni, permettendo alle proprie strutture di dati di gestire volumi fino a 2^64 byte ovvero 18.446.744.073.709.551.616.

Questo valore è il limite teorico per il file system NTFS. I limiti pratici hanno invece a che vedere con la dimensione massima della partizione descritta sopra, che limita la dimensione di una partizione NTFS a circa 2 terabyte. Poiché i campi a 32 bit della tabella delle partizioni si riferiscono al numero di settori della partizione, i dischi con dimensioni di settore superiori consentono partizioni di dimensione superiore. Attualmente Windows NT supporta settori della dimensione massima di 4 kilobyte. Con settori di questa dimensione, Windows NT è in grado di supportare una partizione di 16 terabyte. Via via che verranno resi disponibili nuovi modelli hardware o software, NTFS sarà in grado di gestire volumi di dimensioni considerevolmente superiori.

Tipi di unità e di controller

Le unità IDE utilizzano una struttura di dati diversa per rappresentare il numero di cilindri, testine e settori per traccia rispetto alla tabella delle partizioni e all'interfaccia INT 13 del BIOS. In base alle specifiche IDE, il numero massimo di cilindri è 65.536, il numero massimo di testine è 16 e il numero massimo di settori per traccia è 255. Questo si traduce in una dimensione massima di 136,9 gigabyte, ma poiché l'interfaccia BIOS/IDE è vincolata all'utilizzo del minimo comune denominatore, il risultato è un limite di circa 528 MB per un'unità IDE in un computer bus ISA basato su processore Intel. Ci sono nuove unità e driver che utilizzano una tabella di parametri di unità avanzata per eseguire la traduzione tra il layout dei settori logici interno all'unità IDE e il layout dei settori logici indirizzabile dall'interfaccia INT 13 del BIOS. Questi driver e queste periferiche supportano dischi di dimensioni superiori.L'insieme dei comandi SCSI II utilizza la propria forma di indirizzamento di settori, la quale attualmente supporta dischi di circa 7 gigabyte.

Volumi di Windows NT a tolleranza d'errore

Attraverso l'utilizzo di insiemi di volumi e di stripe, Windows NT e Windows NT Advanced Server permettono la creazione di volumi logici da partizioni multiple di dischi fisici. Questa tecnica permette a Windows NT di superare i limiti fisici dell'hardware imposti dai vari controller di disco e crea un volume logico superiore rispetto a quello che potrebbe supportare un singolo disco.

NOTA: un volume logico viene creato in modo da assomigliare esattamente a una partizione di disco fisico oltre a dover essere conforme al layout della tabella delle partizioni descritta in precedenza. Questo significa che un costrutto di tolleranza d'errore, ad esempio un insieme di volume, non deve avere oltre 2^32 settori (o 2 terabyte di 512 byte per settore).
prodnt gb eb
Proprietà

ID articolo: 114841 - Ultima revisione: 11/09/2004 15:25:00 - Revisione: 2.2

  • Microsoft Windows NT Advanced Server 3.1
  • Microsoft Windows NT Server 3.5
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 3.1
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Advanced Server 3.1
  • kbtshoot kbother KB114841
Feedback