我可以修改 EC2 实例以支持双启动/多启动(任何 2 个或更多操作系统)吗?
如果是,怎么办?
如果不是,为什么/需要改变什么?
在其他大型 IaaS 平台(Azure/GCP)上实现这会更容易吗?
在关闭之前,我应该说这不是我计划要做的事情。我只是想了解技术限制/挑战。
答案1
AWS 让您导入您自己的自定义虚拟机文件作为 AMI。
关于AWS虚拟机如何启动实例有一个提示:
Amazon EC2 不支持 GPT 分区,这意味着导入的系统卷必须具有 MBR 才能启动。
因此,只要您遵守规定的限制(例如创建 MBR 引导、使用允许作为 AMI OS 的已编译操作系统),也许您可以尝试构建双启动虚拟映像并上传到 AWS。您不能简单地创建任何虚拟映像并上传到 AWS。(您不能创建 DOS、OS2、OSX 等,AWS 禁止它们的原因有很多。)
但是,由于没有办法引导 AMI 启动屏幕(虽然虚拟环境可能允许您引导 KVM[键盘、视频、鼠标],但没有云提供商愿意这样做,因为这违反直觉且适得其反),因此您无法选择要引导哪个引导部分,并且无法在启动屏幕中传递数据。您必须先启动操作系统,然后切换引导环境并重新启动。
简而言之,AMI 映像很便宜(除非您创建一个巨大的一百 GB AMI),不值得这么麻烦。
答案2
双实例启动违背了云计算的基本原则,在这样的环境中绝对不建议这样做。您可以通过调整 GRUB 来实现这一点,但由于 AWS 不提供 KVM 访问,因此调试和管理起来可能相当困难。
相反,您最好配置单独的实例,然后只需启动所需的实例(请记住,您只需按使用量付费,因此停止的实例不收取任何费用)。如果您需要在操作系统之间共享数据,请将您的资源放在 S3(最佳耐用性和可扩展性)、EFS(具有更好的 IO 延迟和良好的可扩展性)或每次切换后挂载/卸载的 EBS 卷中(最佳延迟,最差可扩展性)。