在CentOS中重新分区/home分区

在CentOS中重新分区/home分区

我有一个 CentOS 7 系统,其 /home 分区太大。我希望减小它的大小,但它是 XFS,所以这几乎是不可能的。由于我无论如何都没有太多用户数据(当前只有 1 个用户),是否可以 tar 整个分区数据,将其复制出来,删除分区,将其重新分区为较小大小的 ext4?

如果是这样,执行此操作的命令是什么?

答案1

由于这不是根分区 ( /),因此您应该能够在不丢失数据的情况下执行此操作,如果您以普通用户身份登录,则主目录下的各种文件都会更新(来自后台电子邮件阅读、冲浪等)。您不想丢失在备份和恢复之间到达的电子邮件)。

能够重新分区的重要一点是,您可以以 root 身份登录,也可以以没有主目录的用户身份登录/home。这是为了能够/home在不使用它的情况下卸载它,并重新分区和重新格式化它。

从图形界面以 root 身份登录可能是不可能的,或者至少不建议这样做(X,我没有运行 CentOS 7,无法检查)。但如果您在这些方面经验较少,图形工具可能会更容易使用。如果您已登录并拥有正常桌面,则如果出现问题,您仍然可以使用互联网搜索解决方案。因此,接下来我将尽量减少对使用命令行工具的依赖。

您可以将现有用户的/home/XYZ目录移动到eg /home2/XYZ(位于根分区上),但该目录下可能有太多数据,无法执行此操作。因此我建议执行以下步骤(因为commands您必须打开终端):

  1. xyz使用主目录创建一个新的临时用户/home2/xyz
  2. 确保该用户可以发出sudo命令
  3. 注销并以此用户身份登录(使用 GUI,而不是通过login:提示符
  4. 卸载/home并重新安装它以确保当前没有任何东西在使用它:

    sudo umount /home
    sudo mount /home
    
  5. 检查备份介质是否可用,让我们假设这是在下面/mnt/USB01(通常您检查备份是否适合,但您指出没有太多数据,所以我假设它适合)。

  6. 使用tarcpio从下面进行备份/home(这比复制单个文件更快,如果备份介质是 VFAT,甚至应该可以工作)。

    sudo  tar --create --verbose --file=/mnt/USB01/homebup.tar.bz2 -C /home .
    
  7. 检查您是否可以读回刚刚创建的文件:

    sudo tar tvf /mnt/USB01/homebup.tar.bz2
    
  8. 检查/home安装了哪个分区,记下该分区(例如 sdX2)并卸载:

     mount | grep -f /home
     umount /home
    
  9. 注释掉/homein的条目/etc/fstab,您可能有 UUID 而不是sdX2,您可以通过执行以下操作查找 UUID 属于哪个sdX

    ls -l /dev/disk/by-uuid/ | grep -F sdX2
    
  10. sdX通过删除“sdX2”分区并重新创建它,对您在上一步中找到的分区的驱动器进行重新分区(如果较小,您可以立即创建其他分区,或推迟创建)
  11. 在新创建的分区之一上选择您的文件系统(您可以sdX2再次使用,但该分区将有一个新的 UUID,因此请查找它)
  12. 编辑/etc/fstab并确保您可以/home通过执行以下操作进行安装:

    mount /home
    

    (通过这种方式编辑/etc/fstab和安装,您将在重新启动时安装分区)。

  13. (可选)重新启动并确保/home已安装
  14. 使用以下命令恢复数据/home

    sudo tar xvf /mnt/USB01/homebup.tar.bz2 -C /home
    
  15. 重启并正常登录
  16. 删除临时用户帐户

答案2

你可能会看一下类似的东西克隆齐拉。使用小型 USB 记忆棒上的 Clonezilla 以及将数据备份到(本地或网络)的某个位置,您几乎可以完全按照您所描述的操作 - 将其复制出来,删除分区,使用不同的文件系统和较小的大小重新对其进行分区,然后恢复它。直接使用分区映像(通常是最简单的选择)从大到小的过程中效果不太好,但您仍然应该能够使其工作。一探究竟!

相关内容