This is a strange problem: I dual boot Win7 (sda2) and Ubuntu (sda3) and wanted to use the FAT32 partition to share files across two OS' with the following partition table
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- I followed a tutorial, issuing:
sudo mkdir /media/FAT32 sudo chmod 777 /media/FAT32 sudo mount /dev/sda6/ /media/FAT32 - After I mounted
/dev/sda6, I can only read but am unable to write to it.- I checked the directory permissions, which are
drwxr-xr-x, but after I unmounted it, it becomesdrwxrwxrwxand I can read and write to it.
- I checked the directory permissions, which are
I don't know where I've went wrong.
09 Answers
Try mounting with rw and specify the type:
mount -t vfat /dev/sda6 /media/FAT32 -o rw,uid=xxx,gid=xxxwhere uid and gid are that of your user account.
6For FAT filesystems, read/write availability is governed by the mount options.
Consult the manpage for mount and read about uid and gid mount options for FAT.
Have you tried writing to the files with a sudo command? That should work with your current setup.
To get file writes for your normal user working, you need to use the uid and gid options to mount, to set the owner of files on the partition to your current userID. You probably also want either umask or dmask and fmask options.
Your mount command would look like this:
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 If you simply forget about command line and mount with Nautilus, it should set it as you want.
From the terminal, the permissions of the folder before mounting doesn't matter. It's the mount options that count. Try:
mount -t vfat /dev/sda6 /media/FAT32 -o rw,uid=xxx,gid=xxx,umask=133,dmask=022This will set files to rw-r--r-- and folders to rwxr-xr-x.
If you want other user/group and permissions, for instance to copy files from fat32 to the ext4 partition with the desired attributes, better consult the mount manpage. Roughly you put on umask the opposite of what you would put on chmod.
I had exactly the same problem and the only thing that actually worked is:
sudo mount -t vfat /dev/sda6 /media/FAT32 -o rw,umask=0000See also that answer
3It's important to repair/check the disk in Windows before using it on Linux, as, by default, FAT/NTFS drivers disable write if they find errors on the disk:
- Windows:
Chkdsk D: /f - Linux:
sudo mount -t vfat /dev/sdc1 /media/FAT32 -o rw,uid=$(id -u),gid=$(id -g)
You have the wrong order on the commands you want:
sudo mkdir /media/FAT32
sudo mount /dev/sda6 /media/FAT32
sudo chmod 777 /media/FAT32What is happening is that /media/FAT32 represents different directories before and after the mount. Before it's the directory you made, and which you chmod'ed 777. After, it's the root directory of the filesystem in /dev/sda6.
1Without manually mounting, a fstab line does the trick:
UUID=1DD9-0D44 /media/exthd/TERABYTE_G vfat rw,noatime,uid=1000,gid=1000,user 0 0uid,gidare of your user;/media/exthd/TERABYTE_Gmust be pre-created- If
mount -aisn't applying properly to the newfstabline, reboot to resolve
Sometimes I lose the Windows disk from Linux and I solve using mount -o force:
sudo mount -t ntfs-3g /dev/sda1 /media/win -o force