Car*_*zón 17 permissions windows mount directory ntfs
显然答案在这里:https : //superuser.com/questions/251537/mount-specific-ntfs-directory-on-linux但是它没有按预期工作。
我有一个带有 Windows 7 和 Ubuntu 13.04(从 12.10 升级)的双引导系统,我想访问我的 Windows 7 个人文件夹以进行读写。我根据给定的链接按照说明操作,我的/etc/fstab文件如下所示:
/dev/sda1 /media/windows ntfs ro,umask=0222,defaults 0 0
/media/windows/Users/MyUser/ /home/myuser/Windows ntfs-3g rbind,user,umask=0222,defaults 0 0
/media/windows/Users/OtherUser/ /home/otheruser/Windows ntfs-3g rbind,user,umask=0222,defaults 0 0
Run Code Online (Sandbox Code Playgroud)
它几乎按预期工作。我的 Windows 分区/media/windows/以只读权限打开,我的 Windows 个人文件夹位于~/Windows. 但是,此个人文件夹也是只读的。
注意我在多会话环境中配置它,所以我需要它为我的会话和其他用户的会话工作。我需要每个用户都可以访问并能够从 Linux 写入和读取他们的 Windows 文件夹。
上面链接的超级用户问题是在只读模式下挂载分区和子目录。您只需要可读写的子目录(个人文件夹)。
首先检查你的系统是否可以以读写方式挂载ntfs分区
mount -t ntfs-3g -o rw /dev/sda1 /media/windows
Run Code Online (Sandbox Code Playgroud)
现在测试挂载的 fs 是否可写。如果不是停在这里并在本网站上提出另一个问题。
问题是 RO 挂载分区的子目录不能在 RW 中。所以解决方案是将 RW 中的 windows 分区挂载到一个隐藏且无法访问的地方。因此,让我们将它挂载到非 root 用户无法访问的/root/win上(没有sudo)
以root用户身份执行以下
步骤
1. 在 RW 中挂载 windows 分区
mount -t ntfs-3g -o rw /dev/sda1 /root/win
Run Code Online (Sandbox Code Playgroud)
2.绑定
mount --bind /root/win/Users/MyUser/ /home/myuser/Windows
Run Code Online (Sandbox Code Playgroud)
3.绑定一个只读的windows分区实例
mount --bind /root/win /media/windows
mount -o remount,ro /media/windows
Run Code Online (Sandbox Code Playgroud)
现在一切正常。此外,您可以卸载 Windows 分区,但我警告您在某些系统中它会使绑定的 (@home) 无法访问。代码是umount /root/win
或者,您可以在/media/windows(而不是 /root/win)的RW 中挂载 windows 分区,并立即将其绑定挂载在同一挂载点 (/media/windows) 上,这样任何人(甚至是 root)都不能写入分区(但在用户文件夹上)。
我怀疑链接的超级用户答案是否有效。(虽然我不能尝试。)来自man mount:
请注意,文件系统挂载选项将与原始挂载点上的相同,并且无法通过将 -o 选项与 --bind/--rbind 一起传递来更改。挂载选项可以通过单独的 remount 命令更改,例如:
mount --bind olddir newdir
mount -o remount,ro newdir
Run Code Online (Sandbox Code Playgroud)
我也怀疑--rbind文件系统的一部分是否可能具有不同的文件系统驱动程序(ntfs 与 ntfs-3g)。
当您rbind使用 mount 命令忽略所有选项时,因此不会有任何内容变为可读写。而且由于内核 ntfs 驱动程序不支持写入,显然该rw选项也无济于事。使用 ntfs-3g 驱动程序。
基本上你应该做的是(在终端中):
mount -t ntfs-3g -o ro /dev/sda1 /media/windows
mount --bind /media/windows/Users/MyUser/ /home/myuser/Windows
mount -o remount,rw /home/myuser/Windows
Run Code Online (Sandbox Code Playgroud)
(我认为那--rbind也是不必要的,--bind应该足够了。)
关于问题下的评论:当然您不必重新启动系统进行测试,只需mount像我上面那样使用命令即可。(并使用umount命令卸载。)
在确认这按预期工作后,您只需修改挂载并添加所需的选项:uid、gid、umask 等。
| 归档时间: |
|
| 查看次数: |
45152 次 |
| 最近记录: |