UMOUNT(2) | Manuale del programmatore di Linux | UMOUNT(2) |
umount, umount2 - smonta i filesystem
#include <sys/mount.h>
int umount(const char *target);
int umount2(const char *target, int opzioni);
umount() e umount2() rimuovono il filesystem (più alto) montato su target.
Sono necessari privilegi appropriati (Linux: capacità CAP_SYS_ADMIN per smontare i filesystem.
A partire da Linux 2.1.116 è stata aggiunta la chiamata di sistema umount2() che, come umount(), smonta un target, ma permette opzioni aggiuntive che controllano il comportamento dell'operazione:
In caso di successo restituisce zero. In caso di errore restituisce -1, e errno verrà impostato di conseguenza.
I valori di errore indicati di seguito sono causati da errori indipendenti dal tipo di filesystem. Ciascun tipo di filesystem può avere i propri errori speciali e il suo comportamento speciale. Vedere il codice sorgente del kernel per dettagli.
MNT_DETACH e MNT_EXPIRE sono disponibili in glibc sin dalla versione 2.11.
Queste funzioni sono specifiche di Linux e non devono essere usate in programmi pensati per essere portabili.
Punti di mount condivisi fanno sì che qualsiasi attività di montaggio su un punto di mount, comprese le operazioni di umount(), siano propagate a ogni punto di mount condiviso nel "peer group" e a ogni "slave mount" di quel "peer group". Questo significa che l'azione di umount() di qualsiasi "peer" in una serie di "shared mount" provocherà lo smontaggio di tutti suoi "peer" e anche di tutti i loro "slave".
Questa propagazione dell'attivita di smontaggio può riservare sorprese specialmente nei sistemi dove ogni punto di mount è condiviso (shared) in modo predefinito. Su tali sistemi, montare ricorsivamente con un montaggio di tipo "bind" la directory radice del filesystem in una sottodirectory e poi smontare quella sottodirectory con MNT_DETACH provoca lo smontaggio "lazy" di ogni montaggio nello spazio dei nomi di mount.
Per essere sicuri che umount() non si propaghi in questo modo, il punto di mount può essere rimontato usando una chiamata mount(2) con un argomento mount_flags che includa sia MS_REC sia MS_PRIVATE prima che umount() venga chiamato.
La funzione originale umount() era chiamata come umount(device) e restituiva ENOTBLK quando non veniva chiamata da un dispositivo a blocchi. In Linux 0.98p4 fu aggiunta una chiamata umount(dir), per poter supportare dispositivi anonimi. In Linux 2.3.99-pre7 la chiamata umount(device) fu rimossa, lasciando solo umount(dir) (poiché ora i dispositivi possono essere montati in più di un posto, così specificare il dispositivo non è sufficiente).
mount(2), mount_namespaces(7), path_resolution(7), mount(8), umount(8)
Questa pagina fa parte del rilascio 5.10 del progetto Linux man-pages. Una descrizione del progetto, le istruzioni per la segnalazione degli errori, e l'ultima versione di questa pagina si trovano su https://www.kernel.org/doc/man-pages/.
La traduzione italiana di questa pagina di manuale è stata creata da Elisabetta Galli <lab@kkk.it> e Marco Curreli <marcocurreli@tiscali.it>
Questa traduzione è documentazione libera; leggere la GNU General Public License Versione 3 o successiva per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.
Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a pluto-ildp@lists.pluto.it.
9 giugno 2020 | Linux |