#1 Le 29/04/2006, à 19:19
- cep
Écriture sur Ntfs avec Fuse
Écriture sur une partition NTFS en utilisant le driver Fuse. Potentiellement Dangereux sur une partition sensible
ÉDIT 03/03/07 : Ce tuto est périmé. Maintenant il est préférable d'utiliser ntfs-3g.
Faire une recherche sur le wiki pour la procédure à suivre.
cep
Ce topo concerne Dapper 2.6.15-21 à jour.
L'écriture sur partitions NTFS doit être faite en toute connaissance de cause, car elle peut aboutir à la perte de données. Il est conseillé d'utiliser une partition autre que la partition système ou une partition ayant des données importantes.
- - - - - - - - - - - - - - - -
Si la partition sur la quelle vont porter les changements est montée, on la démonte et si elle possède une ligne de configuration dans fstab, on la commente ou on la supprime.
On vérifie que la dernière version des ntfsprogs est installée, ce qui devrait être le cas (main Packages) de même que libfuse2 et libntfs8 :
:~$ sudo apt-get update
:~$ apt-cache policy libfuse2 ntfsprogs libntfs8
On installe fuse-utils :
:~$ sudo apt-get install fuse-utils
On ajoute le module fuse dans /etc/modules:
:~$ sudo sh -c "echo fuse >> /etc/modules"
Pour ne pas avoir à rebooter, on fait prendre en charge le module :
:~$ sudo modprobe fuse
Maintenant on peut monter cette partition (hda3 en ce qui me concerne) :
:~$ sudo ntfsmount /dev/hda3 /mnt/ntfs -o umask=0000
Il faut bien sûr que le point de montage existe.
Pour démonter :
:~$ sudo fusermount -u /mnt/ntfs
Le classique umount /dev/hda3 devrait marcher aussi.
Pour configurer /etc/fstab il devrait y avoir une ligne dans le genre de :
/dev/hd?? /media/point_montage ntfs-fuse fmask=0111,dmask=0,succeed_chmod,locale=fr_FR.UTF-8 0 0
Il faut adapter locale=xxx à vos locales. Pour cela les vérifier en passant la commande locale dans un terminal.
Pour configurer fstab vous pouvez aussi utiliser le script présenté ici :
http://forum.ubuntu-fr.org/viewtopic.php?id=34630
Si la partition ne se monte pas en passant la commande sudo mount -a il faudra faire un peu de ménage dans les liens :
sudo rm /sbin/mount.ntfs-fuse && sudo ln /usr/bin/ntfsmount /sbin/mount.ntfs-fuse
puis sudo mount -a
Voir les explications sur : https://launchpad.net/distros/ubuntu/+source/linux-ntfs/+bug/29865
Voir pour les options supplémentaires.
man fusermount
less /usr/share/doc/fuse-utils/Filesystems.gz
less /usr/share/doc/fuse-utils/README.gz
Dernière modification par cep (Le 03/03/2007, à 19:15)
Hors ligne
#2 Le 01/05/2006, à 19:51
- cep
Re : Écriture sur Ntfs avec Fuse
Alors, quelques remarques après divers petits essais :
- aucun problème pour monter la partition en ligne de commande :
sudo ntfsmount /dev/hda3 /mnt/ntfs -o umask=0000
- pas de problèmes rencontrés sur une utilisation classique de création de fichiers et suppression.
Par contre quelques problèmes rencontrés avec l'utilisation dans /etc/fstab :
- après modification de fstab, quelle que soit la modification, impossible de remonter la partition par un :
sudo mount -a -o remount
Je suis obligé de rebooter la machine systématiquement. Une autre commande ?
Avec cette ligne de configuration dans fstab :
/dev/hda3 /mnt/ntfs ntfs-fuse fmask=0111,dmask=0,succeed_chmod 0 0
impossible de créer un fichier avec accent ou cédille. C'était juste pour test.
Pour cela, la bonne ligne semble être :
/dev/hda3 /mnt/ntfs ntfs-fuse fmask=0111,dmask=0,succeed_chmod,locale=fr_FR.UTF-8 0 0
À explorer d'avantage, mais à priori pas de problème rencontré.
Il faut préciser tout de même que je n'ai pas de dual boot avec Mswindows et que cette partition a été créée pour la circonstance. Mais les fichiers circulent sans problème avec un poste sous MsWindows par le réseau.
Détails du mount :
/dev/hda3 /mnt/ntfs fuse rw,nosuid,nodev,user_id=0,group_id=0,default_permissions,allow_other 0 0
:~$ ls -al /mnt/ntfs
...
-rw-rw-rw- 1 root root
D'autres configurations sont permises bien sûr.
Hors ligne
#3 Le 01/05/2006, à 19:56
- SaLiGoT
Re : Écriture sur Ntfs avec Fuse
as-tu testé la copie/supression/deplacement avec de gros fichiers tel les videos ou des .iso?
Hors ligne
#4 Le 01/05/2006, à 20:46
- cep
Re : Écriture sur Ntfs avec Fuse
Grosse non, vu la taille de la partition
J'essayerai 500 Mo demain.
---
Cette ligne pour le ls et non celle mise par erreur plus haut
:~$ ls -al /mnt
...
drwxrwxrwx 1 root root 4096 2006-04-28 20:06 ntfs
Hors ligne
#5 Le 02/05/2006, à 10:42
- cep
Re : Écriture sur Ntfs avec Fuse
Pour répondre à la demande de SaLiGoT j'ai enregistré une iso de 520 Mo sur la partition (copie avec dd depuis un cdrom), j'ai monté l'iso en loop pour la vérifier puis je l'ai supprimée.
Observations : La création et la consultation du fichier se fait sans problème. Par contre, à la suppression, le fichier n'est plus visible, mais l'espace est toujours marqué comme occupé.
Il faut démonter puis remonter la partition pour que l'espace soit affiché libre.
Il aurait peut-être fallu utiliser ntfsrm ? voir plus bas la liste des utilitaires installés en standard.
Détail des commandes après le dd :
:~$ df -h /dev/hda3
Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
/dev/hda3 863M 520M 343M 60% /mnt/ntfs
:~$ ls -lh /mnt/ntfs/test.iso
-rw-rw-rw- 1 root root 520M 2006-05-02 09:18 /mnt/ntfs/test.iso
:~$ rm -v /mnt/ntfs/test.iso
détruit `/mnt/ntfs/test.iso'
:~$ df -h /dev/hda3
Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
/dev/hda3 863M 520M 343M 60% /mnt/ntfs
:~$ ls -l /mnt/ntfs/test.iso
ls: /mnt/ntfs/test.iso: Aucun fichier ou répertoire de ce type
:~$ find /mnt/ntfs -name test.iso
:~$ sudo fusermount -u /mnt/ntfs
Password:
:~$ sudo ntfsmount /dev/hda3 /mnt/ntfs -o umask=0000,locale=fr_FR.UTF-8
:~$ df -hT /dev/hda3
Sys. de fich. Type Tail. Occ. Disp. %Occ. Monté sur
/dev/hda3 fuse 863M 4,5M 859M 1% /mnt/ntfs
Par curiosité, j'ai fait :
:~$ sudo fusermount -u /mnt/ntfs
:~$ sudo ntfsundelete /dev/hda3
Inode Flags %age Date Size Filename
---------------------------------------------------------------
16 F..! 0% 1970-01-01 0 <none>
17 F..! 0% 1970-01-01 0 <none>
18 F..! 0% 1970-01-01 0 <none>
19 F..! 0% 1970-01-01 0 <none>
20 F..! 0% 1970-01-01 0 <none>
21 F..! 0% 1970-01-01 0 <none>
22 F..! 0% 1970-01-01 0 <none>
23 F..! 0% 1970-01-01 0 <none>
30 FN.. 99% 2006-05-02 519984128 <none>
Files with potentially recoverable content: 1
On voit donc le fichier comme potentiellement récupérable. J'essayerai éventuellement un jour de récuperer un fichier plus petit.
Il faudrait aussi essayer les :
ntfscp: the ‘cp’ (copy) command.
ntfsrm: the ‘rm’ (remove) command.
ntfscat: the ‘cat’ (show contents of file) command.
ntfslabel: rename the volume label.
ntfsls: the ‘ls’ (list directory contents) command.
ntfstruncate: truncate files to a given size.
ntfsmove: the ‘mv’ (move) command.
Utilitaires installés en standard :
/usr/bin/ntfscluster
/usr/bin/ntfscat
/usr/bin/ntfsinfo
/usr/bin/ntfsfix
/usr/bin/ntfsls
/usr/bin/ntfsmount
/usr/sbin/ntfscp
/usr/sbin/mkntfs
/usr/sbin/ntfsclone
/usr/sbin/ntfslabel
/usr/sbin/ntfsresize
/usr/sbin/ntfsundelete
/sbin/mount.ntfs-fuse
/sbin/mkfs.ntfs
Dernière modification par cep (Le 02/05/2006, à 10:43)
Hors ligne
#6 Le 02/05/2006, à 20:03
- SaLiGoT
Re : Écriture sur Ntfs avec Fuse
merci ca m'a l'air d'etre plutot stable, à voir avec une utilisation intensive...
Hors ligne
#7 Le 02/05/2006, à 20:09
- cep_
Re : Écriture sur Ntfs avec Fuse
Oui.
À priori il ne devrait raisonnablemant pas y avoir plus de risques que d'utiliser des drivers pour écrire sur des partitions linux depuis MsWindows
J'ai fait ces tests car j'avais dans mon entourage quelqu'un qui avait besoin de cela. Et je l'ai mis en pratique sur son poste maintenant. Usage essentiellement bureautique.
Cordialement.
cep
#8 Le 12/05/2006, à 22:26
- Damz
Re : Écriture sur Ntfs avec Fuse
Bonsoir et merci pour ce tres bon tuto (à quand dans la doc ?) !
Pour ceux qui ont eu l'erreur en modifiant fstab avec ntfs-fuse ("NTFS-FUSE UNKNOWN FILESYSTEM ERROR"), c'est un bug connu de dapper qui se resout de la maniere suivante :
sudo rm /sbin/mount.ntfs-fuse && sudo ln /usr/bin/ntfsmount /sbin/mount.ntfs-fuse
(merci le forum anglais de Ubuntu !)
Sinon, j'ai une question, comment faire pour que les partitions de type ntfs-fuse s'affiche sur le bureau ? (ça marche pas non plus avec ntfsmount)
edit : je sais comment creer un raccourci, ce que je voulais dire c'est comment faire reconnaitre automatiquement les partitions pour qu elles s'affichent sur le bureau, dans raccourci et dans les differents chemins !
Dernière modification par Damz (Le 12/05/2006, à 22:39)
Hors ligne
#9 Le 13/05/2006, à 18:12
- cep_
Re : Écriture sur Ntfs avec Fuse
Bonsoir Damz,
Le bug a été corrigé. Voir :
http://librarian.launchpad.net/1771959/linux-ntfs.patch
http://librarian.launchpad.net/1771959/linux-ntfs.patch
Cordialement.
cep
#10 Le 13/05/2006, à 20:02
- Grand Hibou
Re : Écriture sur Ntfs avec Fuse
Je suis pas encore sous dapper (breezy là) mais j'ai testé l'écriture sur mes partitons ntfs avec le dernier knoppix live 5.0.
Sans rien avoir à monter du tout ni activer quoi que ce soit, j'ai pu écrire sur mes partitions windows en toute transparence! (juste un petit fichier texte pour tester)
j'ai cru comprendre que knoppix 5.0 utilise aussi fuse, ce serait donc les mêmes drivers et tout et tout sur knoppix et dapper drake là (si on utilise fuse donc)
"Certains disent qu'en faisant marcher le cd de windows vista à l'envers on entendrait des voix vous commandant d'adorer Satan. Mais c'est rien ça. Quand vous le faites marcher à l'endroit, il vous installe windows vista!"
Hors ligne
#11 Le 14/05/2006, à 02:00
- Damz
Re : Écriture sur Ntfs avec Fuse
Bonsoir Damz,
Le bug a été corrigé. Voir :
http://librarian.launchpad.net/1771959/linux-ntfs.patch
http://librarian.launchpad.net/1771959/linux-ntfs.patch
Cordialement.
cep
Ok tres bien mais c'est bizarre car avant-hier avec une dapper à jour j'avais encore le problème !!
Hors ligne
#12 Le 14/05/2006, à 02:12
- NicoA380
Re : Écriture sur Ntfs avec Fuse
ça serait sympa d'avoir un article sur le Wiki du ntfs avec fuse, à côté des pages de FUSE, SshFs, SMB for FUSE et CurlFtpFS
Hors ligne
#13 Le 14/05/2006, à 12:08
- cep
Re : Écriture sur Ntfs avec Fuse
Comme annoncé plus haut, je vais essayer de récupérer un fichier effacé avec rm sur un système ntfs.
Le test va porter sur le fichier fstab.txt. On vérifie qu'il existe :
:~$ ls -l /mnt/ntfs |grep fstab
-rwxrwxrwx 1 cep cep 5380 2006-05-14 11:31 fstab.txt
On efface le fichier et on vérifie :
:~$ rm /mnt/ntfs/fstab.txt
:~$ ls -l /mnt/ntfs |grep fstab
On démonte la partition et, avec la commande ntfsundelete, on liste les fichiers pouvant être récupérés :
:~$ sudo fusermount -u /mnt/ntfs
:~$ sudo ntfsundelete /dev/hda3
Inode Flags %age Date Size Filename
---------------------------------------------------------------
16 F..! 0% 1970-01-01 0 <none>
17 F..! 0% 1970-01-01 0 <none>
18 F..! 0% 1970-01-01 0 <none>
19 F..! 0% 1970-01-01 0 <none>
20 F..! 0% 1970-01-01 0 <none>
21 F..! 0% 1970-01-01 0 <none>
22 F..! 0% 1970-01-01 0 <none>
23 F..! 0% 1970-01-01 0 <none>
27 FN.. 100% 2006-05-14 5380 <none>Files with potentially recoverable content: 1
On peut voir que l'inode 27 peut être récupérée. Je vais donc passer la commande de récupération avec les options -u -d -o :
-u27 inode à récupérer (-u = --undelete [nums] inode )
-d/home/cep/unde comme répertoire de destination ( --destination dir )
-o fstab.txt le nom que portera le fichier récupéré ( --output file )
/dev/hda3 la partition ayant le système de fichiers ntfs
:~$ mkdir unde
:~$ sudo ntfsundelete -u27 -d/home/cep/unde -o fstab.txt /dev/hda3
Inode Flags %age Date Size Filename
---------------------------------------------------------------
27 FN.. 0% 2006-05-14 5380 <none>
Undeleted '(null)' successfully.
D'après le message, la récupération a réussi. On vérifie :
:~$ ls -l unde
total 8
-rw------- 1 root root 6144 2006-05-14 11:31 fstab.txt
:~$ sudo chown cep:cep unde/fstab.txt
:~$ ls -l unde
total 8
-rw------- 1 cep cep 6144 2006-05-14 11:31 fstab.txt
:~$ cat unde/fstab.txtFSTAB(5) Manuel de l’administrateur Linux FSTAB(5)
NOM
fstab - Informations statiques sur les systèmes de fichiers.SYNOPSIS
#include <fstab.h>DESCRIPTION
Le fichier fstab contient des informations sur les différents systèmes
... etc. etc.
En effet, le fichier est complet.
Il faudrait faire ausi des tests sur des fichiers de taille plus importante, bien sûr, mais à ce niveau le test semble concluant.
Pour plus de détails : man ntfsundelete
Hors ligne
#14 Le 14/05/2006, à 12:20
- DEoT
Re : Écriture sur Ntfs avec Fuse
j'ai des infos capital sur mes partoches ntfs
je vous laisse tester
Moi j'attend un peu
"Les jeux vidéos n'affectent pas les enfants : je veux dire si Pac-Man nous avait influencé étant enfant, nous devrions tous courrir en rond dans des pièces sombres, en gobant des pillules magiques tout en écoutant de la musique répétitive."
Hors ligne
#15 Le 19/05/2006, à 22:55
- bobinoo
Re : Écriture sur Ntfs avec Fuse
Bonjour,
J'ai tout bien suivi sauf que je n'ai pas d'executable ntfsmount ni fusermount...
bastien@bastien:/etc$ sudo apt-get install fuse-utils
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
fuse-utils est déjà la plus récente version disponible.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
bastien@bastien:/etc$ sudo ntfsmount
sudo: ntfsmount: command not found
J'ai pourtant bien chargé les modules, et j'ai même redémarrer mais rien n'y fait...
Une ch'tite idée ?
Merci.
Hors ligne
#16 Le 19/05/2006, à 23:13
- bobinoo
Re : Écriture sur Ntfs avec Fuse
Oups, je retire ce que j'ai dit, c'était juste un petit problème de chemin...
Alors maintenant ça fonctionne quand je monte manuellement avec
sudo ntfsmount /dev/hdb4 /home/bastien/windows/ -o umask=0000
mais quand je rajoute une entrée dans le /etc/fstab, la partition ne se monte pas et je n'ai rien dans la log messages.
Ce que j'ai rajouté :
/dev/hdb4 /home/bastien/windows ntfs-fuse fmask=0111,dmask=0,succeed_chmod,locale=fr_FR.UTF-8 0 0
Merci pour vos conseils si vous avez une idée de ce qui cloche...
Dernière modification par bobinoo (Le 19/05/2006, à 23:13)
Hors ligne
#17 Le 19/05/2006, à 23:37
- cep_
Re : Écriture sur Ntfs avec Fuse
Bonsoir,
Quelques vérifications :
:~$ ls -al /sbin/mount.ntfs-fuse
-rwxr-xr-x 2 root root 26552 2005-11-14 21:01 /sbin/mount.ntfs-fuse
:~$ ls -al /usr/bin/ntfsmount
-rwxr-xr-x 2 root root 26552 2005-11-14 21:01 /usr/bin/ntfsmount
:~$ ls -al /sbin/mount.ntfs-fuse
-rwxr-xr-x 2 root root 26552 2005-11-14 21:01 /sbin/mount.ntfs-fuse
Et si ce n'est pas ok :
sudo rm /sbin/mount.ntfs-fuse && sudo ln /usr/bin/ntfsmount /sbin/mount.ntfs-fuse
Puis : sudo mount -a
Voir https://launchpad.net/distros/ubuntu/+source/linux-ntfs/+bug/29865
Aussi, si tu n'as pas créé de groupe spécial, dans fstab tu peux aussi paramétrer :
/dev/hd?? /point_montage ntfs-fuse gid=1000,uid=1000,fmask=0111,dmask=0,succeed_chmod,locale=fr_FR.UTF-8 0 0
Cordialement.
cep
#18 Le 20/05/2006, à 10:05
- bobinoo
Re : Écriture sur Ntfs avec Fuse
J'ai supprimé toutes les instances de ntfs-fuse comme tu me l'as conseillé et ça marche maintenant
Merci bien.
Hors ligne
#19 Le 20/05/2006, à 10:46
- FCDI
Re : Écriture sur Ntfs avec Fuse
super ca marche aussi pour moi
meric
Hors ligne
#20 Le 04/06/2006, à 01:19
- wam
Re : Écriture sur Ntfs avec Fuse
Si cep_ dit qu'on peut écrire sur du ntfs, c'est que c'est vrai.
J'ai donc essayé également, et ça marche. Par contre, un truc tout bête, j'ai un
Failed to set locale to fr_FR.UTF-8. Continue anyway
c'est quoi exactement l'intérêt de locale=fr_FR.UTF-8 ?
Dernière modification par wam (Le 04/06/2006, à 01:38)
Hors ligne
#21 Le 04/06/2006, à 01:49
- Chompitiarve
Re : Écriture sur Ntfs avec Fuse
Si y a un truc que je ne voyais pas venir dans Dapper, c'était bien le support en écriture du NTFS
Je sais que je vais devoir laborier dur pour en réaliser l'usage, mais scrongneugneu, bluffé, le Chompitiarve
(Ouais, pas dur à bluffer, par ailleurs, mais là c'est quand même un morceau, ça devrait faire un scandale !)
Hors ligne
#22 Le 04/06/2006, à 07:49
- cep_
Re : Écriture sur Ntfs avec Fuse
locale=fr_FR.UTF-8 est l'équivalent de nls=utf8 dans le mount classique pour l'affichage des accents et autres joyeusetés.
Il faut passer la commande locale dans un terminal pour avoir la liste des locales disponibles et adapter à sa configuration.
Je l'avais mis pour tests.
Extrait de man ntfsmount :
" locale=
You can set locale with this option. It’s useful if locale enviroment variables are not set before partitions from /etc/fstab had been mounted. "
#23 Le 04/06/2006, à 13:02
- wam
Re : Écriture sur Ntfs avec Fuse
je n'ai pas cette locale, et pourtant, je peux créer un dossier avec un nom bourré d'accents sur une partition NTFS.
Par contre, je n'ai aucun accent dans mes noms de fichiers (une vieille habitude ). C'est peut être pour ça que je ne vois pas de différence...
En tout cas, hier, j'ai créé, effacé, déplacé depuis Linux. Certains fichiers étaient impossible à copier sur la partition, d'autres impossibles à effacer. Quand j'ai testé le reboot sous windows, il n'a pas bronché. Donc ça a l'air sécurisé. Je pense qu'il doit renvoyer une erreur dès qu'il y a un risque
Dernière modification par wam (Le 04/06/2006, à 13:06)
Hors ligne
#24 Le 07/06/2006, à 15:57
- Compte supprimé
Re : Écriture sur Ntfs avec Fuse
Moi personnellement, j'ai d'autres problèmes avec Fuse.
La création de fichier puis leur suppression marche impeccable, par contre, les fichiers déjà existants sur la partition à l'origine sont déjà plus récalcitrants.
En l'occurrence, un truc tout bête comme :
bebert@laptop:/windows/Documents and Settings/Bebert/Guillaume/Bureau$ rename mplayerc.exe MediaPlayerClassic.exe
Bareword "mplayerc" not allowed while "strict subs" in use at (eval 1) line 1.
Bareword "exe" not allowed while "strict subs" in use at (eval 1) line 1.
bebert@laptop:/windows/Documents and Settings/Bebert/Bureau$
ne fonctionne donc pas. Enfin, j'avoue que je n'ai pas essayé les autres commandes fournies par les ntfstools, car elles ne semblent pas être dans la version "officielle" Ubuntu du paquet.
bebert@laptop:/usr/bin$ ntfs
ntfscat ntfscp ntfslabel ntfsresize
ntfsclone ntfsfix ntfsls ntfsundelete
ntfscluster ntfsinfo ntfsmount
bebert@laptop:/usr/bin$ ntfs
Je me teste donc ça demain
Dernière modification par Bibi218 (Le 07/06/2006, à 16:00)
#25 Le 07/06/2006, à 17:00
- cep_
Re : Écriture sur Ntfs avec Fuse
rename utilisé ainsi te donnera le même résultat sur de l'ext3 ou autre.
Si tu veux seulement changer le nom : mv player.exe plapla.exe