Я отправляю как ответ, но я не совсем уверен.Я могу просто сказать, что, если я правильно понимаю, это ошибка.
Ответ состоит из двух частей.
Первая часть - это упрощенный неудачный вызов:
qemu-system-i386 \
-monitor stdio \
-machine type=isapc,vmport=off \
-blockdev driver=file,node-name=fda-img,filename=fda.img \
-blockdev driver=raw,node-name=fda,file=fda-img \
-global isa-fdc.driveA=fda
(qemu) info block
ide1-cd0: [not inserted]
Attached to: /machine/unattached/device[19]
Removable device: not locked, tray closed
sd0: [not inserted]
Removable device: not locked, tray closed
fda: fda.img (raw)
Attached to: /machine/unattached/device[13]
Removable device: not locked, tray closed
Cache mode: writeback
(qemu) eject fda
Device 'fda' not found
Вторая часть, то же самое без последнего аргумента -global isa-fdc.driveA=fda
:
qemu-system-i386 \
-monitor stdio \
-machine type=isapc,vmport=off \
-blockdev driver=file,node-name=fda-img,filename=fda.img \
-blockdev driver=raw,node-name=fda,file=fda-img
(qemu) info block
ide1-cd0: [not inserted]
Attached to: /machine/unattached/device[19]
Removable device: not locked, tray closed
floppy0: [not inserted]
Attached to: /machine/unattached/device[13]
Removable device: not locked, tray closed
sd0: [not inserted]
Removable device: not locked, tray closed
(qemu) eject floppy0
При удалении -global isa-fdc.driveA=fda
появляется больше ошибок.Однако документация гласит:
-глобальный драйвер = драйвер, свойство = свойство, значение = значение Установить значение по умолчанию для свойства драйвера prop равным значению, например:
qemu-system-i386 -global ide-hd.physical_block_size = 4096 disk-image.img В частности, вы можете использовать это для установки свойств драйвера для устройств, которые автоматически создаются моделью машины .Чтобы создать устройство, которое не было создано автоматически, и задать для него свойства, используйте -device.
-global driver.prop = значение - это сокращение от -global driver = driver, property = prop, value = value.Длинный синтаксис работает, даже если драйвер содержит точку.
То, на что я акцентировал внимание в цитате, говорит о том, что я не неправильно использую -global
, и это, скорее всего, ошибка.
Обновление для более подробной информации:
Кажется, с использованием -drive
вместо -device
и driveA
, результат не тот же, хотя документация RedHat рекомендует использовать -device
вместо -drive
и документация QEmu 3.0 гласит, что -drive
по сути является сокращением для -device
(«по существу», не говоря о разнице).
Ниже два случая, за исключением info block
и выдержка из info qtree
.
С этим eject floppy0
работает:
qemu-system-i386 \
-monitor stdio \
-machine type=isapc,vmport=off \
-drive format=raw,if=floppy,media=disk,file=fda.img \
-device isa-vga,vgamem_mb=1 \
-serial msmouse
[…]
floppy0 (#block156): fda.img (raw)
Attached to: /machine/unattached/device[12]
Removable device: not locked, tray closed
Cache mode: writeback
[…]
dev: isa-fdc, id ""
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
driveA = ""
driveB = ""
check_media_rate = true
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
isa irq 6
bus: floppy-bus.0
type floppy-bus
dev: floppy, id ""
unit = 0 (0x0)
drive = "floppy0"
logical_block_size = 512 (0x200)
physical_block_size = 512 (0x200)
min_io_size = 0 (0x0)
opt_io_size = 0 (0x0)
discard_granularity = 4294967295 (0xffffffff)
write-cache = "auto"
share-rw = false
drive-type = "144"
С этим eject fda
не работает:
qemu-system-i386 \
-monitor stdio \
-machine type=isapc,vmport=off \
-blockdev driver=file,node-name=fda-img,filename=fda.img \
-blockdev driver=raw,node-name=fda,file=fda-img \
-global isa-fdc.driveA=fda \
-device isa-vga,vgamem_mb=1 \
-serial msmouse
[…]
fda: fda.img (raw)
Attached to: /machine/unattached/device[12]
Removable device: not locked, tray closed
Cache mode: writeback
[…]
dev: isa-fdc, id ""
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
driveA = ""
driveB = ""
check_media_rate = true
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
isa irq 6
bus: floppy-bus.0
type floppy-bus
dev: floppy, id ""
unit = 0 (0x0)
drive = "fda"
logical_block_size = 512 (0x200)
physical_block_size = 512 (0x200)
min_io_size = 0 (0x0)
opt_io_size = 0 (0x0)
discard_granularity = 4294967295 (0xffffffff)
write-cache = "auto"
share-rw = false
drive-type = "144"