在 Ubuntu 中使用 NTFS 挂载驱动器时,有什么方法可以保持权限?

gol*_*les 7 permissions rsync ntfs

在我的 Web 开发工作中,我几乎只使用 Ubuntu。但有时我需要启动 Windows——在 IE 中检查布局,在 Photoshop 中重新切片合成——并且我希望能够在两者之间共享我的整个本地主机环境。

这是我目前的工作流程:

在 Ubuntu 中:

  • rsync 我正在处理的站点的目录从/var/www/windows/wamp/www(其中 /windows 是我在 fstab 中设置的 Windows NTFS 分区的安装位置)。
  • 将 mysql 数据库从 rsync 同步/var/lib/mysql/windows/wamp/bin/mysql/{mysql version}/data.

关闭,启动 Windows,编辑文件,保存,再次重新启动。返回 Ubuntu,查找更改的文件并将 rsync 返回到/var/www,忽略将文件移动到 NTFS 分区时发生的权限更改。

我不喜欢保留整个开发环境的两个副本,也不喜欢手动同步它们。理想情况下,我想将我的整个 /var/www 文件夹复制到 Windows 分区并符号链接到它,并对我的数据库执行相同的操作。但是,这样做时发生的权限更改会导致无休止的头痛。

所以我的问题分为两部分,我想:

  • 有什么方法可以将文件从 ext4 驱动器分区复制到 NTFS 分区,以一种可以同步回来的方式维护 Unix 权限?

或者,

  • 有没有更好的方法在 Windows 和 Linux 分区之间共享整个本地主机环境?

G. *_* He 6

如果该分区与 ubuntu 和 windows 共享,则可以使用 ntfs-3g.usermap 创建用户映射文件。

假设分区是 /dev/sdXn 挂载在 /NTFS

1)卸载分区

sudo umount /dev/sdXn
Run Code Online (Sandbox Code Playgroud)

2)运行ntfs-3g.usermap(它会在当前目录创建一个文件UserMapping)

 sudo ntfs-3g.usermap /dev/sdXn
Run Code Online (Sandbox Code Playgroud)

3)重新安装

sudo mount /dev/sdXn
Run Code Online (Sandbox Code Playgroud)

4)* 复制 UserMapping 文件

sudo mkdir /NTFS/.NTFS-3G
sudo cp UserMapping /NTFS.NTFS-3G/
Run Code Online (Sandbox Code Playgroud)

现在一切正常。至少它在 Ubuntu 11.10 中对我有用

最新的 (23.12.2015) Tuxera 页面建议复制到/.NTFS-3G/

生成的映射文件写入当前目录中的文件 UserMapping 中。为了文件可用,首先挂载卷,然后将UserMapping复制到挂载目录中的/.NTFS-3G/UserMapping,然后卸载卷并重新挂载。

所以像这样:

sudo mkdir /.NTFS-3G
sudo cp UserMapping /.NTFS-3G/
Run Code Online (Sandbox Code Playgroud)


Pan*_*her 3

好吧,你有几个选择。

首先,您可以尝试 fsdriver

http://sourceforge.net/projects/ext2read/

我不知道该驱动程序的工作效果如何,但如果可以的话,我会按照您主要使用 Ubuntu 的方式走这条路。

另一种选择是使用 Linux 权限挂载 ntfs 分区。您需要在 fstab 中添加一行类似于

UUID=12102C02102CEB83  /media/windows  ntfs-3g  auto,users,permissions  0  0
Run Code Online (Sandbox Code Playgroud)

将您的 uuid 更改为您的 Windows 分区(使用sudo blkid

假设可行,您可以使用链接或挂载绑定(同样,fstab 中的条目)

/media/windows/www /var/www none defaults,bind 0 0 
Run Code Online (Sandbox Code Playgroud)

第二种方法的缺点是如果文件系统有问题,ubuntu 不会调试 ntfs 分区。

编辑:另一种可能的解决方案 - 在 Virtualbox(或 KVM)中运行 Windows 并使用共享文件夹或网络共享(samba)。

祝你好运