我有两个想要在启动时挂载的分区:
/dev/sda3 /mnt/devel ext4 defaults 0 2
/dev/sda2 /mnt/excess ntfs defaults 0 2
该ext4
分区安装正常(由我拥有,只有我可以写入),但NTFS
由所有人拥有root
R\W 权限的安装。
如何解决这个问题?
drwxr-xr-x 7 amanda amanda 4096 2012-03-14 19:07 devel
drwxrwxrwx 1 root root 4096 2012-03-14 22:38 excess
答案1
必须使用dmask
、fmask
和umask
选项设置 ntfs 和 vfat 文件系统的权限。dmask
控制目录的权限,fmask
控制文件的权限,并umask
控制两者。 由于这些选项设置面具,它们应该是您想要的权限的补充。例如,所有者的 rwx 和其他人的 rx 是 022,而不是 755。
要设置所有者,请分别使用uid
和gid
选项表示用户和组。您可以使用命令 查找您的 UID id -u
。要查找您的 GID,请使用id -g
。这两个值通常都是 1000。
ntfs 的一组常见挂载选项是uid=1000,gid=1000,dmask=027,fmask=137
。这会将您设置为驱动器的所有者,并将权限设置为drwxr-x---
。
以下是 /etc/fstab 正常运行的示例
UUID=EEA2B69CA2B668AB /WIN_C ntfs-3g defaults,nls=utf8,umask=000,dmask=027,fmask=137,uid=1000,gid=1000,windows_names 0 0
UUID=65AEC0E830EA0497 /WIN_D ntfs-3g rw 0 0
为了获得唯一唯一标识符对于您的分区,您可以使用
ls -l /dev/disk/by-uuid/
或lsblk -f | grep -v loop
或gnome 磁盘如果重新启动后没有出现明显错误且分区保持只读状态,或者出现类似以下内容的错误:
Error mounting /dev/sda6 at /media/WindowsDrive:
Command-line `mount -t "ntfs" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,dmask=0077,fmask=0177" "/dev/sda6" "/media/rolindroy/Media Center"' exited with non-zero exit status 14: The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount '/dev/sda6': Operation not permitted The NTFS partition is in an unsafe state.
Please resume and shutdown Windows fully (no hibernation or fast restarting), or mount the volume read-only with the 'ro' mount option
这是因为 Windows 8 和 Windows 10 提供了“快速启动”选项,该选项依赖于“不完全”关机。您可以按照以下步骤禁用快速启动脚步在“电源选项”下。
UUID=01D9318DD8A39810 /run/media/$user/Win11 ntfs-3g uid=$user,gid=$user,umask=0022 0 0
UUID=01D9317B8D647610 /run/media/$user/Storage ntfs-3g uid=$user,gid=$user,umask=0022 0 2
在上面的例子中,win11 将以只读方式安装,而存储将以读写方式安装。
& 它们将在文件管理器中显示为驱动器,因为它们安装在文件夹 /run/media/$user 中,另外不要忘记用您的用户名替换 $user。
答案2
如果你使用权限选项挂载 ntfs 分区,那么 chmod / chown 将起作用
/dev/sda2 /mnt/excess ntfs-3g permissions,locale=en_US.utf8 0 2
然后您就可以
sudo chown your_user:your_user /mnt/excess
比 uid、dmask、fmask 更简单。
答案3
我遇到了一些麻烦,因为当我重新启动磁盘名称时会发生变化......(sda0 到 sdb2)
我通过在 fstab 中使用 UUID 挂载它们解决了这个问题,您可以通过输入以下命令来查看硬盘的 UUID:sudo blkid
备份你的 fstab 文件:
sudo cp /etc/fstab /etc/fstab.orig
确保你仔细检查了 >>,如果你放置了一个 >,你将覆盖你的 fstab!
sudo blkid >> /etc/fstab
如果你还是搞砸了,你可以用原来的 fstab 替换你的 fstab:
sudo cp /etc/fstab.orig /etc/fstab
接下来创建一个文件夹:
sudo mkdir /media/mydrivename
配置 fstab:
sudo vim /etc/fstab
不要忘记在行首用‘#’注释 blkid 的输出!
将其添加到 fstab 文件中,您可以在使用上述命令插入的底部块中找到 UUID。媒体/我的驱动器名称是分区应该被挂载的位置。
UUID=xxxxxxxxxxxxxxxxx /media/mydrivename ntfs permissions,locale=en_US.utf8 0 2
这是我的 fstab 文件:
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during installation
UUID=5d4940cf-5cf5-443a-be11-1f7e551962d1 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda1 during installation
UUID=84b7e5e9-08c3-4641-b28b-99e0255e604d none swap sw 0 0
# 500 GB Webserver harddisk from lr-serv-01
UUID=BA9A48D39A488E37 /media/hdd1 ntfs permissions,locale=en_US.utf8 0 2
# 2 TB Movie share harddisk from lr-serv-01
UUID=7EB09666B09624A5 /media/hdd2 ntfs permissions,locale-en_US.utf8 0 2
#/dev/sda1: UUID="10EC004DEC003010" TYPE="ntfs"
#/dev/sda2: LABEL="system" UUID="88A4FE47A4FE3772" TYPE="ntfs"
#/dev/sda3: LABEL="storage_01" UUID="BA9A48D39A488E37" TYPE="ntfs"
#/dev/sdb1: LABEL="storage_02" UUID="7EB09666B09624A5" TYPE="ntfs"
#/dev/sdc1: UUID="84b7e5e9-08c3-4641-b28b-99e0255e604d" TYPE="swap"
#/dev/sdc2: UUID="5d4940cf-5cf5-443a-be11-1f7e551962d1" TYPE="ext4"
#/dev/sdd1: LABEL="storage_spotnet" UUID="EC6E8F416E8F0394" TYPE="ntfs"
#/dev/sdd2: LABEL="storage_backup_pcs" UUID="6C2699D026999BA0" TYPE="ntfs"
#/dev/sdd5: LABEL="storage_series" UUID="7670ABF770ABBC6D" TYPE="ntfs"
#/dev/sdd6: LABEL="storage_winmx" UUID="564AB81B4AB7F5B9" TYPE="ntfs"
输入以下命令重新启动系统:
sudo reboot
要检查分区是否已安装,您可以输入df -k
。
赋予自己所有权:
sudo chown -R USERNAME:USERNAME /media/mydrivename
在 Ubuntu Server 14.04.01 上执行此操作!
希望这个答案对某人有帮助;-)
答案4
我使用以下命令,我发现它可以在挂载时正确授予我权限(来自双启动系统设置的 NTFS 驱动器):
编辑/etc/fstab
:
UUID 可以在以下位置找到/dev/disk/by-uuid/
(通常映射到/dev/sd*
)
<your uuid>
用您的 UUID替换
UUID=<your uuid> /mnt/e ntfs auto,users,uid=1000,gid=1000,dmask=027,fmask=137 0 0