如何在/ etc / fstab中正确挂载NTFS分区?

经过一个令人讨厌的插曲(我的第二个,你认为我已经学习)由无监督的自动播客下载填充我的整个分区引起的,我终于将~/Music移动到它自己的分区。 我正在使用的分区已经格式化为NTFS(这是天才部分:当我三年前买这台电脑时,我实际上是用20G音乐分区设置的,因为我之前遇到过这个问题,但我从来没有我把自己组织起来存放音乐。这就是我的背景故事。这就是我现在所需要的:

我有两个分区,我想在启动时开始安装:

 /dev/sda3 /mnt/devel ext4 defaults 0 2 /dev/sda2 /mnt/excess ntfs defaults 0 2 

ext4 partion安装得很好(由我拥有,只能由我写),但是root拥有的ntfs挂载具有读写权限。 我不知道如何解决这个问题。 有没有关于ntfs的古怪或者我在其他地方做了什么导致这个问题?

 drwxr-xr-x 7 amanda amanda 4096 2012-03-14 19:07 devel drwxrwxrwx 1 root root 4096 2012-03-14 22:38 excess 

必须使用dmaskfmaskumask选项设置ntfs和vfat文件系统的权限。 dmask控制目录的权限, fmask控制文件的权限,以及umask控件。 由于这些选项设置了掩码 ,因此它们应该是您想要的权限的补充。 例如,所有者的rwx和其他人的rx是022而不是755。

要设置所有者,请分别对用户和组使用uidgid选项。 您可以使用命令id -u找到您的UID。 要查找您的GID,请使用id -g 。 这些值通常都是1000。

ntfs的一组常见挂载选项是uid=1000,gid=1000,dmask=027,fmask=137 。 这drwxr-x---您设置为驱动器的所有者,并将权限设置为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 

如果在重新启动后没有可见的错误,并且分区保持只读或者您收到类似于以下内容的错误:

 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和10提供了“快速启动”选项,该选项取决于“非完整”关闭。 您可以按照“电源选项”下的这些步骤禁用快速启动。

如果使用permissions选项挂载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更容易。

我有一些麻烦,因为当我重新启动磁盘名称更改…( sda0到sdb2

我通过在fstab中通过UUID挂载来修复问题,您可以通过输入以下sudo blkid查看硬盘的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。 media / mydrivename是应该挂载分区的位置。

 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). # #       # / 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上做的

希望这个答案有助于某人;-)

可能不是一个好的解决方案,但您始终可以将用户ID映射到您自己的ID或组ID:

这里只是一个例子,我的用户ID是1000

/dev/sda5 /mnt/excess ntfs defaults,uid=1000,rw 0 0

在这种情况下,所有安装的文件都由用户ided 1000拥有

您可以使用ntfs-config GUI实用程序在fstab中安装NTFS分区。 并且可以轻松启用/禁用读写function。

挂载NTFS Windows分区FSTAB

更详细的指南: 在启动时在Ubuntu中安装Windows分区

请注意,如果您使用标签安装ntfs驱动器并希望能够更改此驱动器上的目录或文件的权限,那么以下工作正常(编辑/ etc / fstab,例如sudo nano / etc / fstab然后添加) :

 LABEL=Portable_HD_2TB /media/mintbox2/Portable_HD_2TB ntfs permissions,defaults 0 2 

以下不允许您更改目录或文件的权限:

 LABEL=Portable_HD_2TB /media/mintbox2/Portable_HD_2TB ntfs defaults 0 2 

我使用以下内容,我发现正确的安装权限(从双启动系统设置NTFS驱动器):

编辑/etc/fstab

UUID可以在/dev/disk/by-uuid/ (通常映射到/dev/sd*

用您的UUID替换

UUID= /mnt/e ntfs auto,users,uid=1000,gid=1000,dmask=027,fmask=137 0 0