All "modern" 2-way drive/device specifications need to explicitly specify if=none for the drive for it to not be used in the default ide bus implicitly.
But how about using some if=unspecified implicitly for all devices which don't specify if=, pick any devices from that list which are referenced from -device, and only add those which left (plus the ones with explicit if=ide) to the default ide bus? The change should be strighforward, the only (maybe significant) prob I see is a need to reorder -device/-drive initialization in vl.c. We might pick them up in drive_check_orphaned() too. Or, we can walk over -devices when adding -drives with if={unspec,explicit}. (this is a sort of a followup to 6b9e03a4e759876, "qtest/bios-tables: Correct Q35 command line", but ofcourse it's a topic by its own). Thanks, /mjt