Introduzione
Esistono molti strumenti disponibili per gestire lo spazio di archiviazione in Linux. Tuttavia, solo una manciata di essi viene utilizzata per la manutenzione quotidiana e l’amministrazione. In questa guida, verranno esaminati alcuni degli strumenti più comunemente utilizzati per gestire i punti di mount, i dispositivi di archiviazione e i filesystem.
Altre Risorse
Questa guida non coprirà come preparare i dispositivi di archiviazione per il loro utilizzo iniziale su un sistema Linux. La guida su partizionamento e formattazione dei dispositivi a blocchi in Linux ti aiuterà a preparare il tuo dispositivo di archiviazione grezzo se non hai ancora configurato il tuo spazio di archiviazione.
Per ulteriori informazioni su alcune delle terminologie utilizzate per discutere di archiviazione, prova a leggere questo articolo su terminologia di archiviazione.
Ricerca di Capacità e Utilizzo di Archiviazione con df
Spesso, le informazioni più importanti di cui avrai bisogno riguardo allo storage sul tuo sistema sono la capacità e l’utilizzo attuale dei dispositivi di archiviazione connessi.
Per controllare quanto spazio di archiviazione è disponibile in totale e vedere l’utilizzo attuale dei tuoi drive, utilizza l’utilità df. Per impostazione predefinita, questa restituisce le misurazioni in blocchi da 1K, il che non è sempre utile. Aggiungi il flag -h
per l’output in unità leggibili dall’utente:
- df -h
OutputFilesystem Size Used Avail Use% Mounted on
udev 238M 0 238M 0% /dev
tmpfs 49M 624K 49M 2% /run
/dev/vda1 20G 1.1G 18G 6% /
tmpfs 245M 0 245M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 245M 0 245M 0% /sys/fs/cgroup
tmpfs 49M 0 49M 0% /run/user/1000
/dev/sda1 99G 60M 94G 1% /mnt/data
La partizione /dev/vda1
, montata su /
, è piena al 6% e ha 18G di spazio disponibile, mentre la partizione /dev/sda1
, montata su /mnt/data
, è vuota e ha 94G di spazio disponibile. Le altre voci utilizzano filesystem tmpfs
o devtmpfs
, che sono memoria volatile utilizzata come se fosse storage permanente. Puoi escludere queste voci digitando:
- df -h -x tmpfs -x devtmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 1.1G 18G 6% /
/dev/sda1 99G 60M 94G 1% /mnt/data
Questo output offre una visualizzazione più concentrata dell’utilizzo attuale del disco rimuovendo alcuni pseudodispositivi e dispositivi speciali.
Trovare Informazioni sui Dispositivi a Blocchi con lsblk
A block device is a generic term for a storage device that reads or writes in blocks of a specific size. This term applies to almost every type of non-volatile storage, including hard disk drives (HDDs), solid state drives (SSDs), and so on. The block device is the physical device where the filesystem is written. The filesystem, in turn, dictates how data and files are stored.
L’utilità lsblk può essere utilizzata per visualizzare informazioni sui dispositivi di blocco. Le capacità specifiche dell’utilità dipendono dalla versione installata, ma in generale il comando lsblk
può essere utilizzato per visualizzare informazioni sull’unità stessa, nonché sulle informazioni di partizionamento e sul filesystem che vi è stato scritto.
Senza argomenti, lsblk
mostrerà i nomi dei dispositivi, i numeri di maggiore e minore associati a un dispositivo (utilizzati dal kernel Linux per tenere traccia di driver e dispositivi), se l’unità è rimovibile, la sua dimensione, se è montata in sola lettura, il suo tipo (disco o partizione) e il suo punto di montaggio. Alcuni sistemi richiedono sudo
affinché ciò venga visualizzato correttamente:
- sudo lsblk
OutputNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
vda 253:0 0 20G 0 disk
└─vda1 253:1 0 20G 0 part /
Dell’output visualizzato, le parti più importanti saranno di solito il nome, che si riferisce al nome del dispositivo sotto /dev
, la dimensione, il tipo e il punto di mount. Qui, puoi vedere che hai un disco (/dev/vda
) con una singola partizione (/dev/vda1
) utilizzata come partizione /
e un altro disco (/dev/sda
) che non è stato partizionato.
Per ottenere informazioni più pertinenti alla gestione del disco e delle partizioni, puoi passare il flag --fs
su alcune versioni:
- sudo lsblk --fs
OutputNAME FSTYPE LABEL UUID MOUNTPOINT
sda
vda
└─vda1 ext4 DOROOT c154916c-06ea-4268-819d-c0e36750c1cd /
Se il flag --fs
non è disponibile sul tuo sistema, puoi replicare manualmente l’output utilizzando il flag -o
per richiedere un output specifico. Puoi utilizzare -o NAME,FSTYPE,LABEL,UUID,MOUNTPOINT
per ottenere le stesse informazioni.
Per ottenere informazioni sulla topologia del disco, digita:
- sudo lsblk -t
OutputNAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME
sda 0 512 0 512 512 1 deadline 128 128 2G
vda 0 512 0 512 512 1 128 128 0B
└─vda1 0 512 0 512 512 1 128 128 0B
Ci sono molti altri scorciatoie disponibili per visualizzare le caratteristiche correlate riguardanti i tuoi dischi e partizioni. Puoi visualizzare tutte le colonne disponibili con il flag -O
o puoi personalizzare i campi da visualizzare specificando i nomi delle colonne con il flag -o
. Il flag -h
può essere usato per elencare le colonne disponibili:
- lsblk -h
Output. . .
Available columns (for --output):
NAME device name
KNAME internal kernel device name
. . .
SUBSYSTEMS de-duplicated chain of subsystems
REV device revision
VENDOR device vendor
For more details see lsblk(8).
Lavorare con i Montaggi del Filesystem
Prima di poter utilizzare un nuovo disco, tipicamente devi partizionarlo, formattarlo con un filesystem e quindi montare il disco o le partizioni. Partizionare e formattare sono di solito procedure one-time. Puoi trovare ulteriori informazioni su come partizionare e formattare un disco con Linux in Come Partizionare e Formattare Dispositivi di Archiviazione in Linux.
Montare è qualcosa che potresti fare più frequentemente. Montare il filesystem lo rende disponibile al server nel punto di montaggio selezionato. Un punto di montaggio è una directory sotto la quale il nuovo filesystem può essere accessibile.
Due comandi complementari vengono principalmente utilizzati per gestire il montaggio: mount
e umount
. Il comando mount
viene utilizzato per collegare un filesystem all’albero dei file corrente. In un sistema Linux, viene utilizzata una singola gerarchia unificata dei file per l’intero sistema, indipendentemente da quante dispositivi fisici lo compongano. Il comando umount
(Nota: questo è umount
, non unmount
) viene utilizzato per smontare un filesystem. Inoltre, il comando findmnt
è utile per raccogliere informazioni sullo stato attuale dei filesystem montati.
Utilizzo del comando mount
Il modo più diretto di utilizzare mount
è passare un dispositivo o una partizione formattati e il punto di montaggio in cui devono essere collegati:
- sudo mount /dev/sda1 /mnt
Il punto di montaggio, il parametro finale che specifica dove nell’albero dei file il nuovo filesystem dovrebbe essere collegato, dovrebbe quasi sempre essere una directory vuota.
Di solito, si desidera selezionare opzioni più specifiche durante il montaggio. Anche se mount
può cercare di indovinare il tipo di filesystem, è quasi sempre meglio passare il tipo di filesystem con l’opzione -t
. Per un filesystem Ext4, questo sarebbe:
- sudo mount -t ext4 /dev/sda1 /mnt
Ci sono molte altre opzioni che influenzeranno il modo in cui il filesystem viene montato. Ci sono opzioni di montaggio generiche, che possono essere trovate nella sezione OPZIONI DI MONTAGGIO INDIPENDENTI DAL FILESYSTEM del manuale di mount.
Passare altre opzioni con il flag -o
. Ad esempio, per montare una partizione con le opzioni predefinite (che corrispondono a rw,suid,dev,exec,auto,nouser,async
), è possibile passare -o defaults
. Se è necessario sovrascrivere i permessi di lettura-scrittura e montare come sola lettura, è possibile aggiungere ro
come opzione successiva, che sovrascriverà il rw
dall’opzione defaults
:
- sudo mount -t ext4 -o defaults,ro /dev/sda1 /mnt
Per montare tutti i filesystems delineati nel file /etc/fstab
, è possibile passare l’opzione -a
:
- sudo mount -a
Elenco delle Opzioni di Montaggio del Filesystem
Per visualizzare le opzioni di montaggio utilizzate per un determinato mount, utilizzare il comando findmnt
. Ad esempio, se si è visualizzato il mount in sola lettura dall’esempio sopra con findmnt
, assomiglierebbe a qualcosa del genere:
- findmnt /mnt
OutputTARGET SOURCE FSTYPE OPTIONS
/mnt /dev/sda1 ext4 ro,relatime,data=ordered
Questo può essere utile se si è sperimentato con molteplici opzioni e alla fine si è scoperto un insieme che si preferisce. È possibile trovare le opzioni che sta utilizzando con findmnt
in modo da sapere cosa è opportuno aggiungere al file /etc/fstab
per i montaggi futuri.
Smontaggio di un Filesystem
Il comando umount
viene utilizzato per smontare un filesystem specifico. Di nuovo, si tratta di umount
e non di unmount
.
La forma generale del comando è quella di specificare il punto di montaggio o il dispositivo di un filesystem attualmente montato. Assicurati di non utilizzare file nel punto di montaggio e che non ci siano applicazioni (incluse la tua shell corrente) in esecuzione all’interno del punto di montaggio:
- cd ~
- sudo umount /mnt
Di solito non ci sono opzioni da aggiungere al comportamento di smontaggio predefinito.
Conclusione
Pur non essendo esaustiva, questa lista dovrebbe coprire la maggior parte delle tue esigenze per le attività quotidiane di amministrazione di sistema. Imparando alcuni strumenti, puoi gestire i dispositivi di archiviazione sul tuo server.