将主文件夹映射到 fstab 中的不同位置

Joe*_*ite 5 mount fstab home

我希望将我的/home文件夹映射到机器上的不同位置/驱动器。当我查看 fstab 文件时,我看到以下内容:

/dev/mapper/cl-home     /home            xfs     defaults        0 0
/dev/mapper/cl-swap     swap            swap    defaults        0 0
/dev/sda1   /mnt/store/hd2      ntfs    defaults,auto   0   0
Run Code Online (Sandbox Code Playgroud)

我的问题是:cl in/dev/mapper/cl-home指的是什么?

我可以这样输入吗:

/mnt/store/hd2/home/   /home        ntfs     defaults        0 0
Run Code Online (Sandbox Code Playgroud)

Gil*_*il' 6

在 中/etc/fstab,第一列是卷位置,第二列是目录。该目录是挂载点,即可以访问文件的位置。卷位置指示文件的存储位置;根据文件系统类型,有不同类型的位置。对于“普通”文件系统,存储在磁盘上的文件和卷位置是磁盘分区。对于网络文件系统,例如nfscifs,这表示主机名和主机上的导出路径等。

您当前拥有的 ,/dev/mapper/cl-home使用 Linux 的卷格式 ( LVM )指定一个分区。卷名分为两部分:cl是卷组(覆盖一个或多个磁盘的一部分),home是该卷组内的逻辑卷。系统不关心逻辑卷home和目录/home是否同名,但人类使用同名很方便。

如果你想把你的主目录放在一个现有的 Windows 分区上,那么你不能只在这里更改卷名:/home不会是安装磁盘文件系统的地方。有几种方法可以做到这一点:

  • 您可以使用绑定安装使/mnt/store/hd2/home也可以通过/home. fstab 条目将是

    /dev/sda1  /mnt/store/hd2  ntfs
    /mnt/store/hd2/home  /home  bind
    
    Run Code Online (Sandbox Code Playgroud)

    请注意,您没有在 上安装 NTFS 文件系统/home:它已经安装在/mnt/store/hd2. 您正在另一个位置提供目录树;其他目录树完全位于 NTFS 分区这一事实与此无关。

  • 您可以创建/home一个符号链接到/mnt/store/hd2/home. 在这种情况下/home根本不会出现/etc/fstab

  • 您可以为您的主目录使用绑定安装或符号链接,而不要理会其他目录。

  • 您可以将主目录更改为/mnt/store/hd2/home. 要么使用 GUI 来管理用户帐户,要么使用类似的命令

    sudo usermod --home /mnt/store/hd2/linux-home --move-home joe
    
    Run Code Online (Sandbox Code Playgroud)

我不推荐任何这些选项,因为 NTFS 无法存储所有 Linux 文件名、类型和属性。所有这些选项都有进一步的问题:

  • 绑定坐骑是一个非常有用的工具,但它们也有缺点。文件在所有地点在枚举上市,这对后果locateetc等等。
  • 符号链接没有这些缺点,但有时一些软件会记录您的主目录的位置,并扩展符号链接。由于 AppArmor 策略,拥有符号链接/home也可能导致问题
  • 即使在外面有一个主目录/home也会导致安全策略的问题,尽管现在任何主要发行版都应该没问题。

与其将您的主目录放在 NTFS 文件系统上,不如将它放在 Linux 文件系统上。要从 Linux 访问您的 Windows 文件,请在/mnt/store/hd2. /mnt/store/hd2为方便起见,在您的主目录中创建符号链接到下面的位置。