Can I modify an EC2 instance to support dual-/multi-boot (any 2 or more OSes)?
If yes, how?
If no, why not / what needs to change?
Would this be easier on one of the other large IaaS platforms (Azure /GCP)?
Before this gets shut down, I should mention that this is not something that I plan to do. I just want to understand the technical restrictions / challenges.
Dual instance boot goes against the basics of cloud computing and it is by all means discouraged in such environments. You may accomplish that by tuning GRUB but, as AWS does not provide KVM access, it may be quite difficult to debug and manage.
Instead, You should better provision separate instances and simply start the one you need (remember that you only pay as you go, so stopped instances cost 0$). If you need shared data between OSs, put your resources in S3 (best durability and scalability), EFS (better IO latency with good scalability) or an EBS volume that you mount/unmount after each switch (best latency, worst scalability).
AWS let you import your own custom virtual machine file as AMI.
There is a hint on how AWS virtual machine start the instance :
So maybe you can try build a dual boot virtual image and upload to AWS as long as you comply with the stated limit (like create MBR boot, use complied OS allowed as AMI OS). You can't simply create any virtual image and upload to AWS.(you can't create a DOS, OS2, OSX,etc, there is many reason why AWS forbid them.)
However, since there is no way to channel AMI startup screen(Though virtual environment may let you channel KVM[keyboard,video,mouse], no cloud provider want to do this because it is counter-intuitive and counter-productive), so you can't select which boot section to boot, and there is no way to pass data in the bootup screen. You must bootup the OS first and switch the boot environment and restart.
In short, AMI image is cheap(unless you create an Gigantic hundred GB AMI), it is not worth the trouble.