5. Partizionare con fdisk

Questa sezione spiega in pratica come partizionare il proprio disco fisso con l'utilità fdisk. Linux consente solo 4 partizioni primarie. Si può avere un numero molto più grande di partizioni logiche dividendo ulteriormente una delle partizioni primarie. Solo una delle partizioni primarie può essere suddivisa.

Esempi:

  1. Quattro partizioni primarie (vedere la la Sezione 5.2)

  2. Partizioni primarie e logiche coesistenti (vedere la la Sezione 5.3)

5.1. Uso di fdisk

Per avviare fdisk digitare (come superutente) fdisk device al prompt dei comandi. device potrebbe essere qualcosa del tipo /dev/hda o /dev/sda (vedere la la Sezione 2.1.1). I comandi base di fdisk di cui si ha bisogno sono:

p visualizza la tabella delle partizioni

n crea una nuova partizione

d cancella una partizione

q esce senza salvare i cambiamenti fatti

w scrive la nuova tabella delle partizioni ed esce

I cambiamenti che vengono fatti alla tabella delle partizioni non hanno alcun effetto fino a che non si dà il comando di scrittura (w). Ecco un esempio di tabella delle partizioni:


Disk /dev/hdb: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes
 
   Device Boot    Start       End    Blocks   Id  System
/dev/hdb1   *         1       184    370912+  83  Linux
/dev/hdb2           185       368    370944   83  Linux
/dev/hdb3           369       552    370944   83  Linux
/dev/hdb4           553       621    139104   82  Linux swap
La prima riga mostra la geometria del disco fisso. Può non essere accurata fisicamente, ma la si può accettare come se lo fosse. Il disco fisso in questo esempio è composto da 32 piatti a doppia faccia con una testina per ogni lato (probabilmente non è vero). Ogni piatto ha 621 tracce concentriche. Una traccia a 3 dimensioni (la stessa traccia su tutti i dischi) viene chiamata un cilindro. Ogni traccia è divisa in 63 settori. Ogni settore contiene 512 byte di dati. Perciò la dimensione dei blocchi nella tabella delle partizioni è di 64 testine * 63 settori * 512 byte ahemmm... diviso per 1024. (Vedere 4 per un esame dei problemi che questo calcolo comporta.) I valori "start" (inizio) e "end" (fine) sono espressi in cilindri.

5.2. Quattro partizioni primarie

In breve

Decidere la dimensione dello spazio di swap (vedere la la Sezione 4.4) e dove esso dovrà essere (vedere la la Sezione 4.4.3). Dividere lo spazio restante nelle tre altre partizioni.

Esempio

Avviare fdisk dal prompt della shell:


# fdisk /dev/hdb 
si è indicato che si sta usando la seconda unità sul controller IDE. (Vedere la la Sezione 2.1.) Quando si visualizza la tabella delle partizioni (vuota), si ottengono solo le informazioni sulla configurazione.

Command (m for help): p

Disk /dev/hdb: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes
Si sapeva di avere un disco di 1.2GB, ma ora lo si sa davvero: 64 * 63 * 512 * 621 = 1281982464 byte. Si decide di riservare 128MB di tale spazio per lo swap, lasciandone 1153982464. Se si usa una delle partizioni primarie per lo swap, significa che ne rimangono ancora tre per le partizioni ext2. Dividendo in maniera uguale lo spazio, ciò significa 384MB per partizione. Al lavoro.

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-621, default 1):<RETURN>
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-621, default 621): +384M
Successivamente impostare la partizione che si vuole usare per lo swap:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (197-621, default 197):<RETURN>
Using default value 197
Last cylinder or +size or +sizeM or +sizeK (197-621, default 621): +128M
Adesso la tabella delle partizioni ha questo aspetto:

   Device Boot    Start       End    Blocks   Id  System
/dev/hdb1             1       196    395104   83  Linux
/dev/hdb2           197       262    133056   83  Linux
Impostare le ultime due partizioni restanti come si è fatto per la prima. Infine, rendere avviabile la prima partizione:

Command (m for help): a
Partition number (1-4): 1
E rendere la seconda partizione una partizione di tipo swap:

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)      
Command (m for help): p
Il risultato finale:

Disk /dev/hdb: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes
 
   Device Boot    Start       End    Blocks   Id  System
/dev/hdb1   *         1       196    395104+  83  Linux
/dev/hdb2           197       262    133056   82  Linux swap
/dev/hdb3           263       458    395136   83  Linux
/dev/hdb4           459       621    328608   83  Linux          
Da ultimo, dare il comando di scrittura (w) per scrivere la tabella sul disco.

Argomenti correlati:

5.3. Partizioni primarie e logiche coesistenti

In breve: creare e usare una delle partizioni primarie per ospitare tutte le partizioni extra. Creare quindi le partizioni logiche al suo interno. Creare le altre partizioni primarie prima o dopo la creazione delle partizioni logiche.

Esempio

Avviare fdisk dal prompt della shell:


# fdisk /dev/sda
si è indicato che si sta usando la prima unità nella catena SCSI. (Vedere la la Sezione 2.1).

Dapprima decidere quante partizioni si vogliono. Si sa che l'unità ha una capacità di 183GB e si vogliono partizioni da 26GB (magari perché si hanno nastri di back-up all'incirca di quelle dimensioni).

183GB / 26GB = ~7

perciò saranno necessarie 7 partizioni. Anche se fdisk accetta dimensioni delle partizioni espresse in MB e KB, si decide di calcolare il numero dei cilindri che verrà contenuto in ciascuna partizione, dato che fdisk mostra le posizioni di inizio e fine in cilindri. Avviando fdisk si vede che si hanno 22800 cilindri.


> The number of cylinders for this disk is set to 22800.  There is
> nothing wrong with that, but this is larger than 1024, and could in
> certain setups cause problems with: 1) software that runs at boot
> time (e.g., LILO) 2) booting and partitioning software from other
> OSs  (e.g., DOS FDISK, OS/2 FDISK)
Allora, 22800 cilindri totali divisi per sette partizioni fa 3258 cilindri. Ogni partizione sarà all'incirca grande 3258 cilindri. Ignorare il messaggio di avvertimento poiché non si sta usando l'unità di avvio. (la Sezione 4).

Dato che si hanno 4 partizioni primarie, 3 di esse possono essere grandi 3258 cilindri. La partizione estesa dovrà essere grande (4 * 3258), o 13032, cilindri per poter contenere le 4 partizioni logiche.

Inserire i seguenti comandi per impostare la prima delle 3 partizioni primarie (ciò che viene inserito dall'utente è mostrato in grassetto):


Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-22800, default 1): <RETURN>
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-22800, default 22800): 3258
L'ultima partizione è la partizione estesa:

Partition number (1-4): 4
First cylinder (9775-22800, default 9775): <RETURN>
Using default value 9775
Last cylinder or +size or +sizeM or +sizeK (9775-22800, default 22800): <RETURN>
Using default value 22800
Il risultato, quando si usa il comando di visualizzazione è:

/dev/sda1             1      3258  26169853+  83  Linux
/dev/sda2          3259      6516  26169885   83  Linux
/dev/sda3          6517      9774  26169885   83  Linux
/dev/sda4          9775     22800 104631345    5  Extended
In seguito dividere la partizione estesa in 4 partizioni logiche, iniziando dalla prima partizione logica, facendo segmenti di 3258 cilindri. Le partizioni logiche partono automaticamente da /dev/sda5.

Command (m for help):  n
First cylinder (9775-22800, default 9775): <RETURN>
Using default value 9775
Last cylinder or +size or +sizeM or +sizeK (9775-22800, default 22800): 13032
Il risultato finale è:

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1             1      3258  26169853+  83  Linux
/dev/sda2          3259      6516  26169885   83  Linux
/dev/sda3          6517      9774  26169885   83  Linux
/dev/sda4          9775     22800 104631345    5  Extended
/dev/sda5          9775     13032  26169853+  83  Linux
/dev/sda6         13033     16290  26169853+  83  Linux
/dev/sda7         16291     19584  26459023+  83  Linux
/dev/sda8         19585     22800  25832488+  83  Linux
Da ultimo, inserire il comando di scrittura (w) per scrivere la tabella sul disco. Per rendere le partizioni utilizzabili, si dovrà formattare (la Sezione 10.1) ciascuna partizione e poi montarla (la Sezione 10.3).

5.4. Esempi presentati

Vorrei presentare l'organizzazione delle mie partizioni, perché funziona bene con qualunque distribuzione Linux (anche quelle grandi basate su RPM). Ho un disco fisso che [...] è 10 giga, esattamente. Windows non può vedere più di 9.3 giga di esso, ma Linux lo vede tutto e lo utilizza tutto. Esso ha anche molto più di 1024 cilindri.

Tabella 7. Esempio di tabella delle partizioni

PartizionePunto di mountDimensione
/dev/hda1/boot(15 mega)
/dev/hda2partizione windows 98(2 giga)
/dev/hda3estesa(N/D)
/dev/hda5spazio di swap(64 mega)
/dev/hda6/tmp(50 mega)
/dev/hda7/(150 mega)
/dev/hda8/usr(1.5 giga)
/dev/hda9/home(resto del disco)
Io faccio test sui nuovi kernel per le memorie di massa USB e questo spiega la grande partizione /boot. Installo LILO nell'MBR e in modo predefinito avvio windows (non sono l'unico ad usare questo computer).

Ho anche notato che non ci sono esempi REALI di tabelle di partizioni e per i novizi suggerisco FORTEMENTE di metterne più di uno. Sono appena uscito dalla stadio di novellino e il partizionamento è stato l'aspetto che più mi ha confuso.

Valkor