我如何从另一个驱动器符号链接我的主文件夹?

我如何从另一个驱动器符号链接我的主文件夹?

更具体地说,我想将我的主帐户的用户文件夹放在另一个具有更多空间的磁盘上,但将我的其他较小帐户保留在我的 SSD 上。我能够将我的用户文件夹复制到另一个磁盘,但现在我需要将其链接到我的 SSD 上的主文件夹,我希望它可以通过正常启动访问,请不要告诉我我所做的不是最好的事情,我只是想要一个答案。如何让它创建一个从 /home/username 到 /extra-home/username 的链接,并在加载用户文件夹时被系统识别?

答案1

请记住,您的权限需要相同。除了符号链接之外,在较新的发行版和文件系统上,作为 root,您还可以使用 bind-mount:

mkdir /home/username 
mount --bind --verbose /extra-home/username /home/username

这对于允许通过守护进程“通过”目录访问子目录很有用,/home这些守护进程被配置为避免通过符号链接(apache、ftpd 等)进行路径访问。

当然,您必须记住(或初始化脚本)在重新启动时进行绑定。

答案2

根据关于超级用户的疑问,这是可能的。

您可以使用以下命令创建符号链接:

ln -s /extra-home/username /home/username

如果它由于某种原因不起作用,您可以删除符号链接,将目录移回并重新启动计算机。

答案3

我会尝试这个:

以不同用户身份登录时,在 root shell(例如)中,将sudo -i的内容复制到并确保新位置归 所拥有:/home/username/extra-home/usernameusername

# cp -p /home/username /extra-home/
# chown username:username /extra-home/username

将原始/home/username/目录移动到安全的地方:

# mv /home/username /root/

创建符号链接:

# ln -s /extra-home/username /home/username

通过打开另一个终端窗口并运行以下命令来验证它是否按预期工作su

$ sudo su username

如果一切看起来都很好,至少从终端来看(内容/home/username/按预期出现),然后注销并重新登录(我假设你使用的是 Ubuntu 桌面),它应该可以正常工作。但是,如果不能,只需删除符号链接并将存档的主文件夹移回其原始位置。

答案4

我的经验是:符号链接总是能很好地工作。权限、用户服务等有时不遵循或与符号链接一起工作:所以你可能会得到须藤不工作,用户配置应用程序不能正常工作等等......

在我看来,最好的解决方案是将所有 home 放在同一个分区上,并将其挂载在 /home 上。如果您有多个备用磁盘,您可以:

  • 购买 RAID 卡
  • 把所有想要供用户使用的磁盘放在 RAID 卡上。
  • 将 RAID 配置为 JBOD(磁盘将合并空间)。在 PC 启动期间,RAID 卡会在操作系统启动之前启动 BIOS 来配置驱动器。还有其他 RAID 配置,但这取决于您的需求。
  • 现在您有一个仅用于 /home 的新单个巨大磁盘
  • sudo copy -pr新驱动器上的 /home 文件夹
  • 编辑 /ect/fstab 将驱动器挂载到 /home

这样,您可以在需要时随时大幅增加 /home 的大小,只需向 RAID 添加另一个驱动器即可。

相关内容