解决 Ubuntu 挂载NTFS硬盘时的权限问题
解决 Ubuntu 挂载NTFS硬盘时的权限问题

解决 Ubuntu 挂载NTFS硬盘时的权限问题

内容纲要

解决 Ubuntu 挂载NTFS硬盘时的权限问题

我在装的是Ubuntu 22.04和Windows11的双系统,当插入硬盘后对硬盘文件属性修改时均无效(chmod相关操作我都试个遍),查询后得知原因如下:因为 NTFS 分区格式不支持类 Unix 的权限,Ubuntu挂载NTFS分区的默认目录是/media ,如果把该分区手动挂载到别的目录,那么这个目录权限就会变化,改都改不了,在 mount 时可以设置。

​ 不过呢还是有办法解决该问题的,如果要挂载的这块硬盘想要系统启动过程中被自动挂载那就用方法1,如果这块ntfs硬盘只是临时使用被插入时才使用可以使用方法2手动挂载的方式。

方法一:

ubuntu开机自动挂载ntfs硬盘(转自https://blog.csdn.net/wangliang888888/article/details/104690170)

1 :查看自己的磁盘分析信息

UUID UGD GID 信息

获取磁盘UUID 如下

ls -l /dev/disk/by-uuid

lrwxrwxrwx 1 root root 10 1月 12 21:45 0001AC6D000973C1 -> ../../sda5
lrwxrwxrwx 1 root root 10 1月 12 21:45 0003A300000D437F -> ../../sda6
lrwxrwxrwx 1 root root 10 1月 12 21:45 000ACA5D000CE1C1 -> ../../sda8
lrwxrwxrwx 1 root root 10 1月 12 21:45 000E08DD00019CAA -> ../../sda7
lrwxrwxrwx 1 root root 11 1月 12 21:45 158c8fbb-a3d4-4cb9-a7a5-1ecf13586280 -> ../../sda10
lrwxrwxrwx 1 root root 10 1月 12 21:45 18354ee2-3c44-405a-af87-7c2316c45983 -> ../../sda1
lrwxrwxrwx 1 root root 10 1月 12 21:45 f233ebb4-8c6e-48ca-832c-08ceb567f928 -> ../../sda9
lrwxrwxrwx 1 root root 10 1月 12 21:45 FE14E80014E7BA33 -> ../../sda3
lrwxrwxrwx 1 root root 10 1月 12 21:45 FE3438FC3438BA0B -> ../../sda2

查看自己的 磁盘是在sda? 可以通过 sudo fdisk -l 查询 我推荐一个图形化的工具

GParted 工具

2:查看GID (组ID ) 和UID (用户ID )

可以查看

vim /etc/passwd

3:修改 /etc/fstab 文件 (让系统启动的时候 自动挂载 )

sudo vim /etc/fstab

其中 umask 是权限的 屏蔽 用 777-000 就是你的权限

其中 uid 和 gia 就是 你上面查询的用户 ID 组ID

\# windows ntfs software D
UUID=0001AC6D000973C1 /media/MyPassport     ntfs  defaults,nls=utf8,umask=000,uid=1000,gid=1000    0   0
\# windows ntfs student E
UUID=0003A300000D437F /media/Student     ntfs  defaults,nls=utf8,umask=000,uid=1000,gid=1000    0   0
\# windows ntfs Media F
UUID=000E08DD00019CAA /media/Medai      ntfs  defaults,nls=utf8,umask=000,uid=1000,gid=1000    0   0
\# windows ntfs Else G
UUID=000ACA5D000CE1C1 /media/Else      ntfs  defaults,nls=utf8,umask=000,uid=1000,gid=1000    0   0

比如我修改成了

UUID=5ace08dd-1a42-4113-ad6c-068a1ca4b645 none            swap    sw              0       0
/dev/disk/by-uuid/6C52EB1452EAE236 /home/wenjian ntfs defaults,nls=utf8,umask=000,uid=1000,gid=1000 0 0

4:保存重启即可

方法二:手动挂载方式

由方法一可已经得到ntfs的设备号、uuid、uid、gid。如果硬盘插上时被系统自动挂载,那么先解除绑定关系:

sudo umount /dev/sdc1

然后再手动绑定:

sudo mount -t ntfs -o uid=1000,gid=1000,umask=0000 /dev/sdc1 /media/MyPassport

umask 用户权限的掩码值,实际用户权限:是777减去umask的值,因此权限最后编程了都是777。

dmask 目录权限的掩码值,实际目录权限:是777减去dmask的值
fmask 文件权限的掩码值,实际文件权限:是777减去fmask的值

如果对ntfs中目录和文件属性作区分的话,可以用下面命令绑定:

sudo mount -t ntfs -o uid=1000,gid=1000,dmask=0111,fmask=0000 /dev/sdc1 /media/MyPassport

如果重启过windows,回到Ubuntu发现没有写入权限怎么办?

解决方法:
1.下载ntfs-3g:sudo apt-get install ntfs-3g

2.输入命令:sudo ntfsfix /dev/sda(号对应问题中的Error mounting/dev/sda1中 的数字)

发现上面这样并没有直接解决问题,文件只可读不可写。。。后来查了资料发现,如果上一步操作是在windows里关闭了系统,那么这些硬盘就会进入休眠状态。这时候ubuntu是无法对这些文件进行更改的。解决办法也很简单,你选择重启,然后在选择进入ubuntu系统就可以了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注