mount e systemd mount
This commit is contained in:
parent
69385f6cfb
commit
b429c7d8a1
107
101/025_mount.md
Normal file
107
101/025_mount.md
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
## Montare e smontare un filesystem
|
||||||
|
|
||||||
|
Il comando per montare manualmente un filesystem si chiama `mount`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# <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`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[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`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
Description=Automount Additional Drive
|
||||||
|
|
||||||
|
[Automount]
|
||||||
|
Where=
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
```
|
||||||
|
|
||||||
|
Ora ricaricare systemd e avviare l'unitá:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable --now mnt-external.automount
|
||||||
|
```
|
Loading…
x
Reference in New Issue
Block a user