我有 Ubuntu 18.04 作为客户操作系统,我需要使用以下命令调整分区大小virt-resize
:
#:/var/lib/uvtool/libvirt/images# virt-resize --shrink /dev/sda1 guest1.qcow guest1-shrunk.qcow
[ 0.0] Examining guest1.qcow
**********
Summary of changes:
/dev/sda14: This partition will be left alone.
/dev/sda15: This partition will be left alone.
/dev/sda1: This partition will be resized from 17.9G to 5.5G. The
filesystem ext4 on /dev/sda1 will be expanded using the 'resize2fs' method.
**********
[ 3.3] Setting up initial partition table on guest1.qcow
[ 11.7] Copying /dev/sda14
[ 11.7] Copying /dev/sda15
[ 11.8] Copying /dev/sda1
100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
[ 29.9] Expanding /dev/sda1 (now /dev/sda3) using the 'resize2fs' method
Resize operation completed with no errors. Before deleting the old disk,
carefully check that the resized disk boots and works correctly.
我检查了一切是否正常:
#:/var/lib/uvtool/libvirt/images# virt-df -h guest1-shrunk.qcow
Filesystem Size Used Available Use%
guest1-shrunk.qcow:/dev/sda2 104M 3.6M 101M 4%
guest1-shrunk.qcow:/dev/sda3 5.3G 4.6G 612M 89%
但是,当我尝试启动它时virsh start guest1-shrunk
,我无法使用 ssh 甚至使用 登录到服务器virsh console guest1-shrunk
。没有显示任何错误,并virsh list --all
显示客户机正在运行。但是,无法使用 关闭它virsh shutdown
,我必须使用virsh destroy
。显然,它无法正常启动,我怀疑这是因为分区被重新排列了。这里有一个类似的问题:KVM .img 通过 virt-resize 调整大小后无法启动尽管在这种情况下人们可以清楚地看到错误。
我该如何修复分区表?
答案1
在这里找到答案:https://askubuntu.com/questions/795504/grub-boot-error-on-cloned-virtual-machine
为了澄清步骤,我必须:
- 跑步
virt-rescue quest1-shrinked.qcow
- 然后运行以下命令:
mkdir /mnt
mount /dev/sda3 /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt
grub-install /dev/sda
此后系统启动正常。
答案2
当我使用 virt-resize --expand 扩展磁盘分区时,我遇到了一个问题,我的虚拟机无法启动,它让我使用 grub 救援,然后出现错误:未知文件系统,我找到了一种解决这个问题的方法,
首先我运行此命令来获取我的分区名称。
virt-df -h -a <image-name>
我的磁盘分区是 /dev/sdaX
所以我知道我的分区,
我运行这个命令来重新安装 grub 然后我启动正常并且像以前一样:
virt-customize -a <image-name> --run-command 'grub install /dev/sda'
此后我就可以出发了。