Il New Technology File System (NTFS) è un file system proprietario creato da Microsoft ed è ampiamente utilizzato nei sistemi operativi Windows di Microsoft.
Di default la maggior parte delle distribuzioni Linux non sono in grado di montare NTFS, tuttavia è possibile installare un driver che ci permette di farlo in modo da poter leggere e scrivere dati su un disco NTFS.
In questo esempio ho allegato il file VMDK da una macchina virtuale basata su Windows a una macchina virtuale CentOS 7 Linux.
Quando eseguiamo ‘fdisk -l’ possiamo vedere che il disco viene riconosciuto (dopo un riavvio del sistema), tuttavia non è ancora montato per accedere ai dati. Possiamo vedere il disco primario per il sistema Linux /dev/sda, mentre /dev/sdb è il nostro disco NTFS da 1GB che ha la partizione NTFS /dev/sdb1.
~]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x0004c930 Device Boot Start End Blocks Id System/dev/sda1 * 2048 616447 307200 83 Linux/dev/sda2 616448 4810751 2097152 82 Linux swap / Solaris/dev/sda3 4810752 41943039 18566144 83 LinuxDisk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0xfc757b2a Device Boot Start End Blocks Id System/dev/sdb1 128 2091135 1045504 7 HPFS/NTFS/exFAT
Di default quando provo a montare il disco NTFS, otteniamo il seguente errore.
~]# mkdir /windows ~]# mount /dev/sdb1 /windows/mount: unknown filesystem type 'ntfs'
Installare i pacchetti richiesti
Per eseguire il montaggio, dobbiamo installare il pacchetto ntfs-3g, che è un driver Linux NTFS userspace. Questo pacchetto proviene da EPEL se stai usando CentOS/RHEL, quindi se non hai ancora configurato il tuo sistema per usare il repository EPEL, esegui il seguente comando.
~]# yum install epel-release -y
Ora dovremmo essere in grado di installare il pacchetto ntfs-3g dal repository EPEL.
~]# yum install ntfs-3g -y
Altrimenti, se state usando Ubuntu/Debian, dovreste essere in grado di eseguire subito ‘apt-get install ntfs-3g’. Nella mia installazione di Debian 8 era già disponibile, quindi sono stato in grado di montare NTFS senza problemi.
Monta il disco NTFS
Ora possiamo eseguire con successo il montaggio senza alcun errore.
~]# mount /dev/sdb1 /windows/ ~]# blkid /dev/sdb1/dev/sdb1: LABEL="NTFS" UUID="CA4A1FD94A1FC0DD" TYPE="ntfs"
Possiamo confermare che il disco NTFS è ora visto come montato dal sistema operativo.
~]# df -h /windows/Filesystem Size Used Avail Use% Mounted on/dev/sdb1 1021M 11M 1011M 2% /windows
A questo punto si dovrebbe essere in grado di leggere e scrivere dati sul disco NTFS montato.
Montare automaticamente NTFS
Possiamo creare una voce nel file /etc/fstab in modo che il nostro disco NTFS venga montato automaticamente all’avvio del sistema. Di seguito è riportato un esempio della voce che ho inserito nel mio file fstab. Questo monterà il disco nella directory /ntfs.
/dev/sdb1 /windows ntfs-3g defaults 0 0
Una volta aggiunta questa configurazione, il disco NTFS dovrebbe montare automaticamente all’avvio del sistema. Prima di eseguire un riavvio, si raccomanda di eseguire prima il comando ‘mount -a’ e confermare che il disco viene montato senza errori. Se ci sono errori che si verificano durante l’avvio, si potrebbe rimanere con un sistema che non si avvia correttamente, quindi è importante testare prima.
Sommario
Abbiamo visto che è possibile montare facilmente un disco NTFS in CentOS 7 Linux una volta installato il pacchetto ntfs-3g che ci fornisce i driver necessari.