Unable to boot after drive-mirror
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Expired
|
Undecided
|
Unassigned |
Bug Description
Hi,
I am using "drive-mirror" qmp block-job command to transfer VM disk image to other path (different physical disk on host).
Unfortunately after shutting down and starting from new image, VM is unable to boot and qrub enters rescue mode displaying following error:
```
error: file '/grub/
Entering rescue mode...
grub rescue>
```
To investigate the problem, I compared both RAW images using linux "cmp -l" command and found out that they differ in 569028 bytes starting from address 185598977 to 252708864 which are located on /boot partition.
So I mounted /boot partition of mirrored RAW image on host OS and it seems that file-system is broken and grub folder is not recognized. But /boot on original RAW image has no problem.
Mirrored Image:
ls -l /mnt/vm-boot/
ls: cannot access /mnt/vm-boot/grub: Structure needs cleaning
total 38168
-rw-r--r-- 1 root root 157721 Oct 19 2016 config-
-rw-r--r-- 1 root root 129281 Sep 20 2015 config-
d????????? ? ? ? ? ? grub
-rw-r--r-- 1 root root 15739360 Nov 2 2016 initrd.
-rw-r--r-- 1 root root 12115412 Oct 10 2015 initrd.
drwxr-xr-x 2 root root 12288 Oct 7 2013 lost+found
-rw-r--r-- 1 root root 2679264 Oct 19 2016 System.
-rw-r--r-- 1 root root 2114662 Sep 20 2015 System.
-rw-r--r-- 1 root root 3126448 Oct 19 2016 vmlinuz-
-rw-r--r-- 1 root root 2842592 Sep 20 2015 vmlinuz-
Original Image:
ls /mnt/vm-boot/ -l
total 38173
-rw-r--r-- 1 root root 157721 Oct 19 2016 config-
-rw-r--r-- 1 root root 129281 Sep 20 2015 config-
drwxr-xr-x 5 root root 5120 Nov 2 2016 grub
-rw-r--r-- 1 root root 15739360 Nov 2 2016 initrd.
-rw-r--r-- 1 root root 12115412 Oct 10 2015 initrd.
drwxr-xr-x 2 root root 12288 Oct 7 2013 lost+found
-rw-r--r-- 1 root root 2679264 Oct 19 2016 System.
-rw-r--r-- 1 root root 2114662 Sep 20 2015 System.
-rw-r--r-- 1 root root 3126448 Oct 19 2016 vmlinuz-
-rw-r--r-- 1 root root 2842592 Sep 20 2015 vmlinuz-
ls /mnt/vm-boot/grub/ -l
total 2376
-rw-r--r-- 1 root root 48 Oct 7 2013 device.map
drwxr-xr-x 2 root root 1024 Oct 10 2015 fonts
-r--r--r-- 1 root root 9432 Nov 2 2016 grub.cfg
-rw-r--r-- 1 root root 1024 Oct 7 2013 grubenv
drwxr-xr-x 2 root root 6144 Aug 6 2016 i386-pc
drwxr-xr-x 2 root root 1024 Aug 6 2016 locale
-rw-r--r-- 1 root root 2400500 Aug 6 2016 unicode.pf2
qemu Version: 2.7.0-10
Host OS: Debian 8x64
Guest OS: Debian 8x64
QMP Commands log:
socat UNIX-CONNECT:
{"QMP": {"version": {"qemu": {"micro": 0, "minor": 7, "major": 2}, "package": "pve-qemu-
{ "execute": "qmp_capabilities" }
{"return": {}}
{ "execute": "drive-mirror",
"arguments": {
"device": "drive-ide0",
"target": "/diskc/
"sync": "full",
"mode": "absolute-paths",
"speed": 0
}
}
{"return": {}}
{"timestamp": {"seconds": 1506331591, "microseconds": 623095}, "event": "BLOCK_JOB_READY", "data": {"device": "drive-ide0", "len": 269445758976, "offset": 269445758976, "speed": 0, "type": "mirror"}}
{"timestamp": {"seconds": 1506332641, "microseconds": 245272}, "event": "SHUTDOWN"}
{"timestamp": {"seconds": 1506332641, "microseconds": 377751}, "event": "BLOCK_
Do you have more information on the sequence of commands issued to QEMU? I see the drive-mirror invocation, but then I don't see what causes the shutdown or the BLOCK_JOB_COMPLETED event. Usually this is in response to a user command. I'm wondering if the exact sequence issued is safe.
Do you have a reproducer that I could try on my system to examine the behavior?
Also, 2.7 is a bit old at this point; do you have the ability to try a version currently supported by the upstream project? (2.9 or 2.10?)