答案1
您需要小心地从 54GB 分区的开头开始逐块移动整个分区的内容。分区中的文件系统不得挂载。块必须小于可用空间,因此只有在将旧数据复制为前一个块后才能覆盖旧数据。然后您需要更新分区表,以便分区的开头正式移到左侧。然后您需要将移动的文件系统扩展到右侧。这看起来很复杂,而且确实如此(但是如果您知道自己在做什么,可以使用 、 、“手动”dd
完成gdisk
)resize2fs
。
幸运的是gparted
,Linux 可以管理所有这些。请记住,文件系统不能被挂载,因此如果它对您的 Linux 至关重要而您无法挂载umount
它,那么您需要启动实时操作系统并gparted
从那里运行。
右键gparted
单击 54GB 分区并选择“调整大小/移动”。应该可以将分区向左扩展,这会自动涉及移动文件系统。执行此操作。确认后,操作处于待处理状态。单击“应用所有操作”并等待。无论文件系统有多满,我猜该工具都会移动整个 54 GB。不过在 SSD 上这应该相当快。
您不得中断此操作,也不得允许任何事情中断它。如果操作中断,则文件系统可能会严重受损。您可能能够恢复一些文件,但您肯定不希望一开始就这么做。
像这样移动数据始终被认为具有潜在风险;假设操作可能会失败。理想情况下,您应该在开始之前将所有文件(或整个文件系统)复制到其他地方作为备份gparted
。我承认您写道“没有足够的空间供我复制数据”。然后为真正重要的数据找到空间。您找不到空间的数据从定义上来说就是不重要的*。
如果您在 Ext4 下使用 LVM;或者使用 Btrfs 或 ZFS 而不是 Ext4,整个任务可能会更简单(或至少有所不同)。好吧,您没有,没有必要详细说明。使用过的用户请注意,所描述的过程可能不是您情况下的最佳方法。
*有些人会说(定义略有不同),如果你不已经如果备份了数据,那么所有数据都必定是临时的、不重要的和可消耗的。:)