在 qemu-img 调整大小后自动扩展 VM 分区文件系统

在 qemu-img 调整大小后自动扩展 VM 分区文件系统

我正在使用 QEMU/KVM 启动虚拟机。通过以下方式调整 qcow2 磁盘映像的大小后

qemu-img resize Test.qcow2 +500M

并通过以下方式查看实例磁盘:

fdisk -l

在实例内部,我可以看到以下警告消息:

GPT PMBR size mismatch (17752063 != 19800063) will be corrected by w(rite).

我想编写一个脚本,在磁盘调整大小后自动调整分区大小以占用最大可用空间,然后调整文件系统大小。看来我需要先修复之前的警告消息。

我成功地通过 parted 实用程序以交互方式修复了该问题,但我想以自动化的方式执行此操作,例如:

  1. 修复 GPT PMBR 大小不匹配的问题。
  2. 扩展分区。
  3. 扩展文件系统。

parted 实用程序有一个 --script 标志,但它在这里没有帮助,因为当此选项处于活动状态时,parted 实用程序会直接跳过修复部分并仅输出分区表。

2. 和 3. 运行良好。我如何才能自动执行 1.(即不提示任何最终用户交互?)

答案1

分开(8)parted 的手册页 sas 有一个

-s, --script
  从不提示用户干预

命令行选项。我猜你可以用它脚本包含相关的 parted 命令来执行您想要的操作。

答案2

大家好,我找到了一种使用 sgdisk 的方法。摘自 sgdisk 手册:

-e, --move-second-header
Move backup GPT data structures to the end of the disk. Use this option if you've added disks to a RAID array, thus creating a virtual disk with space that follows the backup GPT data structures. This command moves the backup GPT data structures to the end of the disk, where they belong.

所以我只需要输入:

sgdisk -e /dev/vda

在我的 bash 脚本中它似乎按预期工作。

相关内容