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


22

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


1
您总是可以重新分区,然后从备份中还原/ home。您有备份,不是吗?
KeithB

Answers:


13

您的问题是与发行无关的,因此,如果我提到您没有的任何特定内容,请使用与您相同的内容。

我真的建议您购买一个用于备份的外部设备,相信我,丢失数据是最糟糕的。自行承担风险 -但是,如果您无法获得,则可以执行以下操作。

你需要什么

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

该怎么办

  • 检查/ home目录的大小(最后一个结果将是home total):

    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

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

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

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

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
UUID=3d866059.. /home           auto    default         0       1

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


笔记

  • 如果您不太熟悉fstab,可能是个好主意。只要花点时间思考一下每个步骤。
  • 如果您安装新发行版并使用相同的登录名,则旧的/ home文件将自动归您所有。
  • 这不是一个帖子中涉及的琐碎话题,但我想我大部分都知道了。:)

我正在尝试使用gparted,但无法调整/分区的大小。您对如何调整根分区的大小有什么建议?我可能会使用Parted Magic从现场CD上做到这一点。
vanillaike 2010年

1
是的,您需要从Live CD中执行此操作,因为文件系统是由正在运行的OS挂载的。Ubuntu Live CD,Knoppix或Parted Magic均可使用。
反转

3

帖子标题和您的问题使我有些困惑。你想分开你的home划分为一个分区,还是只想重新安装并保持不变home

如果您要保留的是重新安装整个操作系统,home则可以备份您的home到不受安装影响的位置,然后再将其与权限修复一起还原(用于chown -R username:groupname确保所有权正确) )。

如果您想遵循一些最佳实践并将自己分开,home则这里是您需要的指南。它是为Ubuntu开发的,但我认为其他发行版也有同样的事情。


对困惑感到抱歉。我想将自己的房屋分成一个分区
vanillaike 2010年

警告:“权限修复”中的链接当前会跳到两个不同的网站,最后一个会提示一个网站将Adobe Flash安装在一个看起来非常狡猾的安装程序对话框副本中。
user66001 2013年

我取消链接“权限修复程序”,并复制了我发现已存档的原始文章的建议中的内容。
mattdm

2

假设您已经有一个单独的分区(如果没有,则可能要使用gparted或类似的东西来创建一个分区),只需执行以下操作(最好是root用户):

 cp -R /home/whatever /path/to/destination
 mv /home/whatever /home/whatever.orig
 ln -s /path/to/destionation /home/whatever 

然后假设一切正常(应以用户身份登录并进行测试)

 rm -rf /home/whatever.orig 

这会将整个目录(和所有内容)复制到目标安装点,重命名原始主目录(以防万一,在此过程中发生问题,然后我们可以恢复),从新位置创建到原始主目录的符号链接目录(所有内容(如/ etc / passwd)仍指向该目录),然后假设它起作用,则删除我们制作的备份副本,然后将副本放在目标文件系统中。


这实际上并没有/home用作新分区的挂载点。这只是符号链接。
马修·弗拉申

实际上是同一件事。仅仅因为/ home / username是一个符号链接,并不意味着它就行不通。如果要将所有用户帐户放在另一个分区上,只需将'cp -R'行更改为/ home而不是/ home / username
Matt Simmons 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.