在将CentOS根卷与AWS marketplace代码连接到其他CentOS EC2实例时,另一个实例使用附加的根卷启动

时间:2016-03-08 11:30:43

标签: linux amazon-web-services amazon-ec2 centos centos6.5

我在ec2实例中搞砸了系统的根卷,所以我将实例的根卷附加到其他ec2实例,以便我可以访问错误的根卷并纠正我的错误。当我启动另一个实例时,拧紧的根卷成为实例的根卷。我将卷附加为/ dev / sdb(内核将其更改为/ dev / xvdf),实例原始根卷位于/ dev / sda(内核将其更改为/ dev / xvde)。因此内核应该将/ dev / xvde作为根文件系统加载,但是它的加载会缩小根卷(/ dev / xvdf)。

系统的系统日志片段如下:

dracut:开始普利茅斯守护进程

xlblk_init:register_blkdev major:202

blkfront:xvdf:禁用障碍

xvdf:未知分区表

blkfront:xvde:障碍已禁用

xvde:未知分区表

EXT4-fs(xvdf):已安装的文件系统,具有有序数据模式。选择:

dracut:已安装的根文件系统/ dev / xvdf

4 个答案:

答案 0 :(得分:5)

OR

简单的方法是将Centos根卷连接到amazon linux机器并修复问题。不要将Centos根卷附加到另一个运行Centos的ec2实例。 AWS市场中的Centos具有“centos”作为根卷的标签。因此,当我们将centos根卷附加到另一个centos机器时,AWS会对挂载的根卷和异常情况感到困惑。

答案 1 :(得分:1)

由于搞砸的根卷和原始实例根卷有相同的标签附加到卷分区(在我的情况下,我的操作系统是centos6.5,标签是centos_root),所以我们必须更改我们的标签实例,以便下次启动它时不会查找标签centos_root,而是会查找我们更改的标签。

首先,通过命令更改根卷分区标签 恩。 e2label / dev / xvde your_label, 这里/ dev / xvde是根分区

其次,更改" / etc / fstab和/boot/grub/grub.conf" with your_label。

第三,停止实例

第四,将搞砸的根卷附加到实例

第五,启动实例

第六,Voila现在你可以看到拧紧的根卷分区并将其安装到某个挂载点以解决问题。

答案 2 :(得分:0)

从另一个ec2实例中取消“搞砸”的音量

正常启动其他实例

将EBS附加到正在运行的实例上看 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html

以root身份执行fdisk -l并找到新实例的设备名称

制作一个“挂载点”(目录)并在其上挂载所需的磁盘分区

修复后,在挂载点上使用umount命令,然后取消挂载 音量

如果AMI有市场代码,请尝试此答案中给出的步骤https://serverfault.com/questions/522173/aws-vol-xxxxxxx-with-marketplace-codes-may-not-be-attached-as-as-secondary-dev

答案 3 :(得分:0)

PSA:请勿在AWS中使用CentOS。

您不能再将CentOS实例的根卷附加到另一个实例。这是设计使然,以防止人们绕过许可协议。尽管CentOS在技术上是免费的,但由于它是市场上的AMI,因此该规则仍然适用。通常,这是个好规则,但是它使恢复失败的配置成为不可能。

使用Amazon Linux。无论如何,基本上都是CentOS。