![在 qemu-img 调整大小后自动扩展 VM 分区文件系统](https://linux22.com/image/739080/%E5%9C%A8%20qemu-img%20%E8%B0%83%E6%95%B4%E5%A4%A7%E5%B0%8F%E5%90%8E%E8%87%AA%E5%8A%A8%E6%89%A9%E5%B1%95%20VM%20%E5%88%86%E5%8C%BA%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.png)
我正在使用 QEMU/KVM 启动虚拟机。通过以下方式调整 qcow2 磁盘映像的大小后
qemu-img resize Test.qcow2 +500M
并通过以下方式查看实例磁盘:
fdisk -l
在实例内部,我可以看到以下警告消息:
GPT PMBR size mismatch (17752063 != 19800063) will be corrected by w(rite).
我想编写一个脚本,在磁盘调整大小后自动调整分区大小以占用最大可用空间,然后调整文件系统大小。看来我需要先修复之前的警告消息。
我成功地通过 parted 实用程序以交互方式修复了该问题,但我想以自动化的方式执行此操作,例如:
- 修复 GPT PMBR 大小不匹配的问题。
- 扩展分区。
- 扩展文件系统。
parted 实用程序有一个 --script 标志,但它在这里没有帮助,因为当此选项处于活动状态时,parted 实用程序会直接跳过修复部分并仅输出分区表。
2. 和 3. 运行良好。我如何才能自动执行 1.(即不提示任何最终用户交互?)
答案1
答案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 脚本中它似乎按预期工作。