我有一个 RAW 磁盘映像,它有两个分区,分别具有 ext2 和 ext3 文件系统。我想将后一个分区的大小增加 1 GB,并调整其文件系统的大小。我该怎么做?
答案1
首先,此过程存在风险,根据我做出的一些假设,情况可能会略有不同,这些假设可能是错误的。尝试此操作之前,请备份您的数据。
请注意以下内容:如果您使用 gparted 之类的工具通过 GUI 自动执行这些步骤,则可以避免步骤 3 - 6。
备份后步骤如下:
确保图像已卸载并且未被使用。
扩展虚拟磁盘映像的大小。我通常使用 qemu-resize 来执行此操作。您可能只需 dd -bs=X count=y >> iso.img 即可扩展映像。双箭头非常重要,单箭头将摧毁您现有的映像。
根据您的工具,您可能需要或不需要创建环回设备来将原始映像转换为虚拟磁盘。为此,您可以使用 losetup /dev/loop0 /path/to/block - 这将创建 /dev/loop0,然后您可以使用它,而不必引用底层文件。
使用分区管理器调整磁盘大小。我通常使用 fdisk。第一步是转储分区信息。第二步是删除最后一个分区并使用相同的起始块重新创建它,并确保文件系统类型属性正确,并且可引导标志设置正确(可能关闭)。然后您可以将其写入磁盘。
输入 kpartx /dev/loop0 - 这将创建 /dev/mapper/loop0pX,以便您可以直接访问分区。
使用 resize2fs /dev/mapper/loop0pX 调整其大小。请注意,此命令可能被称为其他名称。resize4fs 是一种常见的替代方法。
如果需要,使用 dmsetup remove /dev/mapper/loop0pX
使用 losetup -D /dev/loop0 删除块设备。