答案1
我会:
- 使用类似以下命令就地调整文件系统大小
resize2fs -p /dev/<device_name_fs_is_on> 20G
它无疑会拒绝第一次运行,建议您fsck
先运行。您可以强制它运行,但fsck
强烈建议执行此操作,因为尝试调整有错误(即使是小错误)的文件系统可能会导致灾难。检查完成后重新运行调整大小命令 - 将其复制到另一个驱动器
dd if=/dev/<device_name_fs_is_on> of=/path/to/other/location/filesystem.img bs=1048576 count=20480
- 根据需要重新格式化磁盘
- 使用以下方法复制文件系统
dd if=/path/to/other/location/filesystem.img of=/dev/<new_device_name>
- 调整大小以填充新分区
resize2fs -p /dev/<new_device_name>
- 挂载新调整大小的文件系统并编辑其包含的任何相关配置,例如 /etc/fstab
- 您还需要检查您的 grub 配置以确保它引用了新的根分区名称,并且您可能需要重建您的 initrd(但可能不是,因为您是从 RAID 转为正常,而不是相反,如果 initrd 不支持 RAID,则会导致问题)
- 祈祷并重新启动...
由于这是您的根文件系统,您将需要从活动 CD 执行此操作,因为在安装文件系统时您将无法调整其大小(步骤 2)。
如果您更改步骤 1 中传递的 20G resize2fs
,请确保dd
相应地更改步骤 2 中传递的 1048576x20480。
显然,这不是一个没有风险的操作,因此您可能需要在步骤 3 之前通过其他方式单独备份文件系统上的重要数据和配置。
为了更安全:如果您有时间和多余的磁盘,请将缩小的文件系统恢复到额外的磁盘,按照步骤 6 和 7 进行适当的重新配置,并确保您可以在执行步骤 3 之前启动它。这样,您就知道在从旧位置擦除文件系统之前,您在其他地方拥有该文件系统的完整工作副本,并且如果您在此阶段发现问题,可以轻松恢复到旧设置并中止/重试。
这样你就不会输任何当您在文件系统上整体操作而不是单个文件、目录和设备节点时,复制内容时文件/目录/设备属性。
答案2
我从未使用过它,但有一个名为的分区映像程序,partimage
可在系统救援光盘。
我不确定如果您使用 partimage 会发生什么,但是如果您使用 cp(注意不要尝试复制您正在复制的目录,当您进行复制时可能需要复制cp -ax
)您将必须重新安装 Grub,因为它对物理硬盘位置进行硬编码,而这些位置在复制过程中会发生变化。