我有一个 8GB 的 puppy linux img,但我需要它适合 6GB 的驱动器。如何调整 img 上 ext2 分区的大小?
答案1
笔记进行备份,任何事情都可能出错...我以 root 身份运行了所有这些:
- 将循环设备绑定到图像:
losetup /dev/loop10 $image_file
- 刷新分区:
partprobe /dev/loop10
- 调整分区大小:
gparted /dev/loop10
- 撤消循环:
losetup -d /dev/loop10
- 删除不需要的空间:(
truncate -s -${SIZE}G $image_file
您可能希望根据fdisk
/cfdisk
*中的值计算确切的大小sector size
)
笔记您可能需要仔细检查分区的 UUID,我的 UUID 似乎已更改,我必须更新fstab
答案2
您需要缩小文件系统(任何类型的逻辑卷管理或类似容器),然后缩小映像。我假设您正在谈论原始磁盘映像。
步骤一览:
- 确保图像未被访问(例如
lsof
:) - 缩小文件系统(例如
resize2fs
:) - 执行文件系统检查(例如
fsck
:) - 缩小任何 LVM 或其他类型的容器(如果需要)
- 缩小磁盘映像(例如:使用skip或use dd到新映像
qemu-img
) - 再次Fsck,测试它是否有效!
选择:
- 创建一个新映像并将数据/MBR/等复制过来。
- 用类似的东西克隆图像部分克隆