更改 /home 和其他相关位置

更改 /home 和其他相关位置

在我的笔记本电脑上,我安装了 Windows 8(在内部固态硬盘上)。我还有另一个外部硬盘,上面安装了 Ubuntu(上面有 EFI、、和交换分区)//home

我的所有数据都位于内置驱动器上,因为我不会随身携带硬盘。因此,我的/home文件夹(以及所有子文件夹)实际上不包含任何内容。

这不是什么大问题,但很不方便。要访问我的任何数据,我必须手动选择我的内置驱动器,并浏览大量其他文件夹。例如,我的大部分重要数据都位于/media/D0BC1650BC163208/Users/my_user_name/skydrive

/home当然,我可以创建符号链接来到达我想要的任何地方,但如果我可以简单地将文件夹更改为(到my_user_name)、我的文档文件夹等,那就太好了。

当然,我知道我必须确保始终先安装内部驱动器。

有没有简单的方法可以做到这一点?

我认为可能是最简单的方法,但我不确定。

答案1

从技术上来说,可以使用在您的 fstab 中绑定挂载。但是,如您所建议的那样,将主目录放在 Windows NTFS 文件系统上会导致问题,因为 NTFS 不支持 Unix 权限。(例如,sshd检查目录中的权限~/.ssh,如果权限太宽松,则拒绝启动。)

更改文档文件夹位置,例如你链接的答案,是一个更好的解决方案。行为良好的应用程序将默认在“另存为”对话框中选择内置驱动器上的位置,等等;它们仍会将其配置存储在 Linux 主目录中,从而避免权限问题。

答案2

我有同样的任务,我运行了这些命令(在 12.04LTS 中)来解决它,使用 URL 的解释: http://efectoreinaroja.wordpress.com/2009/01/25/cambiar-ubicacion-de-directorio-home/(西班牙语)并且它工作完美!:

  1. 我在 ntfs 中有一个用于 Windows 数据的分区:名为 /sda6,但您必须使用 ntfs 分区)注意,此分区不能包含 Windows 操作系统!并且您必须安装了“ntfs-3g”。
  2. 我将此分区挂载在 /media 中(但您也可以使用 /mnt):sudo mkdir /media/whome sudo mount /dev/sda6 /media/whome
  3. 现在我将目录 /home 复制到目录 /media/whome(使用 cpio 而不是 cp)cd /home/ sudo find . -depth -print0 | cpio --null --sparse -pvd /media/whome/
  4. 现在我卸载分区:sudo umount /media/whome
  5. 现在要防止将旧主页保留在备份文件夹中:sudo mv /home /respaldo
  6. 现在挂载新分区 /home: sudo mkdir /home sudo mount /dev/sda6 /home
  7. 现在最重要的是,每次启动系统时都要挂载这个分区:sudo cp /etc/fstab /etc/fstab.bk(安全备份)sudo gedit /etc/fstab

    并在末尾添加此行:/dev/sda6 /home ntfs nodev,nosuid 0 2

就这样

如果一切顺利,那么您可以删除备份主数据:rm -r /respaldo

相关内容