我有一个运行良好的 KVM/Qemu 设置。现在我想简化新虚拟机的配置。
两种明显的方法是克隆现有磁盘或从头开始安装(使用自动预置/启动)。
在我的测试中,使用 preseed/kickstart 安装从创建到启动和运行至少需要几分钟(即使使用本地镜像)。结果很棒,但花费的时间太长了。
克隆显然要快得多,但是当你需要比源更大的磁盘时就会产生问题。
现在,如果这只是一次性的事情,那么手动启动并扩展磁盘就很简单了。但是,我希望在第一次启动时以自动方式执行此操作。
基本上有三项任务需要执行:
- 扩展磁盘(fdisk/cfdisk 等)
- 调整卷池大小(对于 LVM)
- 扩展实际文件系统
虽然可以编写脚本,但我想在这里提出这一点,因为我怀疑我不是唯一一个希望以自动化方式完成此操作的人。我发现最接近的方法是raspi-配置适用于 Raspberry Pi,它为此提供了自动化工具。
我当然可以从 raspi-config 中提取代码,但是它做了很多假设,所以我希望可能有一个更通用的工具可用。
答案1
库可能可以胜任这项任务,但它无法在原地完成,Quote:
Copy olddisk to newdisk, extending one of the guest's partitions to fill the extra 5GB of space.
virt-filesystems --long -h --all -a olddisk
truncate -r olddisk newdisk
truncate -s +5G newdisk
# Note "/dev/sda2" is a partition inside the "olddisk" file.
virt-resize --expand /dev/sda2 olddisk newdisk
按照这个步骤进行克隆应该可以成功。