Lettura e scrittura partizioni NTFS

Da Linux@P2P Forum Italia.

GNU/linux legge senza problemi partizioni ntfs, la scrittura ultimamente ha raggiunto un certo grado di stabilità, ma comunque si corre il rischio di corrempere i proprio dati. Vediamo come abilitare la lettura e/o scrittura di una partizione NTFS

Indice

Lettura partizione NTFS

Impostare il nostro sistema, affinche legga una partizione ntfs è una procedura abbastanza banale e tutte le maggiori distro in fase di installazione dovrebbe rilevare configurare il tutto automaticamente. Se ciò non dovesse accadere vediamo come procedere manualmente.

Localizzare la partizione NTFS

Per prima cosa dobbiamo identificare (se già non lo sappiamo) la partizione NTFS, quindi apriamo un terimnale/shell/konsole e diamo:

su
(inseriamo la password di root che non apparirà a schermo!)

Attenzione: Se usate ubuntu/kubuntu/xubuntu dovete saltare il precedente passaggio in quanto basta anteporre a tutti i comandi che seguiranno "sudo". Facciamo quindi la copia:

fdisk -l

o se abbiamo ubuntu/kubuntu/xubuntu

sudo fdisk -l

L'output sarà simle al seguente, localizziamo quindi la partizione NTFS:

Disk /dev/hda: 10.2 GB, 10242892800 bytes
255 heads, 63 sectors/track, 1245 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         803     6450066    7  HPFS/NTFS
/dev/hda2             804        1222     3365617+  83  Linux
/dev/hda3            1223        1245      184747+   5  Extended
/dev/hda5            1223        1245      184716   82  Linux swap / Solaris


Nel nostro esempio è /dev/hda1 (d'ora in poi useremo questa come partizione, ma voi dovrete sostituire ovviamente la vostra), ma potrebbe variare da sistema a sistema.

Impostare il montaggio della partizione NTFS in sola lettura

Procediamo creando una cartella che sarà il punto di mount (nota:mettete qualsiasi altro nome al posto di windows, non ha importanza):

mkdir  /media/windows

o se abbiamo ubuntu/kubuntu/xubuntu

sudo mkdir  /media/windows

Quindi montiamo la partizione:

mount /dev/hda1 /media/windows -t ntfs -o umask=000,utf8

o se abbiamo ubuntu/kubuntu/xubuntu

sudo mount /dev/hda1 /media/windows -t ntfs -o umask=000,utf8

Sostanzialmente abbiamo indicato con il comando mount -t il tipo di filesystem in questo caso ntfs, con -o come “otranto” (non uno zero) in minuscolo i parametri da aggiungere in questo caso umask=000, che significa assegnare alle directory e ai file della partizione di windows montata in /media/windows la lettura ed esecuzione. Per altre opzioni del comando mount vi rimando al man della vostra distribuzione, sintassi: man mount

Purtroppo operando come abbiamo fatto, non risulterà montata ad ogni avvia, quindi procediamo automatizzando il tutto. Ad andiamo quindi a modificare /etc/fstab, dove risiedono i dispositivi che vengono montati in automatico all'avvio dell'OS:

Smontiamo la partizione appena montata:

umount  /media/windows

o se abbiamo ubuntu/kubuntu/xubuntu

sudo umount  /media/windows

Faciamo una copia di sicurezza:

cp /etc/fstab /etc/fstab.bak

o se abbiamo ubuntu/kubuntu/xubuntu

sudo cp /etc/fstab /etc/fstab.bak

Bene ora possiamo fare le modifiche che ci servono, se si usa gnome:

gedit /etc/fstab

Se si ha ubuntu/kubuntu/xubuntu

sudo gedit /etc/fstab

Se si usa kde:

kate /etc/fstab

Se si ha ubuntu/kubuntu/xubuntu:

sudo /etc/fstab

Se invece si vuole usare un editor testuale (consigliato) si puo usare nano (per informazioni sull'utilizzo vedere Editare i files di testo con nano) o vi:

nano /etc/fstab

Se si ha ubuntu/kubuntu/xubuntu:

sudo nano /etc/fstab

Inseriamo la stringha:

/dev/hda1  /media/windows ntfs umask=000,defaults,nls=utf8  0  0

oppure:

/dev/hda1  /media/windows ntfs umask=022,defaults,nls=utf8  0  0

Il risultato non cambia, potete tranquillamente leggere ed eseguire i file al suo interno dal vostro utente, quindi il vosto dovrebbe più o meno risultare di questo tipo (ovviamente cambierà da sistema a sistema)

# /etc/fstab: static file system information.
#
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc /proc proc defaults 0 0
# Entry for /dev/hda2 :
UUID=9a3c835e-2ba2-41b8-89c0-2a0a1257ac97 / ext3 defaults,errors=remount-ro 0 1
# Entry for /dev/hda5 :
UUID=20586bf5-4c3e-44bb-a74c-f9429c1822b2 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
/dev/hda1  /media/windows ntfs umask=000,defaults,nls=utf8  0 0

Salviamo il file appena editato (con nano CTRL+O oppure CTRL+X ci chiedera' di sovrascrivere, premiamo S o Y a seconda della lingua impostata nel sistema). Rimontiamo la partizione:

mount -a /media/windows

Se si ha ubuntu/kubuntu/xubuntu:

sudo mount -a /media/windows

Piccola disgressione suI flag GID e UID

GID(groupid)    /etc/group
UID(userid)     /etc/passwd

Tutti i file della partizione ntfs di default appartengono all'utente e al gruppo ROOT, come potete notare dall'output del comando ls -l /media/windows. Possiamo modificare l'utente e il gruppo proprietario, cambiando i flag GID e UID. Esempio:

cat /etc/passwd

Che produrra un output simile a questo

root:x:0:0:root:/root:/bin/bash
.....ecc ecc scorrete
vostroutente:x:1000:1000:vostroutente,,,:/home/vostroutente:/bin/bash

Volendo quindi possiamo, aggiungere alle opzioni

umask=000,utf8,uid=vostroutente

Potete mettere anche il valore numerico esempio uid=1000,la stessa cosa con gid.

Scrittura partizioni NTFS

Il progetto più stabile al momento per scrivere su partizioni NTFS è NTFS-3G, ovviamente prima di procedere vi raccomando di fare sempre e comunque un backup dei vostri dati

Installare e settare NTFS-3G in Ubuntu/Kubuntu/Xubuntu

Apriamo un terminale/konsole e editiamo il file /etc/apt/sources.list

sudo nano /etc/apt/sources.list

Inseriamo questi repositories:

Se abbiamo Ubuntu/Kubuntu/Xubuntu dapper 6.06

deb http://flomertens.keo.in/ubuntu/ dapper main main-all
deb http://givre.cabspace.com/ubuntu/ dapper main main-all
deb http://ntfs-3g.sitesweetsite.info/ubuntu/ dapper main main-all

Se abbiamo Ubuntu/Kubuntu/Xubuntu edgy 6.10

deb http://flomertens.free.fr/ubuntu/ edgy main main-all
deb http://ntfs-3g.sitesweetsite.info/ubuntu/ edgy main main-all
deb http://flomertens.keo.in/ubuntu/ edgy main main-all

Importiamo la chiave gpg:

wget http://flomertens.keo.in/ubuntu/givre_key.asc -O- | sudo apt-key add -

Diamo in serie:

sudo apt-get update
sudo apt-get upgrade 
sudo apt-get install ntfs-config 

(verra' installato fuse-utils,ntfs-3g,libntfs-3g0,libfuse2)

sudo apt-get install fuse-source ntfsprogs

Facciamo come al solito una copia di sicurezza dell'fstab:

sudo cp /etc/fstab /etc/fstab.bak

Editiamo come visto sopra l'fstab

sudo nano /etc/fstab  

(oppure al posto di nano, gedit se usate gnome, kate se usate kde) Inseriamo questa stringha (ovviamente al posto di hda1 dovete sosttituire la vostra partizione ntfs):

/dev/hda1  /media/windows ntfs-3g defaults,nls=utf8  0 0

Quindi /etc/fstab dovbrebbe risultare così (cambierà da sistema a sistema)

# /etc/fstab: static file system information.
#
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc /proc proc defaults 0 0
# Entry for /dev/hda2 :
UUID=9a3c835e-2ba2-41b8-89c0-2a0a1257ac97 / ext3 defaults,errors=remount-ro 0 1
# Entry for /dev/hda5 :
UUID=20586bf5-4c3e-44bb-a74c-f9429c1822b2 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
/dev/hda1  /media/windows ntfs-3g defaults,nls=utf8  0 0

poi carichiamo il modulo fuse:

sudo modprobe fuse

e per montare la partizione

sudo mount -a /media/windows 

o piu' semplicemente si riavvia

Abilitazione della scrittura su NTFS con ntfs-config

Hanno inserito nei repositories un utilita' grafica di configurazione automatica che si chiama ntfs-config, che automaticamente configura il dispositivo di archiviazione di massa HD ide o sata, ed esterni usb:

sudo ntfs-config

Ntfs-config.png

Devo essere sincero nel mio caso, per il dispositivo esterno (sara' che ho provato su una memory card formattata in ntfs) non ha funzionato e neanche il metodo di givre' cioe' quello di montare la partizione esterne manualmente con pmount-hal /dev/sdc1 (sdc1 nel mio caso),con o senza privilegi con sudo, ma sono riuscito editando con il metodo classico il file /etc/fstab. P.S. per l'HD ide non ho avuto problemi.

esempio:

il dispositivo usb e' rilevabile o con :

sudo fdisk -l
Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         803     6450066    7  HPFS/NTFS
/dev/hda2             804        1222     3365617+  83  Linux
/dev/hda3            1223        1245      184747+   5  Extended
/dev/hda5            1223        1245      184716   82  Linux swap / Solaris
Disk /dev/sdc: 127 MB, 127139840 bytes
8 heads, 32 sectors/track, 970 cylinders
Units = cilindri of 256 * 512 = 131072 bytes
Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sdc1   *           1         970      124143+   7  HPFS/NTFS
La partizione 1 ha diversi elementi iniziali fisici/logici (non Linux?):
    phys=(0, 1, 1) logico=(0, 1, 2)
La partizione 1 ha diversi elementi finali fisici/logici:
    phys=(968, 7, 32) logico=(969, 7, 32)

o con:

dmesg | grep sd
[17202397.448000] sd 0:0:0:0: Attached scsi removable disk sda
[17202397.476000] sd 0:0:0:1: Attached scsi removable disk sdb
[17202397.524000] SCSI device sdc: 248320 512-byte hdwr sectors (127 MB)
[17202397.524000] sdc: Write Protect is off
[17202397.524000] sdc: Mode Sense: 43 00 00 08
[17202397.524000] sdc: assuming drive cache: write through
[17202397.548000] SCSI device sdc: 248320 512-byte hdwr sectors (127 MB)
[17202397.552000] sdc: Write Protect is off
[17202397.552000] sdc: Mode Sense: 43 00 00 08
[17202397.552000] sdc: assuming drive cache: write through
[17202397.552000]  sdc: sdc1
[17202397.552000] sd 0:0:0:2: Attached scsi removable disk sdc
[17202397.584000] sd 0:0:0:3: Attached scsi removable disk sdd
[17202397.604000] sd 0:0:0:0: Attached scsi generic sg0 type 0
[17202397.608000] sd 0:0:0:1: Attached scsi generic sg1 type 0
[17202397.608000] sd 0:0:0:2: Attached scsi generic sg2 type 0
[17202397.608000] sd 0:0:0:3: Attached scsi generic sg3 type 0
[17202696.484000] SCSI device sdc: 248320 512-byte hdwr sectors (127 MB)
[17202696.484000] sdc: Write Protect is off
[17202696.484000] sdc: Mode Sense: 43 00 00 08
[17202696.484000] sdc: assuming drive cache: write through
[17202696.484000] SCSI device sdc: 248320 512-byte hdwr sectors (127 MB)
[17202696.488000] sdc: Write Protect is off
[17202696.488000] sdc: Mode Sense: 43 00 00 08
[17202696.488000] sdc: assuming drive cache: write through
[17202696.488000]  sdc: sdc1

Smontiamo il dispositivo usb che si e' automaticamente aggiunto con l'automount in /media/ con il nome, nel mio caso usbdisk:

sudo umount /dev/sdc1

Creiamo un nuovo punto di mount

sudo mkdir /media/usb

come prima cosa un backup dell'fstab

sudo cp /etc/fstab /etc/fstab.bak

editiamo:

sudo nano /etc/fstab
# /etc/fstab: static file system information.
#
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc /proc proc defaults 0 0
# Entry for /dev/hda2 :
UUID=9a3c835e-2ba2-41b8-89c0-2a0a1257ac97 / ext3 defaults,errors=remount-ro 0 1
# Entry for /dev/hda5 :
UUID=20586bf5-4c3e-44bb-a74c-f9429c1822b2 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
/dev/hda1  /media/windows ntfs-3g  defaults,nls=utf8  0 0
/dev/sdc1  /media/usb     ntfs-3g  defaults,nls=utf8  0 0

rimontiamo il dispositivo usb:

sudo mount -a /media/usb

Installare e settare NTFS-3G in Fedora core

Apriamo una console/terminale:

su
(inseriamo la password di root)

Installiamo NTFS-3G

yum -y install ntfs-3g

Creiamo un cartella per il mount point

mkdir /media/windows

Facciamo come al solito una copia di sicurezza dell'fstab:

cp /etc/fstab /etc/fstab.bak

Editiamo come visto sopra l'fstab

nano /etc/fstab  

(oppure al posto di nano, gedit se usate gnome, kate se usate kde) Inseriamo questa stringha (ovviamente al posto di hda1 dovete sosttituire la vostra partizione ntfs):

/dev/hda1  /media/windows ntfs-3g defaults,nls=utf8  0 0

Quindi /etc/fstab dovbrebbe risultare così (cambierà da sistema a sistema)

# /etc/fstab: static file system information.
#
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc /proc proc defaults 0 0
# Entry for /dev/hda2 :
UUID=9a3c835e-2ba2-41b8-89c0-2a0a1257ac97 / ext3 defaults,errors=remount-ro 0 1
# Entry for /dev/hda5 :
UUID=20586bf5-4c3e-44bb-a74c-f9429c1822b2 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
/dev/hda1  /media/windows ntfs-3g defaults,nls=utf8  0 0

poi carichiamo il modulo fuse:

modprobe fuse

e per montare la partizione

mount -a /media/windows 

o piu' semplicemente si riavvia

Purtroppo puo capitare che questa procedura non funzioni, in questa caso procediamo nel seguente modo:

Scarichiamo da questo sito la versione più aggiornata di fuse, installiamo (se già non lo abbiamo fatto in precedenza) il compilatore GCC:

yum -y install gcc

Ci spostiamo nella cartella dove abbiamo salvato FUSE (nel mio caso il Desktop):

cd Desktop

Scompattiamo il pacchetto:

tar xvfz nomepacchetto.tar.gz

E procediamo nella compilazione

./configure --enable-kernel-module
make
make install

Ora tutto dovrebbe funzionare a dovere.

Installare e settare NTFS-3G in Gentoo

Per gentoo gnu/linux è possibile quest'ottimo how-to

Installare e settare NTFS-3G in Opensuse

Fare riferimento a questa pagina del wiki di Opensuse per poter scrivere su partizioni NTFS in questa distro

Strumenti personali
Namespace
Varianti
Azioni
Navigazione
CollectionTricks
Siti amici
Strumenti