如何在 Linux 中合并分区而不丢失数据?

如何在 Linux 中合并分区而不丢失数据?

因此,我正在为一个知名网站开发几台虚拟机,它们的 /home 分区与 /(根目录)分区分开。所有者要求我合并这两个分区,这样 /home 就不会被单独分区。我对分区非常不擅长,而谷歌在这方面的表现也很糟糕。在 /home 上执行 df -T 时,我没有看到任何文件系统信息,但我被告知它是单独分区的。同样,df -T / 的文件系统列也是空的。

我们正在使用 CentOS 6.4。

非常感谢您的帮助。

答案1

为什么不简单地创建一个新的驱动器,将当前的主文件夹复制到其中,然后将其附加为 /home 分区?

这看起来像是立即的解决方案...

答案2

我假设您的所有文件系统都是 ext4(或 ext3)。这样,您可以按如下方式操作:

  1. 检查您是否确实有单独的分区。您可以检查/etc/fstab、使用mount -vdf -h确认您有单独的//home分区。为简单起见,我们假设您的/安装在/dev/sda1并且/home安装在/dev/sda2
  2. 从带有最低限度 Linux 发行版的 CD 或 USB 介质启动gparted。您可以使用基础设计与计算PartedMagic或者只是 Ubuntu 或 CentOS 安装 CD。
  3. 从非主硬盘启动后,gparted以 root 身份启动,调整大小/home使其尽可能小(或尽可能gparted小),将其移动到驱动器的末尾,然后/尽可能大地扩大。请注意,如果您的/包含 bootblocks(/boot不是单独分区的目录),则可能需要运行 grub recovery(实用程序boot-repair非常适合此用途)。
  4. 重启 Linux,将尽可能多的数据从 复制/home到。然后从步骤 2 开始重复此过程,直到 /home 几乎为空,大小可以忽略不计(可能只有几兆字节)。/
  5. 现在,您可以/dev/sda2从挂载点 /home 卸载分区,然后只需将之前复制的内容填充到目录中即可。您可能需要调整 /etc/fstab 以使其不再有行/home
  6. 最终结果 -/将几乎与整个驱动器一样大,并将包含来自旧分区的所有/数据/home

相关内容