Я ожидал, что QEmu -nodefaults
предотвратит создание устройств по умолчанию, но я либо использую его неправильно, либо он работает не так, как я ожидал.
Я получаю это сообщение, используя сокращенноеприведенная ниже командная строка с QEmu 3.0.
Сообщение:
qemu-system-i386: warning: multiple floppy disk controllers
with iobase=0x3f0 have been found
the one being picked for CMOS setup might not reflect your intent
Дополнительное сообщение в терминале виртуальной машины:
could not read the boot disk
Командная строка:
qemu-system-i386 \
-machine type=isapc,usb=no \
-nodefaults \
-device isa-vga \
-blockdev driver=file,node-name=fda-img,filename=fda.img \
-blockdev driver=raw,node-name=fda,file=fda-img \
-device isa-fdc,driveA=fda,fdtypeA=144,fdtypeB=none,bootindexA=0
Я попытался удалить -machine type=isapc
, но ничего не изменилось.
Это так, хотя в документации сказано:
-nodefaults
Не создавайте устройства по умолчанию.Обычно QEMU устанавливает устройства по умолчанию, такие как последовательный порт, параллельный порт, виртуальная консоль, устройство мониторинга, адаптер VGA, дисковод гибких дисков и CD-ROM и другие.Параметр -nodefaults отключит все эти устройства по умолчанию.
Я попытался добавить параметр --verbose
в командную строку, надеясь, что он запросит дамп полной конфигурации, созданной QEmu, нотакой опции, к сожалению, не существует.
Мое наивное чувство - это то, что оно сломано, но я должен также учитывать, что я могу что-то упустить ... (отсюда и этот наивный вопрос).
-Обновление для получения более подробной информации -
Хотя нет способа вывести созданную машину из командной строки, я обнаружил, что в мониторе есть info qtree
, который выводит дерево устройств.Ниже указано, что:
[…]
dev: isa-fdc, id ""
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
driveA = ""
driveB = ""
check_media_rate = true
fdtypeA = "144"
fdtypeB = "none"
fallback = "288"
isa irq 6
bus: floppy-bus.1
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"
[…]
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
[…]
Создает два контроллера гибких дисков, игнорируя -nodefaults
.Я все еще что-то упускаю?
Также, к удивлению, для первого контроллера, который я создаю, driveA
и driveB
- пустые строки, в то время как driveA
назначается в командной строке.