Clicca per inviarci una E-Mail oppure telefona al n° 349-1469490 e-mail: gbuccoliero@libero.it

Imposta come Pagina Iniziale

AREA RISERVATA

Aggiungi ai Preferiti

 


 

MENU'

 

 

 

<BGSOUND SRC="music/intro.wma">

Questo articolo tratta nel dettaglio come avviene il partizionamento di un harddisk.
Capire come le partizioni sono effettuate, trattate e realizzate da un Sistema Operativo permette di acquisire padronanza con tecniche quali l'installazione di uno o più Sistemi Operativi sullo stesso PC.


MBR

Ogni harddisk (HD brevemente) istallato su ogni PC ha una sua organizzazione dei settori e dei cilindri fissata dalle caratteristiche hardware e organizzata dal file system utilizzato.
Premesso che gli HD IBM-compatibili hanno settori di 512 byte, ci sono alcuni di essi 'riservati' a scopi e usi particolari. Il più importante di essi, indipendentemente dal File System usato, ma strettamente legato all'hardware, è il Master Boot Record o brevemente MBR.
L'MBR è il settore iniziale di ogni HD (considerando i settori numerati da 0 in poi è quindi il numero 0) e contiene le informazioni necessarie per effettuare il caricamento del Sistema Operativo (SO per brevità), vedremo in seguito come, e l'organizzazione logica dell'HD. E' composto anch'esso da 512 bytes: i primi 446 contengono il boot loader, cioè un piccolo programma eseguibile che permette di localizzare le aree dove il SO è contenuto; i successivi 64 bytes contengono la tabella delle partizioni, i restanti due bytes indicano la fine del MBR e contengono i valori 55 AA in esadecimale.


Tabella delle partizioni.

E' composta da 64 bytes divisi in 4 record di 16 bytes. Ogni record contiene le informazioni di ognuna delle partizioni dell'HD. Tali informazioni sono organizzate nel modo seguente, considerando i 16 bytes consecutivamente numerati da 0h a fh:

 
Posizione Byte (hex)
Informazioni contenute
0
Indicazione se la partizione è di avvio (contenuto 80h) o no (contenuto 00h)
1,2,3
testina, settore e cilindro inizio partizione
4
tipo di file system e tipo di partizione
5,6,7
testina, settore e cilindro fine partizione
8,9,A,B
numero di settori prima della partizione puntata
C,D,E,F
numero totale di settori che costituiscono la partizione

Come si vede in ogni record sono contenute tutte le informazioni necessarie per individuare dove è posizionata fisicamente la partizione, quanti sono i settori (consecutivi) che la compongono, il tipo di partizione e di file system con cui è formattata e se è una partizione bootable cioè di avvio.


Partizionamento e partizioni.

Partizionare un HD vuol dire andare a modificare le informazioni presenti nella tabella delle partizioni. Successivamente ogni partizione creata va formattata secondo un File System per renderla pronta alla memorizzazione dei dati.
Creare allora una partizione vuol dire perdere le informazioni che erano memorizzate in precedenza sui settori da essa occupati.
Le partizioni inoltre possono essere modificate nella loro estensione, riducendola o aumentandola, o spostate su aree diverse dell'HD. Queste operazioni sono anche esse distruttive a meno che non si usino dei particolari software che hanno la capacità di cambiare la grandezza delle partizioni o spostarle conservando i dati in esse contenuti e la struttura del file system che le caratterizzano.
Vediamo ora quali sono i tipi di partizioni e come sono organizzate.
Si hanno:
1) Partizioni primarie
2) Partizioni estese
3) Partizioni logiche
Le partizioni primarie sono quelle partizioni direttamente puntate da un record della tabella delle partizioni dell'MBR.
Le partizioni estese sono in invece puntatori a tabelle di partizioni. Se infatti il codice presente nel byte con offset 4 del record della tabella delle partizioni dell'MBR indica una partizione estesa (05h ad esempio) tale record non punta ad una partizione vera e propria bensì ad una ulteriore tabella di partizioni che conterrà, a sua volta, un insieme di record ognuno contenente i dati relativi a partizioni così dette 'logiche'. Con questo meccanismo si ha la possibilità di superare il limite delle 4 partizioni altrimenti puntate dalla sola tabella dell'MBR.
Una sola delle partizioni primarie è però bootable, può cioè essere 'caricata' durante la fare di boot-strap (vedi dopo): quella che ha a 1 il bit più significativo del primo byte del record della tabella.
Questo limite è comunque superato dai boot loader evoluti quali LILO, GRUB, ecc. che permettono di scegliere da quale partizione caricare il SO vero e proprio. Vediamo come.


Fase di Boot-strap.

Vediamo cosa avviene allora quando accendiamo il PC, quali sono cioè i passi che permettono di arrivare al caricamento del SO.
1. Sono eseguite le istruzioni del BIOS contenute in una piccola memoria permanente: il PC fa l'autotest (POST), viene letta la presenza delle varie periferiche compresi gli HD e vengono effettuate tutte le operazioni atte a rendere 'operative' tali periferiche. Viene letto poi il primo settore MBR del primo HD presente e viene trasferita l'esecuzione alle istruzioni presenti nel boot loader dell'MBR.
2. Le istruzioni contenute nell'MBR effettuano una scansione della tabella delle partizioni, trovano quella primaria bootable (codice 80h) e individuano il primo settore di questa partizione.
3. Il controllo viene trasferito alle istruzioni contenute nel primo settore della partizione bootable che concluderà la fase di boot caricando il SO.
In realtà i boot loader, quali LILO ad esempio o GRUB, per la loro lunghezza non sono più contenibili in solo i 446 bytes dedicati nel MBR, perciò in essi c'è solo una parte dell'intero boot loader che è memorizzato altrove sull'HD e caricato tramite le istruzioni contenute in questa piccola area. In questa maniera si può ottenere il caricamento del SO da un punto diverso dell'inizio della partizione di avvio. Sarà il boot loader a puntare a diverse partizioni da cui caricare, da ognuna di esse, uno dei diversi SO istallati. Si potranno allora, con questa tecnica, far coesistere sullo stesso HD o anche HD diversi più SO contemporaneamente.


Importanza dell'MBR.

L'MBR, per quello che si è detto finora, riveste una importanza primaria nella struttura logica di un HD. Perdere le informazioni contenute in esso vuol dire perdere la possibilità di accedere alle partizioni e di caricare ed eseguire il SO.
Inoltre è sempre la prima area letta di un HD, tramite il BIOS, prima di ogni altra. Questo vuol dire che le istruzioni in esso contenute saranno le prime ad essere eseguite. Molti virus, i più 'pericolosi', si istallano nell'MBR avendo la prerogativa di poter essere eseguiti prima di ogni altro software e quindi di far danno prima che eventuali programmi antivirus possano agire bloccandoli. Questo è uno dei motivi che hanno portato molti costruttori di schede madri e produttori di BIOS a comprendere nel BIOS stesso controlli antivirus (si ricordi che il BIOS è memorizzato su supporti a sola lettura e quindi non può essere corrotto).
L'esperienza personale mi ha portato ad eseguire backup di sicurezza di questo particolare settore. Questo é utile a ripristinarlo nel caso in cui si possa essere corrotto per un qualsiasi motivo (a volte anche per la semplice mancanza di alimentazione, clamorosi bug nel software, presenza di virus, errori fatti durante un partizionamento) e quindi ad avere un metodo rapido di ripristino che altrimenti comporterebbe la reinstallazione di tutto il software sull'intero HD e irrimediabili perdite di dati.

 


Le partizioni

Un singolo hard disk può essere diviso in diverse partizioni. Ciascuna partizione funziona come se fosse un disco separato; l'idea è che se avete un hard disk, e ad esempio volete avere due sistemi operativi, potete suddividere il disco in due partizioni. Ciascun sistema operativo usa la sua partizione come vuole e non tocca quella dell'altro. In questo modo i due sistemi operativi possono coesistere in pace sullo stesso hard disk; senza le partizioni se ne sarebbe dovuto comprare uno per ciascun sistema operativo.

I floppy non vengono partizionati, non per motivi tecnici, ma perché sono molto piccoli, e creare al loro interno delle partizioni non sarebbe utile se non in casi molto rari. I CD-ROM di solito non vengono partizionati, dato che è molto più semplice usarli come un grande disco, e in genere non è necessario avere diversi sistemi operativi sullo stesso CD-ROM.

Il MBR, i settori di boot e la tabella delle partizioni

Le informazioni sul partizionamento di un hard disk si trovano nel suo primo settore (cioè, il primo settore della prima traccia della prima superficie del disco). Il primo settore si chiama master boot record (MBR) del disco: è il settore che il BIOS legge ed avvia quando la macchina viene accesa. Il master boot record contiene un piccolo programma che legge la tabella delle partizioni, controlla quale partizione è attiva (cioè quale è contrassegnata avviabile) e legge il primo settore di quella partizione, il boot sector (settore di avvio) della partizione (anche l'MBR è un settore di avvio, ma ha uno status speciale e quindi un nome speciale). Il boot sector contiene un altro programmino che legge la prima parte del sistema operativo contenuto in quella partizione (sempre che sia avviabile) e lo avvia.

Lo schema di partizionamento non è costruito all'interno dell'hardware, e nemmeno nel BIOS. È solo una convenzione che viene seguita da molti sistemi operativi: non tutti, ma quelli che non lo fanno sono le eccezioni. Alcuni sistemi operativi permettono l'uso di partizioni, ma occupano una partizione sull'hard disk, ed usano il loro metodo di partizionamento interno lì dentro. Quest'ultimo tipo coesiste pacificamente con gli altri sistemi operativi (incluso Linux), e non richiede misure speciali, ma un sistema operativo che non supporta le partizioni non può coesistere sullo stesso disco con un altro sistema.

Come precauzione è una buona idea scrivere su carta la tabella delle partizioni, in modo che se si corrompesse ci sarebbe una speranza di non perdere tutti i file (una tabella delle partizioni corrotta si può recuperare con fdisk ). Le informazioni rilevanti si ricavano dal comando fdisk -l :

$ fdisk -l /dev/hda

Disk /dev/hda: 15 heads, 57 sectors, 790 cylinders
Units = cylinders of 855 * 512 bytes

Device Boot Begin Start End Blocks Id System
/dev/hda1 1 1 24 10231+ 82 Linux swap
/dev/hda2 25 25 48 10260 83 Linux native
/dev/hda3 49 49 408 153900 83 Linux native
/dev/hda4 409 409 790 163305 5 Extended
/dev/hda5 409 409 744 143611+ 83 Linux native
/dev/hda6 745 745 790 19636+ 83 Linux native
$

Partizioni estese e partizioni logiche

Lo schema di partizionamento originale degli hard disk dei PC permetteva solo quattro partizioni, ma presto questo si è dimostrato troppo poco per l'uso reale, perché alcune persone volevano più di quattro sistemi operativi (Linux, MS-DOS, OS/2, Minix, FreeBSD, NetBSD, o Windows NT, per nominarne alcuni), ma principalmente perché qualche volta è una buona idea avere diverse partizioni per un solo sistema operativo. Ad esempio per Linux è meglio mettere lo spazio di swap in una sua partizione, per motivi di velocità (vedi sotto).

Per superare questo problema di progettazione, furono create le partizioni estese. Questo trucco permette di partizionare una partizione primaria in sotto-partizioni. La partizione primaria così suddivisa è la partizione estesa, e le sottopartizioni sono partizioni logiche: si comportano come partizioni primarie4.6, ma vengono create in maniera diversa. Non comportano una differenza di velocità.

La struttura delle partizioni di un hard disk può apparire come in figura 4.2. Il disco viene diviso in tre partizioni primarie, la seconda delle quali è divisa in due partizioni logiche. Parte del disco non viene partizionato. Il disco intero e ciascuna partizione primaria hanno un settore di boot.


 

  figure1122
 

Figure 4.2: Un esempio di partizionamento di hard disk.


Ripartizionare un hard disk

Ci sono molti programmi per creare e rimuovere partizioni. La maggior parte dei sistemi operativi ne ha uno proprio, ed è una buona idea usare quello del sistema che si usa, in caso faccia qualcosa di insolito che gli altri non fanno. La maggior parte di questi programmi, compreso quello per Linux, si chiamano fdisk , o variazioni sul tema. I dettagli sull'uso dell'fdisk  di Linux sono riportati nella sua pagina man. Il comando cfdisk  è simile a fdisk , ma ha un'interfaccia utente più carina (a tutto schermo).

Quando si usano dei dischi IDE, la partizione di boot (quella con i file di immagine del kernel che si avvia) deve essere completamente all'interno dei primi 1024 cilindri, perché il disco viene usato dal BIOS durante l'avviamento del sistema (prima che i sistema vada in modalità protetta), e il BIOS non può gestire più di 1024 cilindri. Talvolta è possibile usare una partizione di boot che è solo parzialmente entro i primi 1024 cilindri: questo trucco funziona solo se tutti i file che vengono letti dal BIOS sono entro il cilindro 1024. Dato che una cosa del genere è difficile da imporre, è una pessima idea provarci: non saprete mai quando un aggiornamento del kernel o la deframmentazione del disco vi renderà non avviabile il sistema; quindi, assicuratevi che la partizione di boot sia completamente all'interno dei primi 1024 cilindri.

Alcune versioni più recenti del BIOS e dei dischi IDE possono, in effetti, gestire dischi con più di 1024 cilindri. Se avete un sistema di questo genere, potete dimenticarvi del problema; se non ne siete sicuri, mettetela comunque entro i primi 1024 cilindri.

:


Ciascuna partizione dovrebbe avere un numero pari di settori, dato che i filesystem di Linux usano blocchi di 1 kb, cioè due settori. Un numero dispari di settori comporterà il mancato utilizzo dell'ultimo settore; una cosa del genere non crea problemi, ma è brutto, e alcune versioni di fdisk  vi daranno un avvertimento. Modificare la dimensione di una partizione di solito richiede di fare il backup di tutto (preferibilmente di tutto il disco, non si sa mai), cancellare la partizione, crearne una nuova, e rimettere tutti i dati. Se la partizione deve aumentare, dovrete anche modificare la dimensione (e fare il backup e il restore) anche delle partizioni confinanti.


Dato che modificare la dimensione di una partizione è una cosa complicata, è preferibile dimensionarle bene la prima volta, o avere un mezzo di backup efficace e facile da usare. Se state installando da un mezzo che non richiede molto intervento umano (ad esempio un CD-ROM, e non un floppy), spesso è più facile giocare con diverse configurazioni all'inizio: dato che non avete dati di cui fare backup, non è poi così doloroso modificare le dimensioni delle partizioni diverse volte.

 


Esiste un programma per l'MS-DOS, chiamato fips , che ridimensiona le partizioni MS-DOS senza dover fare backup e recuperare tutti i dati, ma per gli altri filesystem è ancora necessario.


 

I nostri Clienti lavoro con la massima soddisfazione e tranquillità!!!!!


 

 

Inviare a giannibuccoliero@itsystemi.com un messaggio di posta elettronica contenente domande o commenti su questo sito Web.
Copyright © 2004 IT SYSTEMI XP CONSULTING di GIANNI BUCCOLIERO 74028 SAVA (TARANTO)
Aggiornato il: 16 maggio 2006