If QEMU receives an argument that isn't an option flag, then it considers it to be the path to a disk. The block code treats the empty string as indicating that no backing file should be opened for the device. This only makes sense for devices that support removable media (ie CDROM, floppy), hence getting an error message for the ide-hd disk.
So weird as this message might seem, I believe it does ultimately make sense, and I don't think we can just ignore the empty string without potentially breaking other things. -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1911188 Title: qemu-system-x86_64 prints obscure error message and exits when encountering an empty argument Status in QEMU: New Bug description: QEMU emulator version 4.2.1 (qemu-4.2.1-1.fc32) on Fedora 32. When writing a script to start qemu automatically, I ran into a very confusing error message due to a bug in my script and had trouble understanding it. I isolated the problem to the following: $ qemu-system-x86_64 "" qemu-system-x86_64: Initialization of device ide-hd failed: Device needs media, but drive is empty As you can see, running qemu with an empty argument prints a seemingly random and unrelated error message about an ide-hd device, and the program immediately exits with code 1. This happens when an empty argument appears anywhere in the arguments list, always causing the program to immediately die with this error. This is a simply baffling message to be encountering when the problem is really an empty argument. Expected behaviour: Either flatly ignore the empty argument, or at most trigger a warning (eg, "warning: saw empty argument"). It should not at all prevent the program from running. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1911188/+subscriptions