blob: fe9d8dc5ea3e9306b038f75803736894c2e3e926 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
Qemu guest fails to write files with raw disk (like \\.\PhysicalDrive1) on Windows host.
Qemu guest fails to write files with specifing raw disk like \\.\PhysicalDrive1
full command line is below.
qemu-sysytem-i386.exe -kernel bzImage -drive file=rootfs.ext2,index=0,if=scsi -append root=/dev/sda -drive file=\\.\PhysicalDrive1,index=1,if=scsi
I found the reason is below aio_worker returns -EIO when flush operation.
https://github.com/qemu/qemu/blob/master/block/raw-win32.c#L95
static int aio_worker(void *arg)
...
case QEMU_AIO_FLUSH:
if (!FlushFileBuffers(aiocb->hfile)) {
return -EIO;
}
FlushFileBuffers always fails with GetLastError() == ERROR_INVALID_FUNCTION
I think this function doesn't support raw device.
For flushing, you might have to issue scsi/ata command or use another way.
Trying to just ignoring this error, writing function seems to be fine for me.
Thanks
hiroaki
|