Ubuntu中FAT32分区的读写权限


14

这是一个奇怪的问题。我有以下分区表

   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

我双启动Win7(sda2)和Ubuntu(sda3),并希望使用FAT32分区跨两个操作系统共享文件。

我按照一些在线教程完成了这些:

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

我挂载文件后,我只能阅读但无法写入。

我检查了文件权限,它变为:

drwxr-xr-x

但是在我卸下它之后就变成了

drwxrwxrwx

我可以读写它。

我不知道我错在哪里。

Answers:


16

尝试使用rw安装并指定类型:

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

其中uid和gid是您的用户帐户的uid和gid。


创建新文件时,umask有效。
geek

userauto 是的选择 fstab 条目;它们在命令行上不是很有用。
quack quixote

是的,我只是将我的一个fstab条目翻译成命令行。留在一些无用的位,但它们也不是完全有害的。
John T

1
sudo mount -t vfat /dev/sda6 /media/FAT32 -o rw,uid=$(id -u),gid=$(id -g)
chefarov

1

对于FAT文件系统,读/写可用性由挂载选项控制。

请参阅联机帮助页 安装 并阅读 UID GID FAT的挂载选项。


1

你有没有尝试用文件写入文件 sudo 命令?那 应该 使用您当前的设置。

要为普通用户工作获取文件写入,您需要使用 uidgid 选项 mount,将分区上文件的所有者设置为当前用户ID。你可能也想要 umask 要么 dmaskfmask 选项。

您的 mount 命令看起来像这样:

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

您对所需命令的顺序错误:

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

发生的事情是/ media / FAT32表示安装之前和之后的不同目录。在它之前是你创建的目录,以及你chmod的777.之后,它是/ dev / sda6中文件系统的根目录。


1

如果您只是忘记命令行并使用Nautilus挂载,则应根据需要进行设置。

从终端,安装前文件夹的权限无关紧要。这是重要的挂载选项。尝试:

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

这会将文件设置为 rw-r--r-- 和文件夹 rwxr-xr-x

如果您想要其他用户/组和权限,例如将文件从fat32复制到具有所需属性的ext4分区,请参阅 mount 手册页。大概你穿上了 umask 与你所穿的相反 chmod


0

有时候我从Linux上丢失了Windows磁盘,我用“-o force”解决了mount问题,例如:

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

在你的情况下,你应该阅读FAT32,但我的帮助。无论如何,请自担风险!


0

我有完全相同的问题,唯一真正有效的是:

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

也可以看看 那个答案


我这样做了,usb密钥仍然是写保护的
Eildosa

你试过了吗 chmod 777 /media/FAT32
lauhub

1
由于某种原因删除“,umask = 0000”工作
Eildosa

0

没有手动安装,fstab线就可以了,

UUID = 1DD9-0D44 / media / exthd / TERABYTE_G vfat rw,noatime,uid = 1000,gid = 1000,user 0 0

(uid,gid属于您的用户,/ media / exthd / TERABYTE_G必须预先创建)

但请注意,mount -a似乎没有正确应用于测试新的fstab线,因此完全重启有帮助。


0

在linux上使用它之前非常重要的修复/检查windows下的磁盘,默认情况下fat / ntfs驱动程序如果在磁盘上发现错误则禁用写入

chkdsk d: /f 

然后

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

如前所述

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.