web-dev-qa-db-fra.com

permission de lecture et d'écriture pour la partition FAT32 dans Ubuntu

C'est un problème étrange. J'ai la table de partition suivante

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      102400    7  HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2              13        5737    45978624    7  HPFS/NTFS
/dev/sda3            5738       10600    39062047+  83  Linux
/dev/sda4           10601       19457    71143852+   5  Extended
/dev/sda5           10601       11208     4883728+  82  Linux swap / Solaris
/dev/sda6           11209       15033    30720000    b  W95 FAT32
/dev/sda7           15033       19457    35537920    7  HPFS/NTFS

Je double démarrage Win7 (sda2) et Ubuntu (sda3) et je voulais utiliser la partition FAT32 pour partager des fichiers sur deux systèmes d'exploitation.

J'ai suivi des tutoriels en ligne et les ai suivis:

Sudo mkdir /media/FAT32
Sudo chmod 777 /media/FAT32
Sudo mount /dev/sda6/ /media/FAT32

après avoir monté le fichier, je ne peux que lire, mais je ne peux pas y écrire.

J'ai vérifié l'autorisation du fichier, il devient:

drwxr-xr-x

mais après avoir démonté le il devient alors

drwxrwxrwx

et je peux lire et écrire.

Je ne sais pas où je me suis trompé.

16
Dean

Essayez de monter avec rw et spécifiez le type:

mount -t vfat /dev/sda6 /media/FAT32 -o rw,uid=xxx,gid=xxx

où uid et gid sont ceux de votre compte utilisateur.

18
John T

Vous avez le mauvais ordre sur les commandes que vous voulez:

Sudo mkdir /media/FAT32
Sudo mount /dev/sda6 /media/FAT32
Sudo chmod 777 /media/FAT32

Ce qui se passe, c'est que/media/FAT32 représente différents répertoires avant et après le montage. Avant c'est le répertoire que vous avez créé et que vous avez chmodé 777. Ensuite, c'est le répertoire racine du système de fichiers dans/dev/sda6.

1
jneves

Avez-vous essayé d'écrire dans les fichiers avec une commande Sudo? Cela devrait fonctionner avec votre configuration actuelle.

Pour que les écritures de fichiers fonctionnent correctement, vous devez utiliser les options uid et gid avec mount, pour définir le propriétaire des fichiers de la partition sur votre ID utilisateur actuel. Vous voulez probablement aussi les options umask ou dmask et fmask.

Votre commande mount ressemblerait à ceci:

Sudo mount -t vfat /dev/sda6 /media/FAT32 -o uid=1000,gid=1000,umask=022
# assuming your user's UID is 1000, GID is 1000
# umask=022 sets permission mode 755 for all files on the partition
1
quack quixote

Si vous oubliez tout simplement la ligne de commande et que vous montez avec Nautilus, vous devez le définir à votre guise.

Depuis le terminal, les autorisations du dossier avant le montage importent peu. Ce sont les options de montage qui comptent. Essayer:

mount -t vfat /dev/sda6 /media/FAT32 -o rw,uid=xxx,gid=xxx,umask=133,dmask=022

Cela définira les fichiers sur rw-r--r-- et les dossiers sur rwxr-xr-x.

Si vous souhaitez que d'autres utilisateurs/groupes et autorisations, par exemple pour copier des fichiers de fat32 vers la partition ext4 avec les attributs souhaités, consultez plutôt la page de manuel mount. En gros, vous mettez umask le contraire de ce que vous feriez pour chmod.

1
user39559

Pour les systèmes de fichiers FAT, la disponibilité en lecture/écriture est régie par les options de montage.

Consultez la page de manuel relative à mount et lisez les informations concernant id et gid options de montage pour FAT.

1
geek

Très important réparation/vérification du disque sous Windows avant de l'utiliser sur Linux, par défaut les pilotes fat/ntfs désactivent l'écriture s'ils trouvent des erreurs sur le disque

chkdsk d: /f 

Ensuite

Sudo mount -t vfat /dev/sdc1 /media/FAT32 -o rw,uid=$(id -u),gid=$(id -g)

comme proposé avant

0
intika

J'ai eu exactement le même problème et la seule chose qui a réellement fonctionné est:

Sudo mount -t vfat  /dev/sda6 /media/FAT32 -o rw,umask=0000

Voir aussi cette réponse

0
lauhub

Sans montage manuel, une ligne fstab fait l'affaire,

UUID = 1DD9-0D44/media/exthd/TERABYTE_G vfatrw, noatime, uid = 1000, gid = 1000, utilisateur 0 0

(uid, gid sont de votre utilisateur,/media/exthd/TERABYTE_G doit être pré-créé)

mais notez que mount -a ne semble pas appliquer correctement pour tester la nouvelle ligne fstab, un redémarrage complet est donc utile.

0
Angelo Dureghello

Parfois, je perdais le disque Windows sous Linux et je résolus en utilisant mount avec "-o force", comme dans l'exemple suivant:

Sudo mount -t ntfs-3g /dev/sda1 /media/win -o force

Dans votre cas, étant FAT32, vous devriez lire, mais je peux vous aider. Quoi qu'il en soit, essayez à vos risques et périls!

0
Germán Arduino