Dopo aver parlato di come è strutturato il File System Linux ci accingeremo a descrivere il processo della sua creazione usando i metodi di semplice partizionamento e tramite LVM.
La struttura della creazione delle partizioni viene fatta in fase di installazione tramite Anaconda, ma adesso vedremo come in un sistema gia installato possiamo creare e rimuovere partizioni e di come deve essere strutturato il partizionamento di un sistema Linux.
Ci sono diversi modi di come partizionare ma ci sono delle cose che si accomunano su entrambi.
Un sistema Linux necessita di:
Una partizione di boot ovvero una spazio dove ci sono tutti i file relativi all’avvio del sistema e il kernel.
Una partizione di root (quella che Windows identifica con C:) ed è identificata da uno slash (/) …da non confondere con Root Directory ( /root ) che è la home dell’utente root.
Una partizione di SWAP che ha la stessa funzionalità del file di paging di windows ovvero quando la RAM è satura viene usato parte del nostro hard disk
Detto questo dobbiamo capire la tipologia di partizione, ossia:
- Partizione primaria
- Partizione logica
- Partizione estesa
Possiamo creare un massimo di 4 partizioni primarie.
Per superare il limite di 4 partizioni primarie è nata la partizione estesa
Possiamo avere solamente una partizione estesa
Dentro una partizione estesa possiamo creare fino a un massimo di 62 partizioni logiche.
La partizione primaria contiene sistemi operativi e dati accessibili nel momento in cui la partizione è attiva.
La partizione estesa invece nasce per superare il limite delle 4 partizioni primarie, non contiene direttamente dati ma serve per dividere l’ulteriore spazio su disco rimasto in partizioni logiche per poter contenere dati
La partizione logica come abbiamo detto può contenere dei dati relativi al sistema o di altro genere
Se ad esempio vogliamo creare 6 partizioni in un disco creeremo:
3 Partizioni Primarie
Una partizione Estesa con all’interno le 2 partizioni logiche.
La nomenclatura che assumeranno gli Hard Disk che partizioneremo sarà hda per i dischi ATA e sda per quelli SATA e SCSI:
Le partizioni al suo interno invece saranno sotto forma di numeri, vediamo alcuni esempi:
hda1 indica un hard disk ATA con una partizione
hda2 indica lo stesso hard disk ATA con una seconda partizione
hdb1 indica la presenza di un secondo hard disk con una partizione
hdb2 indica la presenza sempre di un secondo hard disk con una seconda partizione
Se l’hard disk fosse SATA o SCSI avremo sda invece che hda
Iniziamo a vedere qualche comando:
Per vedere la lista delle partizioni sul disco usiamo il seguente comando:
fdisk -cul /dev/hdb
L’eliminazione o la Creazione di partizioni viene fatta eseguendo il comando seguito dal nome del dispositivo su cui vogliamo operare, ad esempio se vogliamo eliminare una partizione su /dev/hdb dobbiamo operare nel modo seguente:
fdisk -cu /dev/hdb
Digitiamo “d”, premiamo INVIO
Specifichiamo in forma numerica quale partizione cancellare
Apportiamo la modifica con “w”
Per verificare digitiamo “p” e se tutto è andato bene non vedremo nessuna partizione sul disco.
Le cose sono molto simili anche in fase di creazione di una partizione, cambia solamente la tipologia di lettere da digitare.
Dopo la creazione della partizione dobbiamo creare il File System (ext4 nel nostro caso ) e lo facciamo tramite il comando mkfs nel seguente modo:
mkfs.ext4 /dev/hdb
A questo punto la partizione sarà identificata come hdb1, non resta che montarla per renderla accessibile e ciò consiste nel creare una directory ad esempio nel percorso /media chiamata ad esempio discoA per poi montarla:
cd /media
mkdir discoA
mount /dev/hdb1 /media/discoA
Trattiamo adesso il concetto del partizionamento tramite LVM.
A differenza delle partizioni classiche LVM ci permette in modo flessibile la gestione delle partizioni
Questa è la struttura del LVM:
Inizializziamo uno o più hard disk come Volumi Fisici ( Physical Volume ), uniamo gli hard disk facendogli formare un Gruppo di Volume ( Volume Group ) e al suo interno creiamo quanti Volumi Logici ( Locial Volume ) vogliamo che li possiamo considerare anche come partizioni ma in questa struttura si chiamano Volumi Logici.
Nel momento che si esaurisce lo spazio del Volume Group ci basta inserire un nuovo hard disk nel sistema e procedere come abbiamo detto sopra, per avere cosi una soluzione più flessibile rispetto al partizionamento fisico.
Per nostra comodità creiamo un LVM in una partizione dove abbiamo dello spazio libero ma non cambia nulla se invece di usare la partizione hda4 venisse usato come nella maggioranza dei casi l’hard disk intero che in questo caso si chiamerebbe hda, hdb…. o sda,sdb….
Inizializziamo la nostra partizione col comando pvcreate seguito dal disco:
pvcreate /dev/hda4
Physical volume “/dev/hda4” successfully created
Verifichiamo che il volume fisico sia stato creato correttamente con il comando pvdisplay:
pvdisplay /dev/hda4
Adesso creiamo il Volume Group con il comando vgcreate nome_gruppo disco:
vgcreate vg_group01 /dev/hda4
Verifichiamo che il Volume Group sia stato creato correttamente ( -v per visualizzarlo nei dettagli ):
vgdisplay -v vg_group01
Adesso possiamo creare quanti Logical Volume si vuole.
Vediamo come creare un Logical Volume da 3 GB con il comando lvcreate seguito dall’ opzione -L seguita dal Volume Group:
lvcreate -L 3000 vg_group01
Verifichiamo che è stato creato il Logical Volume tramite il comando lvdisplay:
lvdisplay vg_group01
Vediamo nei dettagli la creazione del volume logico nel Volume Group tramite l’opzione -v:
vgdisplay -v vg_group01
Il Volume logico creato verrà identificato sotto forma di lvol0 ma possiamo rinominarlo:
lvrename /dev/vg_group01/lvol0 /dev/vg_group01/dati
e da lvol0 diventerà dati
Vediamo come aumentare la dimensione del volume logico creato tramite lvextend, per esempio possiamo aumentare di 2GB la dimensione del volume logico precedentemente creato tramite +:
lvextend -L +2000 /dev/vg_group01/lvol0
Ricordiamoci sempre che dopo il comando lvextend dobbiamo usare il comando resize2f <volume_logico> per estendere anche il file system.
resize2fs -p /dev/vg_group01/lvol0
Possiamo aumentare la dimensione del Volume Group nel momento che lo spazio si è esaurito inserendo un nuovo hard disk nel sistema, vediamo come fare:
Inizializziamo il nuovo hard disk ( ammettiamo /dev/hdd )
pvcreate /dev/hdd
A questo punto lo aggiungiamo al Volume Group con il comando vgextend:
vgextend vg_group01 /dev/hdc
Verifichiamo ciò:
vgdiplay -v vg_group01
E cosi il nostro spazio accrescerà e possiamo creare dei nuovi volumi logici al suo interno.
Ricordiamo inoltre che dopo la creazione di un Logical Volume per poterlo utilizzare deve essere creato il File System e ciò lo faremo sempre tramite il comando mkfs seguito dal percorso del Logical Volume per poi successivamente montarlo.
Potremmo anche ridurre un Volume Fisico da un Volume Group o eliminare un Logical Volume ma di per se la creazione del partizionamento tramite LVM è fatta principalmente per gestire al meglio il crescente aumento di spazio nel sistema.
Per concludere vi forniamo una lista di comandi riepilogativi di LVM:
- pvs Visualizza i volumi fisici
- vgs Visualizza il gruppo di volume
- lvs Visualizza i volumi logici
- pvdisplay Visualizza informazioni dettagliate sui volumi fisici
- vgdisplay Visualizza informazioni dettagliate sul gruppo di volumi
- lvdisplay Visualizza informazioni dettagliate sui volumi logici
- pvcreate Crea un nuovo volume fisico
- vgcreate Crea un nuovo gruppo di volume
- lvcreate Crea un nuovo volume logico
- vgextend Estende un gruppo di volumi esistente
- lvextend Estende un volume logico
- lvresize Ridimensiona un volume logico
- lvreduce Riduce un volume logico
- lvrename Rinomina un volume logico
- pvmove Migra i dati da un volume fisico ad un’altro
- vgreduce Riduce un gruppo di volume
- pvremove Rimuove un volume fisico
- vgremove Rimuove un gruppo di volume
- lvremove Rimuove un volume logico