<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>Large Disk HOWTO: Geometria dei dischi fissi, delle partizioni e 'sovrapposizione'</TITLE> <LINK HREF="Large-Disk-HOWTO-7.html" REL=next> <LINK HREF="Large-Disk-HOWTO-5.html" REL=previous> <LINK HREF="Large-Disk-HOWTO.html#toc6" REL=contents> </HEAD> <BODY> <A HREF="Large-Disk-HOWTO-7.html">Avanti</A> <A HREF="Large-Disk-HOWTO-5.html">Indietro</A> <A HREF="Large-Disk-HOWTO.html#toc6">Indice</A> <HR> <H2><A NAME="overlap"></A> <A NAME="s6">6. Geometria dei dischi fissi, delle partizioni e 'sovrapposizione'</A></H2> <P> <!-- disk!geometry --> <!-- disk!partitions --> Se utilizzate diversi sistemi operativi sul vostro disco fisso ognuno avrà a disposizione una o più partizioni. La posizione delle partizioni deve essere univoca per tutti i sistemi presenti onde evitare delle conseguenze catastrofiche. <P> <A NAME="partitiontable"></A> Il MBR contiene la tavola delle partizioni che descrive la posizione delle partizioni primarie. Nella tavola ci sono 4 campi per le 4 partizioni primarie, ogni campo è descritto da una struttura del tipo <P> <PRE> struct partizione { char attiva; /* 0x80: avviabile; 0: non avviabile */ char inizio[3]; /* CHS del primo settore */ char tipo; char fine[3]; /* CHS dell'ultimo settore */ int partenza; /* numero identificativo del settore a 32 bit (si conta a partire da 0) */ int lunghezza; /* numero totale dei settori a 32 bit */ }; </PRE> (dove CHS significa Cilindri/Testine/Settori - Cylinder/Head/Sector). <P>la struttura dà informazioni ridondanti. La posizione di una partizione si ricava dai campi <CODE>inizio</CODE> e <CODE>fine</CODE> entrambi a 24 bit e dai campi partenza e <CODE>lunghezza</CODE> questi ultimi a 32 bit. <P>Linux utilizza solo i campi <CODE>inizio</CODE> e <CODE>lunghezza</CODE>, può quindi gestire partizioni che abbiano meno di 2^32 settori (circa 2TiB). Questa dimensione è sessanta volte più grande dei dischi attualmente disponibili, probabilmente sarà sufficiente per i prossimi otto anni e forse oltre. <P>(Le partizioni possono essere molto grandi tuttavia c'è un limite alla dimensione massima di un singolo file che nei sistemi a 32 bit non può essere più grande di 2GiB.) <P>Il DOS utlizza i campi <CODE>inizio</CODE> e <CODE>fine</CODE> e la chiamata all'INT13 del BIOS per accedere al disco, può quindi indirizzare dischi non più grandi di 8.4 GB pur effettuando la traslazione (le partizioni non possono superare i 2.1 GB perché occorre tener conto delle restrizioni imposte al filesystem dalla FAT16). Lo stesso dicasi per Windows 3.11 e WfWG e Windows NT 3.*. <P>Windows 95 ha il supporto per l'interfaccia all'INT13 Esteso e utilizza un tipo speciale di partizione (c, e, f invece di b, 6, 5) per indicare che tale partizione può essere accessibile in questo modo. Quando si utilizzano questi tipi di partizione i campi <CODE>inizio</CODE> e <CODE>fine</CODE> contengono delle informazioni fasulle (1023/255/63). Windows 95 OSR2 ha introdotto il fylesystem FAT32 (partizioni di tipo b o c) che permette partizioni di dimensioni al massimo di 2 TiB. <P>A cosa sono dovute le stupidaggini che apprendiamo da <CODE>fdisk</CODE> circa la `sovrapposizione' delle partizioni quando in effetti non c'è nulla di sbagliato? Bene - qualche volta c'è un `errore': se date un'occhiata ai campi <CODE>inizio</CODE> e <CODE>fine</CODE> di tali partizioni, come fa il DOS, queste si sovrappongono (tale `errore' non può essere corretto perché i campi non possono memorizzare un numero di cilindri superiore a 1024 - ci sarà sempre `sovrapposizione' non appena avrete più di 1024 cilindri). Tuttavia, se voi date uno sguardo ai campi <CODE>inizio</CODE> e <CODE>lunghezza</CODE>, come fa Linux, e come fa anche Windows 95 nel caso di partizioni di tipo c, e o f allora tutto procede per il meglio. Concludendo potete ignorare questi avvertimenti quando usate <CODE>cfdisk</CODE> e sul vostro disco è installato solo Linux. Occorre prestare attenzione quando il disco è condiviso con il DOS. Usate il comando <CODE>cfdisk -Ps /dev/hdx</CODE> e <CODE>cfdisk -Pt /dev/hdx</CODE> per controllare la tabella delle partizioni del disco <CODE>/dev/hdx</CODE>. <P> <P> <P> <HR> <A HREF="Large-Disk-HOWTO-7.html">Avanti</A> <A HREF="Large-Disk-HOWTO-5.html">Indietro</A> <A HREF="Large-Disk-HOWTO.html#toc6">Indice</A> </BODY> </HTML>