gpt4 book ai didi

linux - AWS EC2 : How to remount previous EBS volume using pivot_root?

转载 作者:太空狗 更新时间:2023-10-29 12:14:00 26 4
gpt4 key购买 nike

我启动了一个 EC2 Spot 实例并取消选中 EBS 根卷的“终止时删除”选项。我选择了 Ubuntu 14.04 64 位 HVM AMI。

在某个时候,实例因最高价格而终止,而 EBS 量仍按预期保留。现在,最终当 Spot 实例重新启动时,它会创建一个全新的 EBS 根卷。旧的 EBS 根卷仍然在那里。

实际上,出于测试目的,我通过手动终止 Spot 实例并启动新实例来模拟上述事件,但我认为在实际使用中结果会相同。

那么现在,我怎样才能将旧的 EBS 卷重新挂载为当前的根卷?

我尝试了 http://linux.die.net/man/8/pivot_root 中的示例,通过一些修改来解决明显的错误:

# manually attach old EBS to /dev/sdf in the AWS console, then do:
sudo su -
mkdir /new-root
mkdir /new-root/old-root
mount /dev/xvdf1 /new-root
cd /new-root
pivot_root . old-root
exec chroot . sh <dev/console >dev/console 2>&1
umount /old-root

终端在 exec chroot 命令处挂起,实例将不接受新的 ssh 连接。

我真的很想让它工作,因为它提供了一种方便的机制,可以节省开发、测试和面向批处理的 EC2 实例的按需价格,而无需重新构建整个应用程序部署,并且没有预留实例的 promise 。

我错过了什么?

最佳答案

答案是将 pivot_root 调用放在初始(临时)EBS 根卷上的 /sbin/init 中。

这里有一些脚本可以自动启动新的 Spot 实例并修改第一个(临时)EBS 卷上的 /sbin/init 以从第二个(持久)链式加载系统) EBS 卷:

https://github.com/atramos/ec2-spotter

关于linux - AWS EC2 : How to remount previous EBS volume using pivot_root?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32108767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com