|
||
|
|
|
Le partizioni
Un singolo
hard disk può essere diviso in diverse partizioni, ciascuna delle quali
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 userà la sua partizione come vuole e
non toccherà quella dell'altro. In questo modo i due sistemi possono coesistere
in pace sullo stesso hard disk, mentre senza le partizioni ci sarebbe voluto un
disco 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.
L'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). Questo 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
come 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 divisione specifico al suo interno. 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é a volte è 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, invece che in quella principale di Linux, 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 si dice estesa e le sottopartizioni sono
partizioni logiche: si comportano come primarie[1] 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,
e parte del disco non viene partizionato. Il disco intero e ciascuna partizione
primaria hanno un settore di boot.
Figura 4-2. Un
esempio di partizionamento di hard disk.
Tipi di partizione
Le tabelle
delle partizioni (quella nell'MBR, e quelle per le partizioni estese)
contengono un byte per partizione che ne identifica il tipo. In questo modo si
cerca di identificare il sistema operativo che usa la partizione, o il modo in
cui essa viene usata. Lo scopo è evitare che due sistemi operativi usino
accidentalmente la stessa, comunque, in realtà, i sistemi operativi non
considerano veramente il tipo della partizione: ad esempio, Linux proprio non
lo legge. Peggio ancora, alcuni sistemi lo usano in maniera non corretta: ad
esempio, almeno alcune versioni di DR-DOS ignorano il bit più significativo del
byte, altre no.
Non c'è
nessuna agenzia di standardizzazione che specifica cosa significhi ciascun
valore di questo byte, ma alcuni valori comunemente accettati sono riportati in
Tabella 4-1. La stessa lista è
disponibile nel programma fdisk di Linux.
Tabella 4-1.
Tipi di partizione (dal programma fdisk di Linux).
0 |
Vuota |
40 |
Venix 80286 |
94 |
Amoeba BBT |
1 |
DOS 12-bit FAT |
51 |
Novell? |
a5 |
BSD/386 |
2 |
XENIX root |
52 |
Microport |
b7 |
BSDI fs |
3 |
XENIX usr |
63 |
GNU HURD |
b8 |
BSDI swap |
4 |
DOS 16-bit <32M |
64 |
Novell |
c7 |
Syrinx |
5 |
Estesa |
75 |
PC/IX |
db |
CP/M |
6 |
DOS 16-bit >=32M |
80 |
MINIX vecchio |
e1 |
DOS access |
7 |
OS/2 HPFS |
81 |
Linux/MINIX |
e3 |
DOS sola lettura |
8 |
AIX |
82 |
Linux swap |
f2 |
DOS secondaria |
9 |
AIX avviabile |
83 |
Linux nativa |
ff |
BBT |
a |
OS/2 Boot Manag |
93 |
Amoeba |
|
|
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 viene avviato) deve essere completamente all'interno dei primi 1024
cilindri, perché il disco viene usato dal BIOS durante l'avviamento del sistema
(prima che il sistema vada in modalità protetta) e questo non ne può gestire di
più. 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 toglierà
la possibilità di avviare 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 un numero maggiore di cilindri. Se avete un sistema di questo genere,
potete dimenticarvi del problema; se non ne siete sicuri, mettetela comunque
entro i primi 1024.
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; non crea problemi, ma è brutto, e
alcune versioni di fdisk vi daranno un avvertimento.
Modificare la
dimensione di una partizione di solito richiede di farne il backup
(preferibilmente di tutto il disco, non si sa mai), cancellarla, crearne una
nuova e rimetterci 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
farlo 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 dei 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 una partizione di
MS-DOS o di Windows senza bisogno di dover fare backup e recuperare tutti i
dati; per gli altri tipi di filesystem è però ancora necessario seguire tutta
la procedura.
File di device e partizioni
Ciascuna
partizione o partizione estesa ha il proprio file di device. Per convenzione i
nomi di questi file sono composti dal nome del disco e dal numero della
partizione, tenendo conto che da 1 a 4 si tratta di partizioni primarie
(indipendentemente da quante partizioni primarie ci siano in realtà), e da 5 a
8 di partizioni logiche (indipendentemente da quale sia la partizione primaria
che le contiene). Ad esempio, /dev/hda1 è la prima partizione primaria sul
primo disco IDE, e /dev/sdb7 è la terza partizione estesa sul secondo disco
SCSI. L'elenco dei dispositivi ([DEVICE-LIST])
dà altre informazioni su questo argomento.
Note
Illogiche? |
|
|
|
|
|
|