压缩磁盘映像

压缩磁盘映像

dd因此,我有一个通过运行和复制完整硬盘(约 67GB)创建的磁盘映像。我的最终目标是将此映像从 70GB 缩小到 55GB。该映像按分区显示如下:

boot partition
volume group containing the following logical volumes:
    root.fs 4GB
    localhd.fs 62GB
    swap.fs 2GB

我最终做的是安装这个映像,并将 localhd 逻辑卷实际减少了 15GB。到目前为止,没有任何问题。
我的问题是,在减少逻辑卷的大小后,我如何实际减少映像本身——我假设减少 15GB 只会导致 15GB 的未分配可用空间。我想把那 15GB 全部去掉。

答案1

缩小逻辑卷后,您很可能会在物理卷中间留下一些空闲空间。如果您确实想缩小磁盘映像,则必须在磁盘末尾留有空闲空间,而不是在中间。您可以尝试分多个步骤完成此操作:

  1. 使用光伏显示器了解物理范围 (PE) 在您的卷上的分配方式:

    pvdisplay --maps /dev/sdXY
    
  2. 如果空闲区位于中间,则使用移动从 PV 末尾移动一些 PE,以便所有可用空间都留在 PV 末尾 — — 您需要使用以下语法来移动具有明确指定编号的 PE:

    pvmove --alloc anywhere /dev/sdXY:2000-2999 /dev/sdXY:1000-1999
    

    或者,如果有问题的卷是交换卷,则删除并重新创建它会更快(但要确保没有任何内容依赖于它的 UUID,或者您可以在那里对其进行适当的更新)。

  3. 在 PV 末尾释放一些空间后,使用调整大小减少物理体积:

    pvresize --setphysicalvolumesize 53G /dev/sdXY
    

    (根据您的数字调整音量大小)。

    不幸的是,pvresize如果该 PV 上有两个元数据区域,则尝试可能会失败。在这种情况下,您可以尝试在此 LVM 邮件列表主题(备份 VG,pvcreate使用 UUID 和恢复文件重做,恢复 VG)。

  4. 查找扇区中确切的 PV 大小:

    pvdisplay --units s /dev/sdXY
    
  5. 停用卷组,以便不再使用该分区:

    vgchange -an VolGroupName
    
  6. 将包含 PV 的分区调整为步骤 4 中显示的大小。这是最危险的步骤,因为parted不支持实际调整 LVM PV 分区的大小,因此您需要删除该分区,然后使用与之前完全相同的第一个扇区以及从第一个扇区和扇区中的 PV 大小计算出的最后一个扇区(end = start + size - 1)重新创建它。您可以使用fdiskparted(如果您使用 GPT 分区表,则必须使用partedgdisk(GPT fdisk),因为 plainfdisk不支持 GPT)。请小心避免将分区大小设置得太小。

  7. 如果需要,请重新启动(如果您忘记停用 LVM 组,或者仍然安装了同一磁盘上的任何东西)。

  8. 检查 LVM VG 是否能够正常激活和使用。

  9. 查看fdisk -lu /dev/sdX输出以找到最后使用的扇区号;然后您可以将图像修剪到适当的大小(再次注意避免使图像尺寸太小)。

相关内容