Conosciamo ed impariamo a gestire il montaggio dei file system attraverso mount

Primi passi con mount per imparare a montare e gestire coorettamente volumi e dischi
By Admin | Gennaio 28, 2024

In questo articolo affronteremo il tema del montaggio dei File System (di seguito FS), sia locali che remoti, con un occhio di riguardo alla sicurezza. Il montaggio di uno o più FS è alla base del funzionamento di ogni sistema che ha la necessità di avere “in disponibilità” risorse quali cartelle e files, storati in loco o da qualche parte accessibile tramite rete.

In un sistema LINUX il comando chiave per questo task è mount. Il comando mount ed il suo corrispettivo umount ci permette di montare e smontare FS in una determinata “posizione”, corrispondente quindi ad un certo Path, in cui reperire files e cartelle di nostro interesse. Si pensi al classico inserimento di una memory stick USB nel nostro PC, utilizzando l’interfaccia grafica del sistema operativo il tutto viene “automatizzato e facilitato” tramite l’apertura di una cartella con i files in questione, in realtà questa operazione avviene per step impliciti tramite il montaggio di un FS di un certo tipo (ad esempio ext2/3/4 su un sistema LINUX o FAT/ntfs su un sistema Windows) in un certo punto di montaggio (path o posizione della risorsa).

Tornando al nostro sistema LINUX in un terminale possiamo dare il comando:

$ mount

Per visualizzare tutti i FS montati, le partizioni del nostro disco, i programmi installati tramite, ad esempio, snap e così via. Volendo selezionare FS che ci interessano, per esempio quelli in ext4, possiamo aggiungere al comando l’opzione:

$ mount -t ext4

Ad esempio supponiamo di ottenere per un sistema LINUX il seguente output (solo prima riga):

/dev/xxxxxxxxx on / type ext4 (rw,relatime,errors=remount-ro)
…
…

Che ci fornisce importanti informazioni, in sequenza la partizione specifica (/dev/xxxxxxxx), il punto di mount (/), il tipo di file system (ext4) ed alcune opzioni con cui la partizione è stata montata (ad esempio rw per lettura/scrittura, ecc).

Supponiamo adesso di voler montare una partizione del nostro sistema, ad esempio sdb1 in un punto specifico della cartella media, ad esempio mydir, procederemo col comando:

$ mount /dev/sdb1 /mnt/mydir

Il comando può essere arricchito con diverse opzioni di montaggio specifiche per il nostro caso, ad esempio se volessimo montare il FS in lettura/scrittura:

$ mount -o rw /dev/sdb1 /mnt/mydir

tutte le opzioni di montaggio possono essere specificate tramite -o separate da virgola, le opzioni base di default nel montaggio sono rw, suid, dev, exec, auto, nouser, async e relatime. Non specificare alcuna opzione con -o determina comunque il montaggio tramite queste opzioni generali. Per i dettagli di ogni singola opzione si rimanda al manuale di mount disponibile qui.

Supponendo quindi di voler montare un FS contenete dati particolarmente importanti, onde evitare il rischio di apportare modifiche, possiamo montare lo stesso con l’opzione read only:

$ mount -o ro /dev/sdb1 /mnt/mydir

Nel path /mnt/mydir avremo disponibili le nostre cartelle ed i nostri files in modalità sola-lettura.

Il montaggio manuale di un FS è ovviamente utile in contesti occasionali ma diventerebbe a breve un’operazione noiosa e ripetitiva nonché soggetta ad errori. Immaginando di avere l’esigenza di montare un certo FS con costanza, per esempio all’accensione del nostro sistema, ci conviene automatizzare il tutto operando sul file fstab localizzato nella cartella /etc.

Questo file contiene le istruzioni di montaggio dei vari FS, la sua sintassi è la seguente:

Per aggiungere il nostro FS dovremmo creare una nuova riga editando il file, prima di fare ciò dobbiamo recuperare l’UUID del nostro /dev/sdb1 attraverso il comando:

$ lsblk -f

Di solito è un codice alfanumerico del tipo:

abababab-1c1c-2d2d-3e3e-fg12fg12fg12

Dovremmo quindi editare da root il file /etc/fstab come segue per montare il nostro volume come illustrato in precedenza:

abababab-1c1c-2d2d-3e3e-fg12fg12fg12 /mnt/mydir ext4 defaults 0 2

Tutti i campi sono autoesplicativi tranne gli ultimi due, cioè i numeri che indicano “dump” e “pass”, riguardanti due parametri tecnici, il loro significato può essere approfondito sul manuale di fstab tramite il comando:

$ man fstab

Per un FS che risiede sul nostro sistema possiamo conservare le opzioni 0 e 2 con relativa tranquillità, in caso di esigenze specifiche dovremmo modificarli opportunamente. In Figura 1 un esempio del tipico file fstab su un sistema LINUX.


Figura 1

Vediamo adesso brevemente 3 esempi specifici per il montaggio di FS peculiari, nel nostro caso un CDROM, una immagine disco in formato iso e un FS remoto, ad esempio uno spazio fornito da un NAS in rete dotato di IP oppure di un analogo sistema cloud.

Per il montaggio manuale di un CDROM (nel caso in cui non sia stato fatto in automatico dal nostro sistema operativo) possiamo procedere con l’istruzione:

$ mount -t iso9660 -o ro /dev/cdrom /mnt/mycdrom

Dove iso9660 è il FS standard dei dischi monatto in questo caso in sola lettura (ro), in sostanza il classico cdrom tradizionale.

Per il montaggio di un file immagine .iso potremmo procedere con l’istruzione:

$ mount -o loop /path/to/image.iso /media/myiso

In questo caso è fondamentale usare l’opzione loop per i file immagine.

In ultima analisi supponiamo di dover montare un FS fornito da un NAS che si trova su una rete (pubblica o privata), per l’occasione trattasi di NFS o network file system. Per montare un FS di questo tipo necessitiamo innanzitutto dell’installazione dei relativi pacchetti, ad esempio di tipo DEB o RPM:

$ sudo apt install nfs-common
$ sudo yum install nfs-utils

Creiamo successivamente la cartella in cui vogliamo rendere disponibili in locale i nostri files remoti:

$ sudo mkdir /media/nfs

Procedendo al mount supponendo che l’IP del nostro NAS sia 99.100.99.100:

$ mount -t nfs 99.100.99.100:/nas/mybackup /media/nfs

La stessa operazione come detto in precedenza può essere automatizzata tramite configurazione del montaggio nel file /etc/fstab a cui possiamo aggiungere la seguente riga:

99.100.99.100:/nas/mybackup /media/nfs nfs defaults 0 0

Prima di avviarci alla conclusione di questo articolo è doverosa una precisazione sul montaggio di FS remoti, in particolare tramite NFS considerato non sicuro per via dell’assenza di cifratura nativa che determina il transito dei dati in rete in chiaro. A meno che non si usi specificamente la versione NFS v4 con cifratura è preferibile orientarsi verso soluzioni molto più sicure come SSHFS che offrono prestazione paragonabili in termini di velocità.

Inoltre, SSHFS e Samba costituiscono le migliori opzioni per l’interoperabilità dati tra sistemi Windows e LINUX. Per una comparazione tra le performance dei FS montati secondo le diverse specifiche si guardi qui.

In conclusione due parole sullo smontaggio dei FS una volta non più funzionali alle nostre attività, per lo scopo ci viene in accordo il comando umount con l'indicazione del volume da smontare, nel nostro caso:

$ umount /dev/sdb1

Nel caso in cui il FS sia ancora in uso e si voglia smontarlo appena possibile ci viene in aiuto l’opzione -lazy per smontare il FS appena siano terminate le operazioni pendenti di lettura/scrittura:

$ umount -lazy /dev/sdb1

Viceversa, in caso in cui sia necessario forzare lo smontaggio di un FS, per esempio in caso di blocco o di FS non rispondente, si può ricorrere al comando:

$ umount -f /dev/sdb1

Ricordando sempre la possibilità di incorrere in problematiche e nei casi più gravi anche nella perdita dei dati e/o nella corruzione del FS.

Qualsivoglia richiesta può essere inviata a NAOSDATA che offre servizi di consulenza, implementazione e managment specifico sulle infrastrutture ICT.

Ci auguriamo che questo articolo vi sia piaciuto e vi possa essere d'aiuto nell'utilizzo di mount. Se apprezzate il nostro lavoro seguite i nostri profili su Facebook e LinkedIn.

Creative Commons License
Questo lavoro è offerto tramite licenza Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.


Risorse e Link: