Come fare a...
Web
Come fare a...

Gestire le partizioni su Ubuntu Server

Cambiamenti nella configurazione delle partizioni iniziale

Pagine: 1 di 1
Autore: Alessandro Di Nicola - Tratto: Linux Ubuntu per server e reti - Edizioni FAG Milano
Acquista il libro Durante l'installazione di Ubuntu Server si è visto come impostare le partizioni sul disco rigido, sfruttando al meglio l’ampio ventaglio di filesystem disponibili su Linux. Dopo aver installato Ubuntu Server, però, può essere necessario aggiungere ulteriori partizioni oppure modificare alcuni parametri di quelle esistenti. In questo articolo vedremo come fare.

Il file /etc/fstab

Per effettuare cambiamenti nella configurazione delle partizioni si deve intervenire sul file /etc/fstab.
Si apra /etc/fstab con nano, acquisendo i poteri di root:

sudo nano /etc/fstab

La struttura del file /etc/fstab è elementare: ogni riga rappresenta un diverso dispositivo nel sistema; fanno eccezione le linee con all’inizio il carattere #, che costituiscono mere righe di commento.


Figura 1: un file /etc/fstab aperto con l’editor nano

Ecco una linea di esempio di /etc/fstab:

/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0

I parametri sono separati gli uni dagli altri per mezzo di spazi vuoti. Il primo parametro (/dev/scd0) indica il file di dispositivo cui la riga si riferisce, e in questo caso si tratta del lettore CD/DVD. Per un elenco dei principali file di dispositivo si veda la Tabella 1.

Nota
Un file di dispositivo è un file che viene impiegato dal sistema per dialogare con un dispositivo come una partizione dell’hard disk o un floppy disk. I file di dispositivo possono essere letti e scritti: ciò consente di leggere il contenuto dei dispositivi hardware e di scriverci sopra.

Tabella 1: i principali file di dispositivo

File di dispositivo Dispositivo hardware
/dev/sda Il primo hard disk presente nel sistema. La prima partizione di /dev/sda è /dev/sda1, la seconda è /dev/sda2 e così via.
/dev/sdb Il secondo hard disk presente nel sistema. La prima partizione di /dev/sdb è /dev/sdb1, la seconda è /dev/sdb2 e così via.
/dev/scd0 Lettore CD/DVD
/dev/fd0 Floppy disk
/dev/video0 Videocamere e webcam

Nota
In passato i file di dispositivo degli hard disk ATA e di quelli SATA erano differenti: /dev/hdX per i primi e /dev/sdX per i secondi. Nella versione corrente di Ubuntu Server, invece, viene adottata la sola forma /dev/sdX su entrambe le tipologie di dischi.

Il parametro seguente (nell’esempio /media/cdrom0) è il punto di mount per il file di dispositivo indicato: quando si vorrà leggere il contenuto di un CD/DVD, quindi, questo sarà disponibile nella directory /media/cdrom0. Il terzo parametro rappresenta il filesystem utilizzato dal dispositivo. Nella riga di esempio sono presenti due filesystem separati da una virgola, udf e iso9660: verrà richiamato quello effettivamente utilizzato sul supporto inserito nel lettore CD/DVD.
Il parametro successivo precisa le opzioni di mount per il dispositivo indicato. Nell’esempio, user consente a un utente normale di effettuare il mount, noauto indica che il dispositivo non deve essere montato al boot della macchina, exec permette l’esecuzione di file binari nel dispositivo e utf8, infine, fa in modo che i caratteri Unicode a 16 bit in un CD vengano convertiti in caratteri UTF-8. Per un elenco esaustivo delle opzioni di mount si può leggere la man page del comando mount.
Gli ultimi due parametri sono numerici. Il primo di essi indica se di una determinata partizione si deve effettuare o meno il backup tramite il programma dump (solitamente il parametro ha valore 0, cioè backup disabilitato).
Il secondo parametro, infine, stabilisce l’ordine con il quale vengono controllate le partizione da fsck: si dovrebbe assegnare per la partizione di root il valore 1, per le altre 2. Inserendo 0 come valore del parametro, invece, la partizione non verrà mai controllata al boot.

Nota
Il comando fsck consente di controllare l’integrità delle partizioni e, nel caso, di recuperare i filesystem danneggiati. Viene invocato dal sistema durante la procedura di avvio della macchina.

Intervenire sulla tabella delle partizioni

Non sempre è possibile prevedere, al momento dell’installazione, il numero di partizioni necessarie per un server. Sovente, quindi, si deve intervenire sulla tabella delle partizioni successivamente. Per fare questo si digiti il comando seguente in console:

sudo cfdisk /dev/sda

Inserendo al posto di /dev/sda il file di dispositivo dell’hard disk da modificare, se diverso. Comparirà una schermata simile all’immagine visibile in figura 2.
L’interfaccia del programma cfdisk è di semplice utilizzo. Con i tasti freccia su e freccia giù si sceglie la partizione su cui intervenire, con i tasti freccia sinistra e destra si indica l’operazione da compiere e premendo Invio si procede con l’azione prescelta.
Ecco le operazioni che si possono effettuare. È possibile creare una partizione (New), renderla avviabile (Bootable), cancellarla (Delete) oppure indicare il tipo di filesystem presente in essa (Type). Infine si può uscire dal programma (Quit) o memorizzare i cambiamenti nella tabella delle partizioni (Write).


Figura 2: l’interfaccia di cfdisk. Da qui si possono manipolare le partizioni sul disco

I passaggi da compiere per aggiungere una nuova partizione sono dunque i seguenti:

  1. si deve raggiungere la riga con la scritta Free Space e selezionare il pulsante New;
  2. poi si sceglie se creare una partizione primaria o logica con i rispettivi pulsanti, Primary e Logical;
  3. quindi si indicano le dimensioni della partizione in MB;
  4. il tipo di filesystem di default per la nuova partizione è linux. Per indicarne un altro si seleziona il pulsante Type e, nell’elenco che appare, si digita il numero corrispondente al filesystem prescelto;
  5. infine, si preme il pulsante Write per salvare le modifiche alla tabella delle partizioni.

Creare un filesystem sulla partizione

Una volta aggiunta una nuova partizione, è necessario creare un filesystem su di essa. I comandi da impiegare per l’operazione variano a seconda del filesystem scelto per la partizione. Questi comandi iniziano con mkfs. e terminano con il nome del filesystem cui si riferiscono: mkfs.ext3, mkfs. reiserfs, mkfs.xfs e così via.

Nota
Non tutti i programmi per creare i filesystem sulle partizioni sono installati per default su Ubuntu Server. Per usare il comando mkfs.xfs è necessario infatti installare il pacchetto xfsprogs; per mkfs.jfssi deve installare jfsutils mentre per mkfs.reiser4 è richiesto il pacchetto reiser4progs.

Per creare un filesystem ext3 si esegua dunque il comando sudo mkfs. ext3, seguito dal file di dispositivo della partizione. Possono risultare utili alcune opzioni di mkfs.ext3: -c consente di controllare sulla partizione la presenza di blocchi rovinati prima di procedere alla creazione del filesystem, mentre l’opzione -m è seguita dalla percentuale di blocchi che bisogna riservare sulla partizione all’utente root.
Ecco dunque il comando per creare un filesystem ext3 sulla partizione /dev/sda6, verificando che non ci siano blocchi rovinati e assegnando il 2% dello spazio sulla partizione a root:

sudo mkfs.ext3 -c -m 2 /dev/sda6

Identificare le partizioni con l’UUID

Se nel file /etc/fstab del proprio sistema si osservano le righe riguardanti le partizioni sull’hard disk si può notare come, nel primo parametro, al posto del file di dispositivo venga utilizzata la dicitura UUID= seguita da una lunga sequenza di caratteri.
L’UUID (Universally Unique IDentifier) è un insieme di numeri esadecimali che identifica in modo univoco una partizione su di un supporto. Si tratta della forma di notazione predefinita in Ubuntu Server e viene utilizzata, dunque, nella procedura iniziale di installazione per indicare in /etc/fstab le partizioni sul disco. Una scelta simile permette all’amministratore di sistema di esser certo che una determinata riga in /etc/fstab corrisponda sempre a una specifica partizione: l’UUID, infatti, è un “marchio” che una partizione si porta dietro anche quando cambia il file di dispositivo mediante il quale la partizione diventa accessibile al sistema.

Nota
L’impiego degli UUID al posto dei file di dispositivo può essere utile in molte occasioni. Se si utilizzano più hard disk, per esempio, grazie agli UUID è possibile collegare i dischi in un ordine differente senza dover metter mano ogni volta al file /etc/fstab per cambiare i rispettivi punti di mount.

Per conoscere l’UUID di una partizione si usa il comando vol_id nel modo seguente (al posto di /dev/sda1 va inserito il file di dispositivo di cui si vuole ottenere l’UUID):

sudo vol_id -u /dev/sda1

In output si otterrà una riga corrispondente all’UUID del dispositivo, per esempio

20e23a1b-0c1b-46ba-8cba-20eb80f5c5bf

Per visualizzare, in un colpo solo, gli UUID di tutte le partizioni si può usare il comando sudo blkid. Il risultato in console sarà simile al seguente:

/dev/sda1: UUID=”45ad37fa-386e-4ff0-be33-d4465e05c096” TYPE=”ext3”
/dev/sda2: TYPE=”swap” UUID=”07523736-8e32-4378-bbff-3bcaf4d57890”
/dev/sda3: UUID=”20e23a1b-0c1b-46ba-8cba-20eb80f5c5bf” TYPE=”ext3”

Per inserire un nuovo dispositivo in /etc/fstab indicandone l’UUID, quindi, basterà mettere come primo parametro l’UUID invece del file di dispositivo attuale. Una riga come quella che segue:

/dev/sda2 none swap sw 0 0

diventerà dunque così:

UUID=07523736-8e32-4378-bbff-3bcaf4d57890 none swap sw 0 0

I volumi LVM

Durante la fase di installazione di cui abbiamo parlato nell'articolo "Come installare Linux Ubuntu Server", si è visto come procedere per effettuare un’installazione sfruttando il sistema LVM per il partizionamento del disco.
A questo punto è possibile approfondire l’argomento. Un sistema LVM è composto da tre strati ben distinti:

  • Volumi fisici: possono essere interi dischi o singole partizioni. Si creano con il comando pvcreate;
  • Gruppi di volume: sono contenitori per i volumi fisici e, a loro volta, vengono ripartiti in volumi logici. Si creano con il comando vgcreate;
  • Volumi logici: si tratta di dispositivi gestibili come normali partizioni. Si creano con il comando lvcreate.

Per creare un sistema LVM sul proprio server, quindi, è richiesta una procedura composita: bisogna inizializzare dei volumi fisici, poi è necessario racchiuderli in un gruppo di volume e, infine, si deve suddividere il gruppo in diversi volumi logici. Questi ultimi andranno quindi collegati a dei punti di mount in /etc/fstab, come si trattasse di partizioni canoniche.
Ecco quindi i passaggi da seguire per utilizzare un sistema LVM, passaggi che sono stati in precedenza nascosti dagli automatismi del programma di installazione di Ubuntu Server.

Nota
Se nella procedura di installazione non è stata scelta una delle due opzioni per il partizionamento LVM, per gestire i volumi LVM sarà necessario installare il pacchetto lvm2.

Innanzitutto, si devono creare con cfdisk le partizioni che andranno a costituire i volumi fisici LVM sul disco: si creino, per esempio, le partizioni /dev/sda1, /dev/sda2 e /dev/sda3. Poi bisogna creare i volumi fisici mediante i comandi seguenti:

sudo pvcreate /dev/sda1
sudo pvcreate /dev/sda2
sudo pvcreate /dev/sda3

Quindi, si inseriscono le tre partizioni in un nuovo gruppo di volume, chiamato semplicemente gruppo:
sudo vgcreate gruppo /dev/sda1 /dev/sda2 /dev/sda3
Per aggiungere una partizione a un gruppo già esistente si usa invece il comando vgextend:

sudo vgextend gruppo /dev/sda5

Ora non rimane che ripartire lo spazio disponibile nel gruppo di volume creando i necessari volumi logici. Ecco come procedere:

sudo lvcreate -L 700 -n vol1 gruppo
sudo lvcreate -L 4G -n vol2 gruppo
sudo lvcreate -L 3G -n vol3 gruppo

La prima riga di esempio crea nel gruppo gruppo un volume logico di 700 MB (-L 700) chiamato vol1 (-n vol1); la seconda crea un volume vol2 grande 4 GB; la terza linea crea il volume vol3 di 3 GB. A questo punto si devono aggiungere i relativi filesystem ai volumi logici. Negli esempi che seguono viene utilizzato il filesystem Ext3:

sudo mkfs.ext3 /dev/gruppo/vol1
sudo mkfs.ext3 /dev/gruppo/vol2
sudo mkfs.ext3 /dev/gruppo/vol3

Infine, si inseriscono le linee appropriate in /etc/fstab, così da legare i volumi logici ai punti di mount desiderati:

/dev/gruppo/vol1 /home ext3 defaults 0 2
/dev/gruppo/vol2 /var ext3 defaults 0 2
/dev/gruppo/vol3 /tmp ext3 defaults 0 2

Per eliminare un volume logico si usa invece il comando lvremove, in questo modo:

sudo lvremove /dev/gruppo/vol3

Cambiare le dimensioni dei volumi LVM

Ora che i volumi logici sono stati correttamente creati, è possibile modificarne facilmente e rapidamente le dimensioni. I comandi per aumentare e ridurre le dimensioni dei volumi logici sono, rispettivamente, lvextend e lvreduce.
Se si ha la necessità di aumentare le dimensioni di un volume logico (per esempio vol1) bisogna controllare, innanzitutto, che nel gruppo sia presente dello spazio libero. Per fare questo si usa il comando vgdisplay:

sudo vgdisplay

Nell’output del comando si deve cercare una riga che inizia con Free PE / Size: il valore che segue nella linea indica lo spazio vuoto disponibile.
Se non c’è spazio nel gruppo (Free PE / Size 0 / 0) si possono ridurre le dimensioni di uno degli altri volumi logici. Digitando il comando sudo lvdisplay si ottengono quindi informazioni dettagliate su tutti i volumi esistenti come visibile in figura 3: le dimensioni di un volume sono contenute nella riga che inizia con LV SIZE (per esempio, LV SIZE 700,00 MB).


Figura 3: l’output del comando sudo lvdisplay mostra informazioni su tutti i volumi logici creati

A questo punto, controllando lo spazio disponibile sul vol2 si può scoprire che questo volume logico è sovradimensionato (LV Size 4,00 GB nell’output di sudo lvdisplay mostrato in figura 3) rispetto alle necessità del server. Per ridurne le dimensioni prima si deve ridurre il filesystem nel volume logico:

sudo resize2fs /dev/gruppo/vol3 3G

quindi si ridimensiona il volume logico stesso:

sudo lvreduce -L 3G /dev/gruppo/vol2

Nota
Il comando resize2fs richiede che il filesystem da ridimensionare sia smontato. Prima di dare il comando, quindi, bisogna sincerarsi di non essere all’interno del punto di mount del volume logico (cd /), poi si deve smontare il volume (sudo umount /home, per esempio, se il punto di mount del volume è /home).

Adesso il volume vol2 è stato ridotto da 4 a 3 GB. Non rimane che aumentare lo spazio su vol1. Per fare questo, al contrario che nel caso della riduzione dello spazio su un volume, prima si ridimensiona il volume logico e poi il filesystem relativo, così:

sudo lvextend -L +1G /dev/gruppo/vol1
sudo resize2fs /dev/gruppo/vol1

Con questi due comandi il GB di spazio che è stato sottratto al volume vol2 è stato aggiunto (parametro -L +1G di lvextend) al vol1.
Negli esempi riportati si è fatto uso del filesystem Ext3. Se invece si utilizza ReiserFS, al posto del comando resize2fs bisogna impiegare resize_reiserfs. Per ridurre un volume se ne indicano le nuove dimensioni nei parametri di resize_reiserfs:

sudo resize_reiserfs -s 3G /dev/gruppo/vol2

È anche possibile indicare lo spazio da sottrarre al volume, così:

sudo resize_reiserfs -s -1G /dev/gruppo/vol2

Nel primo esempio le nuove dimensioni saranno di 3G (-s 3G), mentre nel secondo si dice a resize_reiserfs di togliere un GB dal volume (-s -1G). Per aumentare le dimensioni di un volume, quindi, è sufficiente richiamare il comando in questo modo:

sudo resize_reiserfs /dev/gruppo/vol1

Manutenzione dei dischi RAID

In caso di utilizzo del RAID, il sistema controllerà automaticamente lo stato dei dischi tramite il comando mdadm --monitor lanciato al boot e avvertirà l’amministratore di eventuali guasti inviando apposite email.
Per default queste email vengono spedite all’utente root sulla macchina locale. Per cambiare il destinatario si apra il file di configurazione /etc/ mdadm.conf con sudo nano /etc/mdadm/mdadm.conf e si modifichi la riga:

MAILADDR root

indicando al posto di root l’indirizzo email del destinatario prescelto.


Figura 4: È possibile cambiare il destinatario delle email inviate da mdadm modificando mdadm.conf

Fatto questo si deve riavviare il demone mdadm con il comando che segue:

sudo /etc/init.d/mdadm restart

Nota
Per consentire a mdadm l’invio delle email è richiesta la presenza di un mail server sulla macchina come ad esempio Postfix.

L’amministrazione dei dischi RAID si effettua richiamando direttamente il comando mdadm. Per avere informazioni sullo stato corrente di un dispositivo RAID si lancia il comando così:

sudo mdadm --query --detail <raid device>

Come <raid device> si inserisce il dispositivo RAID da controllare, per esempio /dev/md1 (vedi figura 5). Un altro comando utile per conoscere lo stato del RAID è cat /proc/mdstat.


Figura 5: con il comando mdadm --query --detail si ottengono preziose informazioni su un dispositivo RAID

Quando uno dei dischi smette di funzionare, un sistema in RAID 1 (mirroring) eliminerà l’hard disk rotto dai dispositivi RAID attivi, in modo tale da permettere alla macchina il normale svolgimento delle attività grazie al disco o ai dischi rimanenti.
Nel momento in cui un disco si rompe, prima di poterlo sostituire si devono rimuovere dai dispositivi RAID le partizioni contenute nel disco difettoso. Il comando da usare è il seguente:

sudo mdadm --remove <raid device> <partizione>

Ecco un paio di esempi:

sudo mdadm --remove /dev/md0 /dev/sda1
sudo mdadm --remove /dev/md1 /dev/sda2

Fatto questo, è possibile spegnere la macchina e sostituire l’hard disk rotto con uno nuovo.

Nota
Nel caso di utilizzo di dischi di tipo hot-swap è possibile togliere un hard disk difettoso e sostituirlo con dispositivo nuovo a “caldo”, cioè senza dover riavviare la macchina.

Effettuata la sostituzione e riavviato il computer, è quindi necessario creare una tabella delle partizioni sul nuovo disco che corrisponda a quella presente negli altri hard disk che compongono il RAID.
Un modo rapido per riversare la tabella da un disco attivo nel RAID (/dev/sda) al disco appena inserito (/dev/sdb) è quello utilizzare il comando seguente:

sudo sh -c “sfdisk -d /dev/sda | sfdisk --force /dev/sdb”

Ora non rimane che aggiungere ai dispositivi RAID le partizioni del nuovo disco con:

sudo mdadm --add <raid device> <partizione>

Quindi, se sui dischi vengono utilizzate le prime tre partizioni primarie, i comandi da lanciare per aggiungere /dev/sdb al RAID saranno i seguenti:

sudo mdadm --add /dev/md0 /dev/sdb1
sudo mdadm --add /dev/md1 /dev/sdb2
sudo mdadm --add /dev/md2 /dev/sdb3

A questo punto verrà avviata la sincronizzazione dei dati e il nuovo hard disk farà attivamente parte del RAID.
È anche possibile che compaiano errori su un disco senza che questo smetta del tutto di funzionare. Per segnalare al sistema il malfunzionamento di una partizione si utilizza l’opzione --fail di mdadm, così:

sudo mdadm --fail /dev/md0 /dev/sda1

Segnalata la partizione guasta, sarà poi possibile rimuoverla dal dispositivo RAID con mdadm --remove.

Aggiungere un dispositivo RAID

Per creare un nuovo dispositivo RAID si richiama mdadm con l’opzione -create. Ecco un esempio:

sudo mdadm --create /dev/md1 --level 1 --raid-devices=2 /dev/sdb2 missing

In questo riga viene creato il dispositivo RAID /dev/md1, che è di tipo RAID1 (--level 1) ed è composto da due dischi (--raid-devices=2). La prima partizione che lo compone è /dev/sdb2 mentre l’altra verrà indicata successivamente (missing).
Per aggiungere la seconda partizione del dispositivo /dev/md1 basta poi richiamare mdadm con l’opzione --add:

sudo mdadm --add /dev/md1 /dev/sdc2

La creazione di un filesystem sulle partizioni che compongono il device RAID avviene utilizzando come riferimento il file di dispositivo di questo:

sudo mkfs.ext3 /dev/md1

Lo stesso riferimento dovrà essere adottato per aggiungere in /etc/fstab una riga che consenta di montare al boot il dispositivo RAID creato.
Ecco una semplice riga di esempio:

/dev/md1 /home ext3 defaults 0 2

La procedura è simile nel caso si utilizzino LVM e RAID insieme. Infatti, per creare dei volumi fisici LVM sui device RAID è sufficiente lanciare il comando pvcreate seguito dai file di dispositivo RAID da usare:

sudo pvcreate /dev/md0 /dev/md1

Fatto questo, la configurazione dei relativi volumi logici LVM avverrà nei modi indicati nel paragrafo I volumi LVM di questo stesso articolo.

Conclusioni

In questo articolo su Linux Ubuntu Server abbiamo visto come gestire le partizioni, i dischi con partizioni virtuali e i volumi RAID.

Il libro

Linux Ubuntu per server e reti

Linux Ubuntu per server e reti

Quando si pensa al sistema operativo Linux in ambito server si pensa solitamente ad austeri centri di calcolo, ad ambienti di ricerca all’avanguardia e a enormi reti di computer. Un server Linux, però, può essere anche un comune PC e una rete di computer può essere costituita, perché no, da una manciata di macchine. Una rete di tal fatta può venire sfruttata per condividere una medesima stampante fra più PC o per creare un file server grazie al quale i membri di un team di lavoro possono scambiarsi documenti con estrema facilità. Singole macchine, poi, possono essere adibite al ruolo di web server e mail server oppure, ancora, possono venire impiegate per allestire dei media center. Questo libro spiega come costruire dalle fondamenta reti e server basati su Linux, utilizzando come guida la distribuzione Ubuntu Server: la scelta di un’unica distribuzione consente di fornire informazioni mirate su strumenti specifici e di guidare passo per passo il lettore anche nelle procedure più articolate, per quanto molte indicazioni di carattere metodologico fornite nel libro abbiano un valore generale.

 

Come acquistare il libro

Se desideri acquistare questo libro, puoi farlo direttamente online sul sito di FAG.

 

La recensione

Per conoscere e approfondire gli argomenti trattati in questo articolo è disponibile la recensione del libro da cui e tratto. Visita la pagina "Linux Ubuntu per server e reti".

 

L'autore

Alessandro Di Nicola collabora con riviste di informatica come Linux Pro e Linux Magazine, per la quale redige mese per mese l’articolo di copertina, ed è dottore in Lettere moderne.

Resta sempre aggiornato sulle novità del sito Resta sempre aggiornato sulle novità del sito
Per mantenerti sempre aggiornato su nuovi contenuti interessanti, Come fare a... vi offre la possibilità di abbonarvi gratuitamente alla Newsletter Come fare a..., all'RSS o, se usate Windows Live Messenger, di abbonarvi ai nostri Windows Live Alerts. Per gli utenti di Mac OS X è disponibile gratuitamente un Widget che vi terrà sempre informati sulle ultime novità. Vieni a trovarci anche su Facebook e su Twitter.
Scarica l'articolo (401 Kb)
Fine: 1 di 1
Condividi

Edizioni FAG Milano

Vedi anche...

Sempre aggiornato





Abbonati alla newsletter di Come fare a... Sottoscrivi l'RSS di Come fare a... Usi Windows Live Messenger? Abbonati ai nostri Windows Live Alerts Diventa fan di Come fare a... su Facebook Seguici su Twitter Scarica il Widget per Mac OS X