操作方法:使用 ntfs-3g 将 Windows、OS X 和 Linux 主文件夹合并为一个(三重启动)

操作方法:使用 ntfs-3g 将 Windows、OS X 和 Linux 主文件夹合并为一个(三重启动)

我正在考虑将我的 Linux 主分区合并到 c:\Users,这样当我在 Windows 中启动时,我的所有文件都在 c:\Users\trusktr 中,而当我在 Linux 中启动时,我会将 c:\Users 安装为我的 /home,这样我就可以访问 /home/trusktr 中的文件。我试图让在两个操作系统之间共享文件(包括点文件等)变得容易,这样 vim 和 bash 等东西在不同的操作系统中表现完全相同,以方便使用。

我认为我只需将所有内容从 linux /home 复制到 c:\users 即可,这样所有内容默认都具有 777 权限(我不介意,我是唯一的用户,因此不存在安全问题)。这样可行吗?

然后我发现了 ntfg-3g.usermap。这似乎允许我chmod 655 /some/file在 Linux 中执行类似操作,而且可以正常工作。我很好奇,一旦我将 Linux 用户映射到 Windows 用户,它是否还会保留我的所有文件权限。

所以,我的主要问题是我正在运行 ntfs-3g.usermap,一切都很好,直到它要求我输入一个与文件关联的组 ID,但我不知道,所以我按下回车键,然后它似乎出错了。

输出结果如下。前几个User :提示Group :都是空的,因为我按了回车键。然后我输入了一个 1002 作为提示User :,之后我就遇到了一个我不知道如何处理的问题。

This tool will help you to build a mapping of Windows users
to Linux users.
Be prepared to give Linux user id (uid) and group id (gid)
for owners of files which will be selected.
"/dev/sda4" opened

* Scanning "/dev/sda4" (two levels)
* Search for "Documents and Settings" and "Users"

Under Windows login "admin"
   file "AppData" has no mapped group
By which Linux login should this file be owned ?
Enter gid of login, or just press "enter" if this file
does not belong to a user, or you do not known to whom

Group :

Under Windows login "admin"
   file "Contacts" has no mapped owner
By which Linux login should this file be owned ?
Enter uid of login, or just press "enter" if this file
does not belong to a user, or you do not known to whom

User :

Under Windows login "Administrator"
   file "AppData" has no mapped group
By which Linux login should this file be owned ?
Enter gid of login, or just press "enter" if this file
does not belong to a user, or you do not known to whom

Group :

Under Windows login "Public"
   file "AppData" has no mapped group
By which Linux login should this file be owned ?
Enter gid of login, or just press "enter" if this file
does not belong to a user, or you do not known to whom

Group :

Under Windows login "trusktr"
   file "Desktop" has no mapped owner
By which Linux login should this file be owned ?
Enter uid of login, or just press "enter" if this file
does not belong to a user, or you do not known to whom

User : 1002
* Search for other directories /

   file "CORE.xml" has no mapped group
By which Linux login should this file be owned ?
Enter gid of login, or just press "enter" if this file
does not belong to a user, or you do not known to whom

Group :
"/dev/sda4" closed

You have defined no group, this can cause problems
Do you accept defining a standard group ?
y

* Creating file UserMapping
# Generated by usermap for Linux, v 1.1.4
:1002:S-1-5-21-1991058912-2816109820-761292756-513
1002:1002:S-1-5-21-2516108075-519671461-2442963378-1001
Undecided :
   S-1-5-21-2516108075-519671461-2442963378-513
   S-1-5-21-2516108075-519671461-2442963378-1002

* You will have to move the file "UserMapping"
  to directory ".NTFS-3G" after mounting

因此 ntfs-3g.usermap 命令完成后生成的内容是:

# Generated by usermap for Linux, v 1.1.4
:1002:S-1-5-21-1991058912-2816109820-761292756-513
1002:1002:S-1-5-21-2516108075-519671461-2442963378-1001

知道我该怎么办吗?

几分钟后编辑:

当我在 Linux 中安装 NTFS Windows 分区时,设置 UserMappings 文件后,ls -l /mnt/windows-partition/Users/trusktr/显示文件的所有权为 1002:1002。通常,当我在 Linux 中并使用 进行检查时,它们应该是 1002:100。ls -l /home/trusktr/因此,我打开了 UserMappings 文件,发现它包含后面1002:1002跟着其他内容,所以我将其更改为,1002:100现在当我列出 NTFS 分区上的文件时,它们会显示与我在 Linux 中拥有的所有权相匹配的正确所有权。

因此,编辑后的 ​​UserMappings 文件现在如下所示(更改位于第二行的开头):

# Generated by usermap for Linux, v 1.1.4
:1002:S-1-5-21-1991058912-2816109820-761292756-513
1002:100:S-1-5-21-2516108075-519671461-2442963378-1001

我仍然不确定 UserMappings 文件中的第一行是做什么用的。我猜它与拥有 c:\Windows\CORE.xml 文件的组有关。

希望这个方法有效!我现在将使用 rsync 将 /home/trusktr 中的所有文件合并到 c:\Users\trusktr(以及从 /home 到 c:\Users 的其他用户文件夹),然后尝试在 Linux 中将 c:\Users 挂载为我的 /home...

编辑,7小时后:

我成功了!我成功地在 Windows 和 Linux 之间共享了我的主文件夹。我可以启动任一操作系统,并在桌面上拥有完全相同的文件。现在我只需要测试一段时间,看看它是否稳定。我会发布我所做工作的更新...

编辑,七个月后:

在创建用户映射并将其放入 Windows 分区的 /.NTFS-3G 文件夹中后,您可以毫无问题地启动 Windows。对于 Linux,/Users 文件夹现在应是我的主目录。这可以在 fstab 中设置。基本上,告诉它挂载 Windows 分区,然后告诉它将 Users 文件夹挂载为 /home。例如:

# <file system> <dir>       <type> <options> <dump> <pass>

# mount the windows partition somewhere.
/dev/NTFS-part /mnt/windows ntfs-3g defaults         0 0

# then bindount the Users folder as /home.
/mnt/windows/Users /home none bind       0 0

编辑,24个月后:

我现在正在执行与上述类似的步骤,但使用 Linux 和 OS X 进行双启动,在两者之间使用 ntfs-3g 进行 NTFS 转换。下一步是将 Windows 添加到组合中,类似于上述步骤,并在所有三个操作系统之间建立三重启动共享主文件夹。:}

相关内容