如何将主目录移动到单独的分区?

van*_*ike 23 linux partition

我想安装另一个发行版,但保留我的主目录。有没有办法将主目录移动到单独的分区?我没有可用于备份数据的外部硬盘驱动器。我想按照此处的建议设置我的分区。

inv*_*ert 14

您的问题是发行版中立的,因此如果我提到您没有的任何具体内容,请使用您身边的等价物。

我真的建议您购买外部备份,相信我,丢失数据是最糟糕的。自行承担风险- 但如果你不能得到一个,这就是你可以做的。

你需要什么

  • /home 目录的大小
  • 可用空间,大于 /home 目录的大小
  • 磁盘分区工具,我推荐gparted

该怎么办

  • 检查 /home 目录的大小(最后的结果将是 home 总数):

    du -h /home

  • 检查新分区是否有足够的可用空间:

    df -h

  • 安装 gparted

    sudo apt-get install gparted

您需要比 /home 目录大小更多的可用空间。如果您没有可用空间,那么您将无法创建该新分区,并且无论如何都需要将您的数据移动到外部。

如果您有空间,请使用 gparted 缩小现有分区,然后使用释放的未分配空间创建一个新分区。一旦你的新分区准备好,记下它是 /dev/sdax(sudo fdisk -l用来查看这个),并将你的 /home 文件复制到它。

在新发行版中使用分区

您提到安装另一个发行版,如果您打算覆盖当前的发行版,那么在安装过程中应该要求您设置分区。这时候你可以把这个分区指定为/home,选择格式化,一切都会好的,你可以跳过下一节。

但是,如果您希望当前的发行版使用新的 /home 分区,请按照以下部分操作:

在现有发行版中挂载分区

我们必须告诉您的操作系统将该分区用作您的新 /home,我们在 fstab 中执行此操作,但首先让我们找到这个新分区的 UUID:

ls -l /dev/disk/by-uuid
Run Code Online (Sandbox Code Playgroud)

交叉引用新分区的 /sdax 并复制它的 UUID,我的看起来像3d866059-4b4c-4c71-a69c-213f0e4fbf32.

备份 fstab:sudo cp /etc/fstab /etc/fstab.bak 编辑 fstab:sudoedit /etc/fstab

这个想法是添加一个新行,将分区挂载到 /home。使用您自己的 UUID,而不是我在这里发布的那个 ;)

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
UUID=3d866059.. /home           auto    default         0       1
Run Code Online (Sandbox Code Playgroud)

保存重启,测试新分区是否挂载到/home。运行df -h以列出所有已安装的分区,/home 现在应该在该列表中。


笔记

  • 如果您不太了解fstab,那么熟悉它可能是一个好主意。慢慢来,想想每一步。
  • 如果您安装新发行版并使用相同的登录名,您的旧 /home 文件将自动归您所有。
  • 这不是一个可以在一篇文章中涵盖的微不足道的话题,但我想我已经掌握了大部分内容。:)