Installare e configurare al meglio NTFS-3G

Lun, 05/02/2007 - 22:31

Installare e configurare al meglio NTFS-3G

Inviato da Dellibeppe 8 commenti

Introduzione:

Scrivere da Linux su un Filesystem di tipo NTFS non è sempre stato possibile (o quantomeno in maniera completa e sicura), certo esistono da tempo soluzioni commerciali come Paragon NTFS (http://www.ntfs-linux.com/), ma praticamente nessun'altra alternativa libera, o meglio nessuna alternativa libera effettivamente utilizzabile, non si può non citare il progetto Captive (http://www.jankratochvil.net/project/captive/) che utilizzando alcuni file di Windows riesce (moooooooooooolto lentamente) ad offrire supporto completo in lettura e scrittura.

Tuttavia la situazione è rapidamente destinata a cambiare grazie ad NTFS-3G (http://www.ntfs-3g.org/), la terza generazione del driver per Linux (ma non solo) che offre pieno supporto in lettura e scrittura.
NTFS-3G ha debuttato ufficialmente il 14/Luglio/2006 grazie Szabolcs Szakacsits (eccone l'annuncio), ed è destinato in un prossimo futuro ed essere inglobato dentro il progetto linux-ntfs (http://www.linux-ntfs.org/), ad oggi 4 Febbraio 2007 è ancora in beta e l'ultima versione disponibile è datata 18/Gennaio/2007, questa particolare versione ha la capacità di poter funzionare in uno stato non privilegiato, è cioè possibile montare e smontare facilmente una partizione NTFS da utente.

La seguente guida spiega come configurare un sistema Gnu/Linux ad accedere ad una partizione NTFS utilizzando proprio NTFS-3G, vi ricordo che il driver È IN BETA, pertanto usatelo a vostro rischio e pericolo, nella mia personale esperienza non ho riscontrato nessun problema nonostante abbia scritto parecchi giga di dati, al contempo stesso anche sul sito ufficiale si legge che non si sono riscontrate corruzioni o perdite di dati durante l'uso ordinario del driver, ripeto agite a vostro rischio e pericolo.

File necessari:

Per utilizzare NTFS-3G ci sono vari modi, in questa guida vi propongo quello più universale, compileremo da noi i file necessari, pertanto potete utilizzare questo scritto come riferimento per qualsiasi distribuzione voi usiate.

Procuriamoci:
NTFS-3G: (http://www.ntfs-3g.org/)*
FUSE: (http://fuse.sourceforge.net/)

Fuse è un modulo del kernel che permette di gestire Filesystem in Userspace, è necessario usare almeno la versione 2.6.0.
Beh permettetemi questa digressione, per quanto l'architettura di Fuse possa essere stata ottimizzata, devo comunque dire che non mi piace molto l'idea di un filesystem gestito in userspace, personalmente credo che una volta stabilizzato l'attuale driver si passerà ad un adattamento capace di lavorare in kernelspace.

*Questa guida parte dal presupposto che usiate la versione del driver ntfs-3g-0.20070118-BETA o successiva.

Compilazione:

Iniziamo da FUSE, quest'ultimo è incluso nel kernel Linux ufficiale a partire dalla versione 2.6.14, tuttavia contiene una versione di FUSE un po' vecchiotta, a noi serve almeno la 2.6.0 che è abbastanza recente.

Una volta scompattato l'archivio basta usare i soliti comandi:

<br />./configure<br />make<br />make install<br />

(L'ultimo chiaramente da root)

Ricordatevi che affinché la compilazione vada a buon fine dovete aver installato il pacchetto contenente sorgenti del kernel, ovviamente dovete avere gcc e compagnia bella, ma questo è ovvio altrimenti che utenti Gnu/Linux siamo?

Passiamo ora al driver vero è proprio, scompattate l'archivio e diamo il solito comando per configurare il tutto:

./configure

è proprio durante questa fase che viene testata la presenza di una versione adeguata di FUSE, se non viene trovata ci viene proposto il link dove scaricarla, proseguiamo con:

<br />make<br />make install<br />

fatto ciò il gioco è praticamente fatto, tutto quello di cui abbiamo bisogno è ora installato.

Configurazione:

Per poter utilizzare il driver da utente senza dover di volta in volta usare su o sudo, basta settare il setuid, da shell root diamo il comando:

<br />chmod u+s /usr/local/bin/ntfs-3g<br />

Fatto, ora possiamo utilizzare il driver da utente, il che è estremamente comodo.

Dobbiamo ancora definire un punto di montaggio per la partizione, possiamo distinguere due casi:

Caso A) La nostra distribuzione ha già correttamente creato e gestito le partizioni NTFS.

Analizziamo quindi il contenuto del file /etc/fstab, ad esempio potrebbe essere qualcosa del tipo:

<br />/dev/hda1    /             xfs  noatime               1 1<br />/dev/hda2    swap          swap defaults              0 0<br />/dev/hda3    /mnt/win      ntfs noauto,user,umask=000 0 0<br />/dev/hda4    /mnt/data     vfat noauto,users,exec     0 0<br />none         /proc         proc defaults              0 0<br />

Allora analizzando il testo notiamo che la la partizione hda3 è correttamente gestita mediante il driver ntfs, questo offre di fatto la sola lettura, possiamo ora modificare la riga in questione con:

<br />/dev/hda3    /mnt/win      ntfs-3g noauto,users       0 0<br />

Ovviamente al posto di hda3 mettete il vostro dispositivo, ripetete il procedimento per tutte le partizioni NTFS che avete, impostando per ognuna di esse un diverso punto di montaggio, fatto ciò abbiamo finito.
Con la modifica proposta la partizione sarà montabile e smontabile da parte di un qualsiasi utente (gestendola in lettura e scrittura), l'opzione noauto imposta che il filesystem non venga montato in automatico all'avvio del sistema, credo che questa non sia una cattiva idea visto che il driver è comunque in beta.

N.B: Prima di procedere con la modifica del file /etc/fstab assicurati di smontare le partizioni NTFS.

Caso Cool Il sistema non ha gesito le partizioni NTFS preesistenti.

Dobbiamo configurare manualmente il tutto, per prima cosa creiamo il punto di montaggio, possiamo creare la cartella win dentro /mnt ad esempio, quindi diamo il comando:

<br />mkdir /mnt/win<br />

ora aggiungiamo nel file /etc/fstab una riga come quella proposta prima:

<br />/dev/hda3    /mnt/win      ntfs-3g noauto,users      0 0<br />

Al solito al posto di hda3 mettete il vostro dispositivo e reiterate la procedura per tutte le partizioni NTFS volete gestire.

Uso:

Potete iconizzare il tutto per semplificare l'uso, come fare dipende un po' dalla distribuzione che state usando e dall'ambiente grafico.
Ad esempio dopo la modifica su una Mandriva 2006 il riferimento al disco NTFS è sparito dal gestore delle periferiche (ambiente KDE), per accedere tramite gui al disco ho semplice iconizzato a parte il dispositivo.

Per montare il dispositivo da shell ora basta usare il comando:

(mount /VOSTRO/PUNTO/DI/MONTAGGIO)

Nel caso abbiate creato e confgurato il punto di montaggio come vi ho proposto io, /mnt/win, il comando è

<br />mount /mnt/win<br />

Se invece volete utilizzare direttamente l'utility ntfs-3g il comando è:

ntfs-3g /dev/VOSTRO_DISPOSITIVO /VOSTRO/PUNTO/DI/MONTAGGIO)

ad esempio nel mio caso:

<br />ntfs-3g /dev/hda3 /mnt/win<br />

Per quanto riguarda resta invariata la procedura di smontaggio via shell, il solito umount è più che sufficiente.

Leggere e scrivere su una partizione NTFS è molto comodo, sopratutto se usate più sistemi operativi, inoltre merita attenzione il fatto che NTFS-3G sia in fase di porting su altre piattaforme, tra le quali: Mac OSX, FreeBSD e BeOS.

Il driver è aggiornato con una discreta velocità, quindi di tanto in tanto buttate un occhio sul sito del progetto per controllarne l'avanzamento.





Commenti

Ritratto di Stefano
#1

Inviato da Stefano il Lun, 05/02/2007 - 22:39.

Bel contributo!

Voto 8!

Ste

Stefano Mainardi - Founder of ILDN & CEO of Twinbit



Ritratto di Moreno
#2

Inviato da Moreno il Lun, 05/02/2007 - 23:35.

Re: Bel contributo!

Ciao

Mo guarda un altro appassionato di Fuse, ci avrò scritto su 3/4 guide.

Effettivamente la versione di Fuse per Mandriva 2007 è alquanto vecchiotta (2.5.3 del 20/09/2006) comunque andicchiava abbastanza bene gia qualche mese fa, anche i pacchetti di ntfs-3g sono già disponibili alla versione 0.1-0.20070714.

In Cooker invece ci sono fuse 2.6.1 e ntfs-3g-0.1-0.20070920.

La guida è ben impostata anche se un po' lacunosa nella sezione compilazione, io non voto per principio.

Ciao Ciao Moreno

Addio, e grazie per tutto il pesce.
Avatar by moonlight-dream.



Ritratto di beppe_rm
#3

Inviato da beppe_rm il Mar, 24/04/2007 - 14:05.

Bel contributo!

grazie della guida, ma anche io non voto per principio.
in effetti la parte configurazione potrebbe essere maggiormente sviluppata.
per esempio: ho installato ntfs-3g e fuse con urpmi, come faccio a configurare il tutto per un hd esterno? sapete dove sono le guide che cita Moreno?
grazie



Ritratto di kio341
#4

Inviato da kio341 il Lun, 05/02/2007 - 23:21.

io faccio così!

Quote:

Mandriva -2007

[root@localhost ~]# rpm -qa fuse
[root@localhost ~]# smart install fuse
Caricando la cache...
Updating cache... ######################################## [100%]

Computing transaction...

Installing packages (1):
fuse-2.5.3-3mdk@i586

54.6kB sono necessari per i pacchetti.Saranno usati 139.1kB.

Confermi i cambiamenti? (S/n)Worried

[root@localhost ~]# smart install ntfs-3g
Caricando la cache...
Updating cache... ######################################## [100%]

Computing transaction...

Installing packages (3):
libfuse2-2.5.3-3mdk@i586
libntfs-3g0-0.1-0.20070714.2mdv2007.0@i586
ntfs-3g-0.1-0.20070714.2mdv2007.0@i586

160.8kB sono necessari per i pacchetti.Saranno usati 308.5kB.

Confermi i cambiamenti? (S/n)Worried

[ 0%]
1:Sto installando libntfs-.. ######################################## [ 33%]
2:Sto installando libfuse2 ######################################## [ 66%]
3:Sto installando ntfs-3g ######################################## [100%]

Salvando la cache...

[root@localhost ~]# mkdir /mnt/win
[root@localhost ~]# mount -t ntfs-3g /dev/hda1 /mnt/win
The device /dev/hda1, is mounted.
Use the force option to work a mounted filesystem.
Mount failed.
[root@localhost ~]# umount /dev/hda1
[root@localhost ~]# mount -t ntfs-3g /dev/hda1 /mnt/win
fusermount: failed to open /dev/fuse: No such file or directory
fuse_mount failed.
Unmounting /dev/hda1 ()
[root@localhost ~]# modprobe fuse
[root@localhost ~]# mount -t ntfs-3g /dev/hda1 /mnt/win
[root@localhost ~]#
riavvio ma il modulo non risulta caricato allora aggiungo in /etc/modprobe.preload
***********
# /etc/modprobe.preload: kernel modules to load at boot time.
fuse
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line. Comments begin with
# a `#', and everything on the line after them are ignored.
# this file is for module-init-tools (kernel 2.5 and above) ONLY
# for old kernel use /etc/modules
*************
poi ho ricondizionato /etc/fstab per il montaggio automatico al boot della partizione for all
/dev/hda1 /mnt/win ntfs-3g umask=0,rw,users 0 0
bingooooooooooo!!!!!

su una derivata di mandriva : PcLinuxOS-2007 RC1 è ancora più facile- il modulo fuse una volta installato si carica automaticamente:

[root@localhost ~]# rpm -qa fuse
[root@localhost ~]# apt-get install fuse
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
fuse
0 upgraded, 1 newly installed, 0 removed and 111 not upgraded.
Need to get 84.0kB of archives.
After unpacking 238kB of additional disk space will be used.
Get:1 http://ftp.heanet.ie pclinuxos/2007/main fuse 2.6.1-1pclos2007 [84.0kB]
Fetched 84.0kB in 2s (31.6kB/s)
Committing changes...
Preparing... ########################################### [100%]
1:fuse ########################################### [100%]
Done.
[root@localhost ~]#

[root@localhost ~]# apt-get install ntfs-3g
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
libfuse2 libntfs-3g0
The following NEW packages will be installed:
libfuse2 libntfs-3g0 ntfs-3g
0 upgraded, 3 newly installed, 0 removed and 111 not upgraded.
Need to get 181kB of archives.
After unpacking 360kB of additional disk space will be used.
Do you want to continue? [Y/n] y
[root@localhost ~]# mkdir /mnt/win
[root@localhost ~]# mount -t ntfs-3g /dev/hda1 /mnt/win
WARNING: Old FUSE kernel module detected. This means, some driver features
are not available (swap file on NTFS, boot from NTFS by LILO),
and unmount is not safe unless you make sure the ntfs-3g process
naturally terminates after calling 'umount'. The safe FUSE kernel
driver is included in the official Linux kernels since version
2.6.20-rc1, or in the FUSE 2.6 software package. Please see the
next page for more help: http://www.ntfs-3g.org/support.html#fuse26
[root@localhost ~]#
poi ho ricondiziono /etc/fstab per il montaggio automatico al boot della partizione for all
/dev/hda1 /mnt/win ntfs-3g umask=0,rw,users 0 0
bingooooooooooo!!!!!

da http://xoomer.alice.it/lucky341/NTFS.html
Big Grin



Ritratto di thebaddie
#5

Inviato da thebaddie il Lun, 23/04/2007 - 12:44.

ho il kernel deficiente?

qualche giorno fa avevo provato a configurare NTFS-3G ma mi dava uno strano errore che cominciava dicendomi di avere un kernel deficiente ("Deficient kernel" o "Deficient FUSE kernel" non ricordo...), ho il 2.6.17, con FUSE ultima versione... cosa potrebbe essere?

baddie Laughing

Guida - Unicorn/Bewan USB modem

Mandriva 2008 - Intel Core 2 DUO T5450 @1.67GHz - 2048MB DDR2 - Intel GM965 - 160GB HD - KDE 3.5 + Compiz Fusion



Ritratto di randerot
#6

Inviato da randerot il Lun, 07/05/2007 - 15:49.

Re: ho il kernel deficiente?

sono nuovo del forum. Ho installato mandriva 2007.1 e ho provato a seguire la guida ma anche a me da questo errore:
[root@localhost ntfs-3g-1.417]# mount /mnt/windows/
WARNING: Deficient Linux kernel detected. Some driver features are
not available (swap file on NTFS, boot from NTFS by LILO), and
unmount is not safe unless it's made sure the ntfs-3g process
naturally terminates after calling 'umount'. If you wish this
message to disappear then you should upgrade to at least kernel
version 2.6.20, or request help from your distribution to fix
the kernel problem. The below web page has more information:
http://ntfs-3g.org/support.html#fuse26
a questo link non danno indicazioni. mi potete aiutare?
Grazie mille

______________________________________________________________________________________________________________________________________________

Notebook Asus M60J CPU: i7-720QM Memory: 4Gb Scheda Video: Nvidia GT 240M Display: 16.0" HD/led



Ritratto di kio341
#7

Inviato da kio341 il Lun, 21/05/2007 - 09:15.

2007.1 spring

sulla spring io faccio così:
Quote:

dal centro di controllo >>gestione software>>installa pacchetti

install ntfs-3g alle dipendenze vedi fuse 2.6.3 ci pensa lui

poi
[root@localhost ~]# mkdir /mnt/win
[root@localhost ~]# mount -t ntfs-3g /dev/sda1 /mnt/win
WARNING: Old FUSE kernel module detected. This means, some driver features
are not available (swap file on NTFS, boot from NTFS by LILO),
and unmount is not safe unless you make sure the ntfs-3g process
naturally terminates after calling 'umount'. The safe FUSE kernel
driver is included in the official Linux kernels since version
2.6.20-rc1, or in the FUSE 2.6 software package. Please see the
next page for more help: http://www.ntfs-3g.org/support.html#fuse26
[root@localhost ~]#

poi ho ricondiziono /etc/fstab per il montaggio automatico al boot della partizione for all ed ho tolto il montaggio in ro nel moint point /mnt/win_c

questo il nuovo statement
/dev/sda1 /mnt/win ntfs-3g umask=0,rw,users 0 0
bingooooooooooo!!!!!

ps-a dir la verità mi aveva trovato un errore nel file di log ntfs che ho risolto su suo consiglio riavviando Xp e facendo shutdown



Ritratto di girobiro
#8

Inviato da girobiro il Ven, 30/05/2008 - 15:36.

Re: 2007.1 spring

salve a tutti... ho un grande problema... spero qualcuno mi possa aiutare... ho un video-game sul mio pc e x istallarlo devo estrarlo dalla cartella zippata... il problema è che quando ci provo mi da un problema dicendo che l'unico che può risolverlo è NTFS... l'ho cercato un po' sul web e l'ho scaricato... ora nn so nè come istallarlo nè come farlo funzionare!! chi mi da una mano????

ho winXp, acer aspire 7111Wsmi e nn so cos'altro dirvi!! Sad Sad Sad Sad :-o