lpic/101/025_mount.md
2025-02-02 18:14:00 +01:00

4.1 KiB

Montare e smontare un filesystem

Il comando per montare manualmente un filesystem si chiama mount:

mount -t TYPE DEVICE MOUNTPOINT

Il mountpoint non deve essere vuoto, ma deve esistere. Qualsiasi file sará inaccessibile fino a che il filesystem sará montato.

Per smontare il filesystem: umount MOUNTPOINT o umount DEVICE

Elencari i filesystem

Se si digita mount si ottiene un elenco dei filesystem montati nel sistema. Il parametro -t permette di filtrare l'output per tipo di filesystem. É possibile specificare piú filesystem contemporaneamente separandoli con una virgola.

Alcuni parametri del comando mount:

  • -a: monta tutti i filesystem elencati in /etc/fstab
  • -o: passa un elenco di opzioni di montaggio separate da virgole
  • -ro: monta il filesystem in sola lettura
  • -rw: monta il filesystem in modalitá scrivibile

Alcuni parametri del comando umount:

  • -a: smonta tutti i filesystem elencati in /etc/fstab
  • -f: forza lo smontaggio
  • -r: rende il filesystem di sola lettura

File aperti

Se, quando si smonta un filesystem, si incontra il messaggio di errore che indica che la destinazione é occupata (target is busy), si puo' usare il comando lsof DEVICE, per vedere un elenco di processi e a quali file accedono.

Montare un filesystem all'avvio

Il file /etc/fstab contiene la lista dei filesystem che devono essere montati all'avvio del sistema. É costruito nel seguente modo:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/sda1           /           btrfs   defaults          0       0
UUID=2858f3c1-995f-46ca-8164-76836b7860d2 /media/user/ btrfs defaults  0 2

dove:

  • FILESYSTEM: il filesystem da montare. Al posto del dispositivo, é possibile specificare lo UUID (Universally Unique Identifier) o l'etichetta della partizione
    • UUID=
    • LABEL=
  • OPTIONS: le opzioni di montaggio, che saranno passate a mount
  • DUMP: indica se un filesystem debba essere considerato per il backup dal comando dump. Solitamente é zero
  • PASS: quando é diverso da zero, definisce l'ordine in cui i filesystem saranno controllati all'avvio

Le opzioni sono un elenco di parametri, separati da virgole:

  • atime e noatime: per impostazione predefinita, ogni volta che un file viene letto, le informazioni sul tempo di accesso vengono aggiornate. Disabilitare questa opzione aumenta le performance
  • auto e noauto: se il filesystem puo' o non puo' essere montato automaticamente con mount -a
  • defaults: passa a mount le opzioni rw,dev,suid,exec,auto,nouser,async
  • exec e noexec: consente o nega l'esecuzione di file binari sul filesystem
  • user e nouser: consente o meno a un utente normale di montare il filesystem
  • ro e rw
  • remount: tenterá di rimontare un filesystem giá montato. Non viene usato in /etc/fstab, da come parametro del comando mount -o.
  • sync e async: indica se eseguire le operazioni di I/O sul filesystem in modo sincrono o asincrono

Montare con Systemd

Bisogna creare un file di configurazione .mount, denominato mount unit, in /etc/systemd/system.

[Unit]
Description=Additional drive

[Mount]
What=/dev/disk/by-uuid/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Where=
Type=
Options=

[Install]
WantedBy=multi-user.target

Nello specifico:

  • What: cosa deve essere montato. Il volume deve essere specificato nella forma /dev/disk/by-uuid/UUID
  • WantedBy: usato per la gestione delle dipendenze

Per funzionare correttamente, l'unitá di montaggio deve avere lo stesso nome del punto di mount. Se, per esempio, il punto di mount fosse /mnt/external, l'unitá si chiamerá mnt-external.mount e mnt-external.automount

Auto-mount

Le unitá di montaggio possono essere montate in automatico ogni volta che si accede al punto di mount. Basta creare, accanto al file .mount, un file .automount:

Description=Automount Additional Drive

[Automount]
Where=

[Install]
WantedBy=multi-user.target

Ora ricaricare systemd e avviare l'unitá:

systemctl daemon-reload
systemctl enable --now mnt-external.automount