Come partizionare l'Hard Disk con Fdisk

 
Qui di seguito sono elencate le procedure per il partizionamento del disco fisso al fine di separare le directory del sistema e settare per ognuna di esse i flag più appropriati. Fdisk è un programma in linea di comando presente in
tutte le distribuzioni Linux.
 
Premessa sulle partizioni

Partizionare vuol dire suddividere un singolo disco rigido in più dischi
logici. Una partizione è una serie contigua di blocchi dell'hard disk che viene trattata come un disco indipendente. Ogni partizione è identificata da un codice che indica il tipo di filesystem che ospita. Per esempio il filesystem standard di Linux è l'ext2 identificato dal codice 0x83. Ogni sistema operativo ha un suo filesystem: Windows-NT utilizza NTFS con codice 0x07.In origine, in un computer basato su processori Intel, il numero massimo di partizioni per un hard
disk fu limitato a 4; queste sono chiamate partizioni primarie. Per superare la storica soglia di 4 partizioni bisogna sub-partizionare una partizione primaria in più sub-partizioni: queste sub-partizioni sono chiamate partizioni logiche. E' da tenere presente che solo una delle quattro partizioni primarie può essere suddivisa partizioni logiche. La partizione primaria che ospita le partizioni logiche, cambia nome e viene chiamata partizione estesa. Poichè le partizioni
logiche sono fra loro contigue ed ogni partizione logica ha un pointer alla successiva partizione logica, ne deriva che le partizioni logiche possono essere di numero illimitato. Ma ciò solo in teoria poichè in pratica linux ha posto un limite al numero totale di partizioni che è possibile creare in un disco rigido: 15 (in totale) in un hard disk SCSI, 63 in totale su un disco rigido IDE.
 
Note preliminari
Prima di procedere al partizionamento è necessario avere chiaro quello che si vuole ottenere. Infatti se la nostra intenzione è per esempio quella di configurare un mailserver dovremo riservare più spazio per la directory /var mentre potrebbe essere non necessario mettere alcune directory in una partizione separata.Quindi è una buona idea appuntarsi prima un prospetto di quello che dovrà essere la configurazione del nostro hard disk. Qui di seguito viene
descritta una configurazione generica che deve essere adattata secondo le proprie esigenze.
Organizzazione del filesystem
Supponiamo di avere un hard disk da 20 Gb e di volere partizionare
separatamente le seguenti directory:
- partizione di Swap...128 Mb
- /...........................3 Gb
- /boot....................100 Mb
- /home...................6 Gb
- /usr.......................6 Gb
- /var.......................3 Gb
- /tmp.....................1,769 Gb
  Pertanto creo 3 partizioni primarie (swap, boot, / ) ed una partizione estesa che comprenderà 4 partizioni logiche (/home, /usr, /var, /tmp).
Utilizzo di fdisk
1) In ordine andremo a creare le tre partizioni primarie: boot,swap e la
partizione di root:
[darkstar@localhost]# fdisk /dev/hda (o hdb, o hdc ecc.. a
seconda di quanti hardisk ide avete e di quale scegliete per installare
linux).Iniziamo con la partizione di BOOT.La partizione di
boot dovrebbe contenere le immagini del kernel che utilizziamo per l'avvio del
sistema. Conviene creare per prima la partizione di BOOT poichè il BOOT del
sistema è in genere gestito dal BIOS (ci sono delle eccezioni: per es.: boot da floppy, boot da MS-DOS) e il BIOS legge solo i primi 1024 cilindri dell'Hard Disk. Quindi, la partizione di boot deve risiedere nei primi blocchi dell'HD.2) A questo punto
vi chiede di immettere un comando, digitate "n" per creare una nuova partizione: [darkstar@localhost]# fdisk /dev/hda
Command (m for help):n
3) Adesso create una partizione primaria e quindi digitate p seguito da
Invio: Command action
e extended
p primary partition (1-4)
p
4) Ora vi chiederà di specificare il numero della partizione, poichè è la
prima che create digitate 1: Partition number (1-4): 15) Fdisk vi chiederà da quale
cilindro inziare la nuova partizione: scegliete 1 o premete solo invio. First cylinder(1-39813, default 1): 16) Poi vi chiede le
dimensioni che dovrà avere la partizione che state creando; potete dargli direttamente la dimensione in Mb o il numero di cilindro corrispondente. Nel nostro caso poichè stiamo creando la partizione di boot ed abbiamo deciso di dargli 100 Mb di spazio, digitamo pertanto: +100 Mb (oppure il numero dell'ultimo cilindro corrispondente a 100 Mb per esempio: 261) Last cylinder or +size or +sizeM or +sizeK(1-39813, default 39813): +100MOra
abbiamo creato la prima partizione.7) Ora verifichiamo che la partizione sia
stata creata correttamente e digitiamo p(il comando "p" dice ad fdisk
di stampare la tabella delle partizioni esistenti sul nostro Hard Disk): Command (m for help):p
Disk /dev/hda: 16 heads, 63 sectors, 39813 cylinders
Units = cylinders of 1008 x 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 261 131512+ 83 Linux native

Ora creiamo la partizione di SWAP. I passaggi sono
quasi gli stessi, senza uscire dal programma fdisk, ovvero continuando dal punto
"7" precedente:1) Digitate "n" per creare una nuova partizione: [darkstar@localhost]# fdisk /dev/hda
Command (m for help):n
2) Adesso create una partizione primaria e quindi digitate p seguito da
Invio: Command action
e extended
p primary partition (1-4)
p
3) Ora vi chiederà di specificare il numero della partizione, poichè è la
seconda che create digitate 2: Partition number (1-4): 24) Fdisk vi chiederà da quale
cilindro inziare la nuova partizione: premete invio e confermate il cilindro di default che corrisponde al primo cilindro disponibile successivo alla prima
partizione di boot già creata: First cylinder(262-39813, default 262): [Tasto Invio]5) Poi vi
chiede le dimensioni che dovrà avere la partizione che state creando; potete dargli direttamente la dimensione in Mb o il numero di cilindro corrispondente.
Nel nostro caso poichè stiamo creando la partizione di swap ed abbiamo deciso di dargli 128 Mb di spazio, digitamo pertanto: +128 Mb (oppure il numero dell'ultimo cilindro corrispondente a 128 Mb per esempio: 550) Last cylinder or +size or +sizeM or +sizeK(262-39813, default 39813): +128MOra
abbiamo creato la 2° partizione che però non è ancora una partizione di
swap.6) Come default Linux crea partizioni Linux native (definite da un numero: 83), che però non è adatta per contenere lo spazio di swap. Poichè ora vogliamo creare la partizione di swap, si deve cambiare il tipo di partizione. La partizione di swap è definita da un codice esadecimale che corrisponde a 82. Per verificare tutto ciò e cambiare il tipo di partizione digitiamo
p(il comando "p" dice ad fdisk di stampare la tabella delle
partizioni esistenti sul nostro Hard Disk): Command (m for help):p
Disk /dev/hda: 16 heads, 63 sectors, 39813 cylinders
Units = cylinders of 1008 x 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 261 131512+ 83 Linux native
/dev/hda2 262 550 171512+ 83 Linux native
7) La partizione hda2 va quindi definita come partizione di swap; quindi
digitiamo t seguita dal tasto INVIO:(il comando "t" dice a fdisk di cambiare
il tipo di partizione) Command (m for help):t
Partition number (1-4):2Digitiamo 2 poichè è la partizione
numero 2 che vogliamo cambiare. Digitiamo INVIO:Hex code (type L to list codes):82
Changed system type of partition 2 to 82 (Linux swap)

Command (m for help):Abbiamo digitato 82 poichè vogliamo ottenere una
partizione di tipo Swap.8) Se vogliamo verificare che le modifiche
abbiano avuto successo proviamo a digitare nuovamente "p": Command (m for help):p

Disk /dev/hda: 128 heads, 63 sectors, 1024 cylinders
Units = cylinders of 8064 x 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 261 131512+ 83 Linux native
/dev/hda2 262 550 171512 82 Linux swap
III° ed ultima partizione primaria:" DIRECTORY RADICE: /
".Bene, ora creiamo l'ultima partizione primaria, ovvero la partizione della directory radice "/" che comprenderà automaticamente tutte le subdirectory che abbiamo deciso di non partizionare separatamente (ovvero /dev, /etc, /bin ecc....).1) Senza uscire da fdisk, ovvero riprendendo il
discorso dal punto "8" ripetiamo sostanzialmente gli stessi passaggi, ovvero
digitiamo "n" per creare una nuova partizione: Command (m for help):p

Disk /dev/hda: 16 heads, 63 sectors, 39813 cylinders
Units = cylinders of 1008 x 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 261 131512+ 83 Linux native
/dev/hda2 262 550 171512 82 Linux swap

Command (m for help):n
2) Adesso create una partizione primaria e quindi digitate p seguito da
Invio: Command action
e extended
p primary partition (1-4)
p
3) Ora vi chiederà di specificare il numero della partizione, poichè è la
terza che create digitate 3: Partition number (1-4): 34) Fdisk vi chiederà da quale
cilindro inziare la nuova partizione: premete invio (confermando così il primo cilindro libero diponibile). First cylinder(551-39813, default 551): [Tasto Invio]5) Poi vi
chiede le dimensioni che dovrà avere la partizione che state creando; potete
dargli direttamente la dimensione in Mb; nel nostro caso abbiamo deciso di
dargli 3 Gb di spazio, digitamo pertanto: +3000 Mb Last cylinder or +size or +sizeM or +sizeK(551-39813, default 39813): +3000M6)
Verifichiamo che la partizione sia stata creata correttamente e digitiamo
p: Command (m for help):p

Disk /dev/hda: 16 heads, 63 sectors, 39813 cylinders
Units = cylinders of 1008 x 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 261 131512+ 83 Linux native
/dev/hda2 262 550 171512 82 Linux swap
/dev/hda3 551 4502 5120104 83 Linux native

PARTIZIONE ESTESA A questo punto dobbiamo creare la
partizione estesa che dovrà comprendere le sub-directory che abbiamo deciso di partizionare ognuna separatemente (/home, /var, /usr, /tmp).1) Senza uscire dal programma fdisk, ovvero continuando dal punto "6" precedente digitate
"n" per creare una nuova partizione: Command (m for help):n
2) Adesso create una partizione estesa e quindi digitate "e" seguito da
Invio: Command action
e extended
p primary partition (1-4)
e
3) Ora Fdisk vi chiederà da quale cilindro inziare la partizione estesa:
premete invio (confermando così il primo cilindro libero diponibile). First cylinder(4503-39813, default 4503): [Tasto Invio]4) Poi
vi chiede le dimensioni che dovrà avere la partizione che state creando; in questo caso poichè la partizione estesa dovrà occupare tutto lo spazio residuo rimasto nell'Hard-Disk potete direttamente digitare Invio confermando la scelta di default corrispondente all'ultimo cilindro, digitamo pertanto:
[Invio].[Nota: qualcuno consiglia di non occupare tutto lo spazio
dell'hard-disk e quindi di lasciare liberi gli ultimi cilindri, scegliendo per
esempio in questo caso 39800] Last cylinder or +size or +sizeM or +sizeK (4503-39813,default 39813):[Invio]Ecco
creata anche la partizione estesa, che possiamo verificare col solito comando
"p": Command (m for help):p

Disk /dev/hda: 16 heads, 63 sectors, 39813 cylinders
Units = cylinders of 1008 x 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 261 131512+ 83 Linux native
/dev/hda2 262 550 171512 82 Linux swap
/dev/hda3 551 4502 5120104 83 Linux native
/dev/hda4 4503 39813 19405008 5 Extended

CREAZIONE DELLE PARTIZIONI LOGICHE NELLA PARTIZIONE
ESTESAIniziamo adesso a creare le partizioni logiche,
frazionando la partizione estesa. Vogliamo creare quindi 4 partizioni logiche
che in ordine saranno:- /HOME- /USR- /VAR- /TMPLa procedura
per la creazione delle partizioni logiche è sostanzialmente la solita, vi sono
però alcune piccole differenze. 1) La prima la noterete quando darete il solito comando "n" per creare una nuova partizione, questa volta sceglieremo "l" ovvero logical: Command (m for help): n
Command Action
l logical (5 or over)
p primary partition (1-4)
l
2) Adesso vi chiederà quale dovrà essere il primo cilindro della
partizione logica, digitiamo Invio per confermare il cilindro di default (che
corrisponde al primo cilindro della partizione estesa): First cylinder(4503-39813, default 4503): [Tasto Invio]3) Ora
dovrete scegliere l'ultimo cilindro o le dimensioni della partizione logica. La partizione logica che stiamo creando dovrà ospitare la directory degli utenti
/home, che abbiamo deciso essere di 6 Gb, pertanto digitiamo +6000M: First cylinder(4503-39813,default 4503):
Using default value 4503
Last cylinder or +size or +sizeM or +sizeK (4503-39813, default 39813):+6000M4)
Verifichiamo che sia stato eseguito ciò che volevamo: Command (m for help):p

Disk /dev/hda: 16 heads, 63 sectors, 39813 cylinders
Units = cylinders of 1008 x 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 261 131512+ 83 Linux native
/dev/hda2 262 550 171512 82 Linux swap
/dev/hda3 551 4502 5120104 83 Linux native
/dev/hda4 4503 39813 19405008 5 Extended
/dev/hda5 4503 11457 5120104+ 83 Linux native
5) A questo punto ripetiamo gli stessi passi per le rimanenti 3 partizioni
logiche ovvero quelle per /USR, /VAR e /TMP. E' ovviamente importante rispettare le dimensioni delle varie partizioni logiche: ovvero la somma delle dimensioni delle 4 partizioni logiche deve essere in totale uguale o lievemente minore della dimensione della partizione estesa. 6) Alla fine di tutto il lavoro
digitando "p" il risultato dovrebbe essere tipo questo qui: Command (m for help):p

Disk /dev/hda: 16 heads, 63 sectors, 39813 cylinders
Units = cylinders of 1008 x 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 261 131512+ 83 Linux native
/dev/hda2 262 550 171512 82 Linux swap
/dev/hda3 551 4502 5120104 83 Linux native
/dev/hda4 4503 39813 19405008 5 Extended
/dev/hda5 4503 11457 5120104+ 83 Linux native
/dev/hda6 11458 23648 6144232+ 83 Linux native
/dev/hda7 23649 31000 3705376+ 83 Linux native
/dev/hda8 31001 39813 4435168+ 83 Linux native
A QUESTO PUNTO RICORDIAMOCI DI SALVARE LE MODIFICHE EFFETTUATE
(OVVERO TUTTO IL NOSTRO LAVORO) DIGITANDO "w": Command (m for help):wConsiglio caldamente di scriversi un prospetto di come è stato partizionato l'hard-disk e cosa dovrà ospitare ogni
partizione:- hda1----->/boot- hda2----->/swap-
hda3----->/- hda5----->/home- hda6----->/usr-
hda7----->/var- hda8----->/tmpInfatti una volta digitato "w"
ed usciti da fdisk, ripartirà il programma di installazione di Linux e non appena vedrà che nell'hard-disk vi sono diverse partizioni da formattare vi chiederà per ognuna di esse quali directory montare (eccetto che la partizione di swap che in genere viene riconosciuta come tale e come tale viene automaticamente formattata ed utilizzata).

 

________________

""