Guida ai comandi da terminale - Gestione del File System

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Guida ai comandi da terminale

Sommario

  1. Gestione utenti e gruppi
  2. Gestione di repository e pacchetti
  3. Operazioni con programmi non presenti nei repository
  4. Gestione di file e directory
  5. Compiere operazioni con sudo
  6. Gestione del sistema
  7. Gestione del File System
  8. Gestione dell'hardware
  9. Varie e approfondimenti

Se non si ha chiaro cosa sia un file system si veda prima questa pagina introduttiva.

Lista dei File System montati

Se si avesse l’esigenza di conoscere i File System montati nel sistema, utile per sapere come sono allocati in /dev, che tipo di permessi di lettura e scrittura si hanno in essi, e così via, si può semplicemente lanciare da qualunque utente il comando:

mount

Per ottenere in output la lista che cerchiamo. Oppure, per una rappresentazione ad albero dei punti di montaggio:

findmnt

Il file che dice a Linux quali dispositivi vanno montati all'avvio del sistema e dove vanno montati è /etc/fstab.

Monitoraggio di RAID Software

Per monitorare lo stato delle partizioni RAID create con lo strumento mdadm di Debian:

#  cat /proc/mdstat

Monitoraggio dei dischi LVM

Per vedere lo stato di partizioni LVM e conoscere quali dischi fisici ne fanno parte:

# lvs --segments -o +pe_ranges

(richiede il pacchetto lvm2)

Connessione di nuove risorse

Info.png Nota
Dischi ottici, dischi rigidi, memorie usb e partizioni remote sono tutti esempi di risorse, ovvero di filesystem esterni che un utente può agganciare a quello locale della macchina in uso.

L'operazione di montaggio (in inglese mount) di una risorsa permette di "agganciare" un dispositivo tra quelli elencati in /dev a una directory del file system, per renderlo utilizzabile all'interno del sistema.
Collegato ad esempio un nuovo disco fisso al PC ed ipotizzato che questo sia identificato da Linux come /dev/hdd1 è possibile renderlo raggiungibile sotto una certa directory arbitraria, per esempio /mnt, tramite la seguente procedura:

  1. creare all'interno di /mnt una directory a cui "agganciare" il disco:
    # mkdir /mnt/disco_dati
  2. eseguire il mount del disco:
    # mount -t auto /dev/hdd1 /mnt/disco_dati

L'opzione -t auto dice a Linux di riconoscere automaticamente il filesystem con cui il nostro disco è stato formattato.
Da questo momento i dati contenuti nel nostro hard disk saranno raggiungibili andando nella directory /mnt/disco_dati.
Il principale pregio di mount risiede nell'elevato numero di filesystem supportati, nativamente o ottraverso appositi pacchetti che ne estendono le capacità. Esistono quattro tipi di sintassi generica (si veda il manuale), qui di seguito si descrive solo l'ultima:

# mount [-fnrsvw] -t tipo_fs -o fsopzione1,fsopzione2,ecc. /origine/risorsa /punto/montaggio
  • [-fnrsvw], sono opzioni specifiche e facoltative dell'eseguibile mount, si veda il manuale per il significato di ciascuna lettera.
  • -t, specifica il tipo di filesystem che verrà montato, ad esempio auto,ext3,fat, ecc. Come già scritto auto incarica mount di capire autonomamente che filesystem si andrà a montare.
  • -o, specifica una o più opzioni relative al filesystem. Esistono sia opzioni valide per tutti i filesystem, altre specifiche dei singoli filesystem e infine altre utili solo se dichiarate nel file /etc/fstab
  • /origine/risorsa, indica semplicemente dove andare a prendere il filesystem della risorsa, per esempio /dev/sdc nel caso del disco rigido o chiavetta usb identificata dalla lettera "c".
  • /punto/montaggio, in quale directory (che deve già esistere) sarà visibile il contenuto della risorsa montata.

Di seguito alcuni esempi specifici.

Montaggio di una pendrive USB

Se dovesse capitare di dover montare un dispositivo USB senza poter usufruire del montaggio automatico fornito da molti Desktop Environment, è possibile farlo facilmente da terminale.

  1. Innanzitutto bisogna verificare a quale device è associato il dispositivo. Eseguire, prima di inserire la pendrive, il comando:
    $ lsblk
  2. Inserire la pendrive e rieseguire lo stesso comando; la differenza tra i due output fornirà il device.
  3. A questo punto si può montare la pendrive creando prima un punto di mount:
    # mkdir /mnt/lamiapendrive
    per poi passare al montaggio vero e proprio:
    # mount -t auto /dev/sdb1 /mnt/miapendrive
    In questo esempio si è supposto che la pendrive sia associata al device sdb e che sdb1 sia la partizione da montare.

Ora è possibile utilizzare la directory /mnt/miapendrive per tutte le operazioni che dobbiamo svolgere. Ad esempio si possono visualizzare i file contenuti sulla pendrive:

$ ls -l /mnt/miapendrive

Copiare file sulla pendrive:

$ cp /etc/network/interfaces /mnt/miapendrive

Cancellare file dalla pendrive:

$ rm /mnt/miapendrive/filedacancellare.txt

Alla fine, per smontare il dispositivo:

# umount /mnt/miapendrive

Montaggio di un immagine ISO

Il comando mount viene molto utile quando abbiamo un'immagine ISO di un CD-Rom e vogliamo vederne il contenuto senza masterizzarla:

# mount -t iso9660 -o loop /cartella/immagine.iso /cartella/di/montaggio

È possibile montare immagini anche senza privilegi di amministrazione (dopo aver installato il pacchetto fuseiso):

$ fuseiso /cartella/immagine.iso /cartella/di/montaggio

Montaggio di una partizione NTFS

Per montare una partizione formattata NTFS occorre che sia installato il pacchetto:

# apt install ntfs-3g

Quindi si proceda come visto in precedenza:

# mkdir /mnt/disco_ntfs
# mount -t ntfs-3g /dev/sdb1 /mnt/disco_ntfs

E' possibile eseguire automaticamente all'avvio di Debian il montaggio di una partizione NTFS aggiungendo al file /etc/fstab la seguente riga:

/dev/sdb1 /mnt/disco_ntfs ntfs-3g rw,users,suid,umask=000 0 0

Montaggio di una partizione NFS

Si veda questa pagina .

Montaggio di una cartella SAMBA

Il montaggio di una condivisione Windows di rete può essere eseguito con il comando:

# mount -t cifs -o username=Nome_utente,password=Password_utente,gid=1000,uid=1000,sec=ntlm //Indirizzo.IP.del.Server/Nome_condivisione /media/punto_di_mount

Per approfondimenti si veda questa pagina .

Disconnessione di una risorsa già presente

Se volessimo al contrario "sganciare" un disco dal nostro sistema, ci servirà il comando:

# umount /cartella/da/smontare/

Ad esempio:

# umount /mnt/disco_dati

Da questo momento il nostro disco non sarà più raggiungibile.

Warning.png ATTENZIONE
State attenti a non eseguire lo smontaggio di dischi di sistema o potreste rendere inutilizzabile il vostro PC


Sincronizzare la cache dei filesystem

A volte, soprattutto su condivisioni Samba, può capitare che le modifiche in scrittura al filesystem restino in cache; se si stanno trasferendo file pesanti è possibile che la cache saturi la memoria RAM del PC, degradandone le prestazioni o portandolo a un blocco.
Per forzare la scrittura su disco dei dati in cache, liberando quindi la memoria, si può utilizzare il comando:

# sync; echo 3 > /proc/sys/vm/drop_caches

Conoscere la dimensione della directory corrente

Il seguente comando permette di conoscere la dimensione (in MB, GB o TB) della directory corrente comprese tutte le sottoridectory:

$ du -sh

Cercare le directory che occupano più spazio

Il seguente comando permette di ricercare le directory di dimensioni più grosse all'interno del nostro filesystem. Il comando ricerca le sottodirectory a partire dalla directory corrente.

$ du -sk */ | sort -rn