我遇到了与这里相同的问题:http://www.quora.com/Amazon-EC2/Is-it-possible-to-rescue-an-EBS-volume-which-has-marketplace-codes。
基本上,我已经把自己锁定在实例之外,并且我没有任何快照。我正在处理一个更大的设置,出于安全原因,我尝试在 sshd_config 中设置 UsePam no,这导致一切都崩溃了。
我使用了官方的 Debian Amazon Marketplace AMI。现在我不能将卷安装到其他地方作为辅助设备来修复我的愚蠢行为。
quora 帖子中列出的解决方案不起作用。我尝试使用两个 ubuntu 映像,但实例无法使用该用户数据集启动。
有没有最近的解决方法?由于我一直在使用普通的 Debian AMI,所以我没有尝试访问任何机密信息。我只想修复该问题,而不必重新做所有事情。
答案1
首先我想说,这种方法是不道德的,因为它绕过了 AWS Marketplace,从而剥夺了开发者的潜在资金,但同时,我觉得这对于确保数据安全是必要的。
最近,我的一台 AWS Marketplace Image 创建的机器崩溃了(CSF 设法阻止了网关 IP 地址!@!)。我惊讶地发现,我无法简单地将卷连接到另一台机器并编辑 .conf 文件。
在(幸运的是)机器自行启动(暂时禁止)后,我纠正了防火墙的情况,并开始思考这种情况会造成多么严重的后果。
答案是关闭原始实例,从卷创建快照,然后从该快照创建映像。为确保安全,请务必选择与正在运行的机器相同的内核 ID。创建一个大小完全相同的卷,在同一个文件系统中格式化它(在我的情况下是 ext4),关闭所有服务,然后简单地将根驱动器的内容 DD 到第二个驱动器。测试新卷是否会在新创建的实例上作为 SDA1 启动。如果是这样,请关闭并终止旧实例(事先记下内部和外部 IP),使用正确的本地 IP 启动新实例,将外部 IP 附加到内部 IP,然后祈祷好运。
第二个驱动器不再通过市场代码识别,因此仍然可以安装到其他实例。
免责声明:我非常乐意向开发人员支付使用原始 AMI 的费用,但直到 AWS 为我们提供恢复控制台(他们可以随意限制它)以执行 fsck 和 vi/NANO 等简单任务之前,我不会遵守他们的规则。
答案2
我遇到了类似的问题。实例无法启动。典型的解决方案很简单:
- 从失败的实例中分离映像
- 将图像附加到服务器
- 安装新连接的驱动器
- 修复所有问题
- 卸载驱动器
- 从恢复实例中分离映像
- 将修复后的图像重新附加到失败的实例
- 看看是否有帮助
现在,市场镜像无法附加到我已经运行的随机服务器。解决方案实际上非常简单。只需从相同的 AWS Marketplace AMI 创建一个新实例,然后能将图像附加到该处。
答案3
Quora 的 Eric Hammond 的评论可以概括为“我对此表示怀疑”。
不,不可能将 AWS Marketplace AMI 的根磁盘附加到另一个实例。
如果你找到了这种方法,亚马逊可能会认为这是保护 AWS Marketplace 供应商软件的安全漏洞。
看起来您正在经历供应商锁定。
抱歉,但我觉得你对此无能为力。从开放 AMI 重新开始,使用 Chef 脚本进行构建,并可选择将其与AWS OpsWorks为您提供某种部署机制。
答案4
不...也是。
我今天花了几个小时解决这个问题,记录我所学到的东西。它的要点是,您无法将卷准确地附加到另一台设备,但您可以联系亚马逊的支持小组,拍摄快照,与他们共享,他们可以为您提供一个新的快照,您可以使用它来创建卷并恢复数据。