Articles

Come montare e smontare un filesystem/partizione in Linux (Esempi di comandi Mount/Umount)

Una volta inseriti nuovi dischi rigidi nel sistema, in genere si usano utility come fdisk o parted per creare partizioni. Una volta creata una partizione, userete il comando mkfs per creare una partizione ext2, ext3 o ext4.

Una volta creata una partizione, dovreste usare il comando mount per montare la partizione in un punto di mount (una directory), per iniziare ad usare il filesystem.

Questo tutorial spiega tutto quello che c’è da sapere su entrambi i comandi mount e umount con 15 esempi pratici.
La sintassi generale del comando mount per montare un dispositivo:

mount -t type device destination_dir

Monta un CD-ROM

Il file di dispositivo per il CD esisterebbe nella directory /dev. Per esempio, un dispositivo CD-ROM sarà montato come mostrato di seguito.

# mount -t iso9660 -o ro /dev/cdrom /mnt

Nell’esempio precedente, l’opzione “-o ro” indica che il cdrom dovrebbe essere montato con accesso in sola lettura. Inoltre, assicuratevi che la directory di destinazione (nell’esempio precedente, /mnt) esista prima di eseguire il comando mount.

Visualizza tutti i montaggi

Dopo aver eseguito il montaggio di una partizione o di un filesystem, eseguite il comando mount senza alcun argomento per visualizzare tutti i montaggi.

Nell’esempio seguente, dopo aver montato il drive USB su un sistema, l’output di mount appare come segue. Come visto sotto, il dispositivo USB (cioè:/dev/sdb) è montato su /media/myusb, che viene visualizzato come ultima linea nel comando mount.

# mount/dev/sda5 on / type ext4 (rw,errors=remount-ro)proc on /proc type proc (rw,noexec,nosuid,nodev)sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)none on /sys/fs/fuse/connections type fusectl (rw)none on /sys/kernel/debug type debugfs (rw)none on /sys/kernel/security type securityfs (rw)udev on /dev type devtmpfs (rw,mode=0755)devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)none on /run/shm type tmpfs (rw,nosuid,nodev)/dev/sda6 on /mydata type ext2 (rw)/dev/sda7 on /backup type vfat (rw)gvfs-fuse-daemon on /home/bala/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=bala)/dev/sdb on /media/myusb type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)

Si può anche usare il comando df per visualizzare tutti i punti di montaggio.

# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda5 195069136 128345036 56958520 70% /udev 2008336 4 2008332 1% /devtmpfs 806244 928 805316 1% /runnone 5120 0 5120 0% /run/locknone 2015604 228 2015376 1% /run/shm/dev/sda6 17729076 176200 16657596 2% /mydata/dev/sda7 11707200 573312 11133888 5% /backup/dev/sdb 3910656 2807160 1103496 72% /media/myusb

Monta tutti i filesystem menzionati in /etc/fstab

I filesystem elencati in /etc/fstab vengono montati durante il processo di avvio. Dopo l’avvio, l’amministratore di sistema può smontare alcune delle partizioni per varie ragioni. Se vuoi che tutti i filesystem siano montati come specificato in /etc/fstab, usa l’opzione -a con mount come mostrato sotto:

Esempio di voci del file /etc/fstab:

# cat /etc/fstab#proc /proc proc nodev,noexec,nosuid 0 0# / was on /dev/sda5 during installation/dev/sda5 / ext4 errors=remount-ro 0 1# /mydata was on /dev/sda6 during installation/dev/sda6 /mydata ext2 defaults 0 2# /backup was on /dev/sda7 during installation/dev/sda7 /backup vfat defaults 0 3

Esegui il comando mount con l’opzione -a per montare tutte le voci di /etc/fstab.

# mount -a# mount/dev/sda5 on / type ext4 (rw,errors=remount-ro)proc on /proc type proc (rw,noexec,nosuid,nodev)sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)none on /sys/fs/fuse/connections type fusectl (rw)none on /sys/kernel/debug type debugfs (rw)none on /sys/kernel/security type securityfs (rw)udev on /dev type devtmpfs (rw,mode=0755)devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)none on /run/shm type tmpfs (rw,nosuid,nodev)/dev/sda6 on /mydata type ext2 (rw)/dev/sda7 on /backup type vfat (rw)gvfs-fuse-daemon on /home/bala/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=bala)

La stessa opzione -a può essere usata con umount per smontare tutti i filesystem menzionati in /etc/mtab

# umount -aumount: /run/shm: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))umount: /run: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))umount: /dev: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))umount: /: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))

Alcuni filesystem non vengono smontati perché sono occupati o attualmente in uso. Si noti che i contenuti dei file /etc/mtab e /proc/mounts sarebbero simili.

Monta solo uno specifico filesystem da /etc/fstab

Quando si passa solo il nome della directory da montare, esso cerca le voci del punto di montaggio, se non viene trovato, allora cerca continuamente un dispositivo in /etc/fstab e viene montato.

# mount | grep /mydata# cat /etc/fstab | grep mydata##########/mydata was on /dev/sda6 during installation########## /dev/sda6 /mydata ext2 defaults 0 2

Come visto sopra, la directory /mydata non è un punto di montaggio, ma è presente in /etc/fstab.

# mount /mydata# mount | grep /mydata/dev/sda6 on /mydata type ext2 (rw)

Se si esegue di nuovo lo stesso, si otterrebbe il seguente messaggio di errore:

# mount /mydatamount: /dev/sda6 already mounted or /mydata busymount: according to mtab, /dev/sda6 is already mounted on /mydata

Qui si può anche passare il nome del dispositivo invece del nome della directory (da prendere dal file /etc/fstab).

# mount /dev/sda6

Nota che i contenuti dei file /etc/mtab e /proc/mounts sarebbero simili.

Visualizza tutte le partizioni montate di tipo specifico

È possibile elencare solo il tipo specifico di filesystem montato usando l’opzione -l con -t come mostrato di seguito:

# mount -l -t ext2/dev/sda6 on /mydata type ext2 (rw)# mount -l -t ext4/dev/sda5 on / type ext4 (rw,errors=remount-ro)

Come visto sopra, /dev/sda6 è l’unica partizione ext2 e /dev/sda5 è l’unica partizione ext4.

Montare un floppy disk

Il file di dispositivo per il floppy disk esisterebbe sotto la directory /dev. Per esempio, un dischetto sarà montato come mostrato qui sotto.

# mount /dev/fd0 /mnt# cd /mnt

Dopo il montaggio riuscito, sarete in grado di accedere al contenuto del dischetto. Una volta che avete finito, usate umount prima di rimuovere fisicamente il dischetto dal sistema.

# umount /mnt

Bind mount points to a new directory

Il mountpoint può essere legato a una nuova directory. Così sarete in grado di accedere al contenuto di un filesystem attraverso più di un punto di montaggio allo stesso tempo.

Utilizzate l’opzione -B con olddir e newdir da associare come segue,

# mount -B /mydata /mnt

Ora il bind è fatto e potete verificarlo come segue,

# mount | grep /mydata/dev/sda6 on /mydata type ext2 (rw)/mydata on /mnt type none (rw,bind)

Come visto sopra il bind è fatto correttamente. Quindi, quando si effettuano modifiche al filesystem in un posto, si può vedere il riflesso in un altro punto di montaggio come mostrato di seguito:

# cd /mydata# lstest# mkdir dir1# mkdir dir2# lstest dir1 dir2# cd /mnt# lstest dir1 dir2

Accesso ai contenuti da un nuovo punto di montaggio

Mount permette di accedere ai contenuti di un punto di montaggio da un nuovo punto di montaggio. Non è altro che spostare un albero montato in un altro posto.

Nell’esempio qui sotto, il punto di mount /mydata sarà accessibile da /mnt usando l’opzione -M come mostrato qui sotto:

# mount -M /mydata /mnt/

Una volta fatto, non potete usare il vecchio punto di mount perché è stato spostato in un nuovo punto di mount e questo può essere verificato come mostrato qui sotto:

# mount | grep /mydata# mount | grep /mnt/dev/sda6 on /mnt type ext2 (rw)

Monta senza scrivere voci in /etc/mtab

Durante il montaggio in sola lettura di /etc/, le voci del file /etc/mtab non possono essere modificate dal comando mount. Tuttavia, il montaggio può essere fatto senza scrivere in /etc/mtab usando l’opzione -n come segue,

# mount -n /dev/sda6 /mydata

Non è possibile vedere alcuna voce per questo /mydata nell’output del comando di montaggio e anche nel file /etc/mtab come segue:

# mount | grep /mydata# cat /etc/mtab | grep /mydata

Accedere al contenuto di una directory montata /mydata:

# cd /mydata# lsdir1 dir2 test

Montare il filesystem con accesso in lettura o lettura/scrittura

Per montare la partizione in sola lettura, usare l’opzione -r che è sinonimo di -o ro.

# mount /dev/sda6 /mydata -r# mount | grep /mydata/dev/sda6 on /mydata type ext4 (ro)

Il filesystem ext3 ed ext4 permetterebbero comunque di fare operazioni di scrittura quando il filesystem è sporco. Quindi, potreste dover usare “ro,noload” per prevenire questo tipo di operazioni di scrittura.

# mount /dev/sda6 /mydata -t ext4 -o ro -o noload# mount | grep /mydata/dev/sda6 on /mydata type ext4 (ro,noload)

Per montare una partizione con accesso in lettura/scrittura, usate l’opzione -w che è uguale a “-o rw” (cioè: default).

Rimontare il filesystem montato

Per montare il filesystem già montato, usa l’opzione remount, normalmente usata per rimontare il filesystem con accesso in lettura/scrittura quando è stato precedentemente montato con accesso in lettura.

Il punto di montaggio /mydata sta per essere rimontato con accesso in lettura/scrittura da accesso in lettura come mostrato di seguito:

# mount | grep /mydata/dev/sda6 on /mydata type ext4 (ro,noload)# mount -o remount,rw /mydata# mount | grep /mydata/dev/sda6 on /mydata type ext4 (rw)

Monta un’immagine iso in una directory

L’immagine iso può essere montata come mostrato di seguito:

# mount -t iso9660 -o loop pdf_collections.iso /mnt# cd /mnt# lsperl/ php/ mysql/

Smontare più di un punto di montaggio

Umount permette di smontare più di un punto di montaggio in una singola esecuzione del comando umount come segue:

# umount /mydata /backup# mount | grep /mydata# mount | grep /backup

Smontare pigramente un filesystem

Questa è un’opzione speciale in umount, nel caso in cui si voglia smontare una partizione dopo che le operazioni sul disco sono state fatte. Puoi lanciare il comando umount -l con quella partizione e lo smontaggio sarà fatto dopo che le operazioni sul disco saranno finite.

Per esempio, considera uno scenario in cui un task (cioè: uno script o qualsiasi altro comando) sta facendo un’operazione di copia su un disco e allo stesso tempo ti è permesso di lanciare uno smontaggio con -l, così che lo smontaggio sarà fatto una volta che la copia è finita (cioè: l’operazione sul disco).

# umount /mydata -l

Smontare forzatamente un filesystem

umount fornisce l’opzione per smontare forzatamente un filesystem con l’opzione -f quando il dispositivo è occupato come mostrato di seguito:

# umount -f /mnt

Se questo non funziona per voi, allora potete andare per unmount pigro.

Nel frattempo, si può anche dare un’occhiata all’output del comando ps per vedere quale processo sta attualmente utilizzando il punto di montaggio, come mostrato di seguito:

# ps ajx | grep /mydata 2540 3037 3037 2468 pts/2 3037 D+ 0 0:00 cp -r /home/geekstuff/ProjectData/ /mydata

Si può anche eseguire il comando fuser per scoprire quale processo sta tenendo la directory per le operazioni.

# fuser -cu /mydata/mydata: 3087(root)

Vi dà l’id del processo con il nome utente (nient’altro che il proprietario del processo). Se sapete qual è quel processo, potreste voler fermare quel processo e poi provare di nuovo l’umount.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *