为什么在调整根EBS卷后,EC2实例无法正常启动?

问题描述 投票:6回答:3

我正在使用https://matt.berther.io/2015/02/03/how-to-resize-aws-ec2-ebs-volumes/http://atodorov.org/blog/2014/02/07/aws-tip-shrinking-ebs-root-volume-size/上的说明移动到磁盘空间更少的EBS卷。在这两种情况下,当我将收缩的EBS卷(作为/ dev / xdva或/ dev / sda1,既不起作用)连接到EC2实例并启动它时,它会自动停止并显示消息

State transition reason
Client.InstanceInitiatedShutdown: Instance initiated shutdown

更多的修修补补,我发现新卷没有BIOS启动分区。所以我使用gdisk制作一个并将MBR从原始卷(可以工作并使用我可以启动实例)复制到新卷。现在实例没有终止,但是我无法进入新启动的实例。

这种情况背后的原因可能是什么?如何获取更多信息(来自日志/ AWS控制台等),说明为什么会这样?

linux amazon-web-services amazon-ec2 amazon-ebs
3个回答
4
投票

要将GPT分区引导EBS卷缩小到标准图像似乎使用的8GB以下,您可以执行以下操作:(来自ddhttps://matt.berther.io/2015/02/03/how-to-resize-aws-ec2-ebs-volumes/方法略有不同)

源磁盘是/dev/xvdf,目标是/dev/xvdg

  1. 收缩源分区 $ sudo e2fsck -f /dev/xvdf1 $ sudo resize2fs -M /dev/xvdf1 会印出类似的东西 resize2fs 1.42.12 (29-Aug-2014) Resizing the filesystem on /dev/xvdf1 to 257491 (4k) blocks. The filesystem on /dev/xvdf1 is now 257491 (4k) blocks long. 我将其转换为MB,即257491 * 4 / 1024~ = 1006 MB
  2. 复制大小+从设备到设备(!),而不仅仅是分区到分区,因为它包括分区表和启动分区中的数据 $ sudo dd if=/dev/xvdf of=/dev/xvdg bs=1M count=1100
  3. 现在使用gdisk修复新磁盘上的GPT分区 $ sudo gdisk /dev/xvdg 你会受到粗暴的欢迎 GPT fdisk (gdisk) version 0.8.10 Warning! Disk size is smaller than the main header indicates! Loading secondary header from the last sector of the disk! You should use 'v' to verify disk integrity, and perhaps options on the experts' menu to repair the disk. Caution: invalid backup GPT header, but valid main header; regenerating backup header from main header.# Warning! One or more CRCs don't match. You should repair the disk! Partition table scan: MBR: protective BSD: not present APM: not present GPT: damaged **************************************************************************** Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk verification and recovery are STRONGLY recommended. **************************************************************************** Command (? for help): 以下是gdisk中的键盘输入。要解决这些问题,需要调整复制的分区表中存在的数据分区以适应新磁盘。这意味着需要将其重新创建得更小,并且需要将其属性设置为与旧分区定义匹配。没有测试它所以可能不需要将备份表重新定位到磁盘的实际末端,但我仍然这样做: 去额外的专家选择:x 将备份数据结构重定位到磁盘的末尾:e 回到主菜单:m 现在来修复分区大小 打印并记下分区1的某些属性(如果存在,则记录其他非引导分区): i 1 会表现出类似的东西 Partition GUID code: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (Linux filesystem) Partition unique GUID: DBA66894-D218-4D7E-A33E-A9EC9BF045DB First sector: 4096 (at 2.0 MiB) Last sector: 16777182 (at 8.0 GiB) Partition size: 16773087 sectors (8.0 GiB) Attribute flags: 0000000000000000 Partition name: 'Linux' 现在删除 d 1 并重新创建分区 n 1 输入所需的参数。这里的所有默认值都适用于我(=按回车键),当有疑问时请参考上面的分区信息 第一部门= 4096 最后一个扇区=新磁盘的实际结束 - 在此处采用默认值 type = 8300(Linux) 新分区的默认名称与旧分区不匹配。所以把它改成原来的One c 1 Linux(见上面的Partition name) 接下来要改变的是分区的GUID x c 1 DBA66894-D218-4D7E-A33E-A9EC9BF045DB(请参阅Partition unique GUID,而不是上面的分区指导代码) 那应该是它。返回主菜单和打印状态 m i 1 现在打印 Partition GUID code: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (Linux filesystem) Partition unique GUID: DBA66894-D218-4D7E-A33E-A9EC9BF045DB First sector: 4096 (at 2.0 MiB) Last sector: 8388574 (at 4.0 GiB) Partition size: 8384479 sectors (4.0 GiB) Attribute flags: 0000000000000000 Partition name: 'Linux' 唯一的变化应该是Partition size。 写入磁盘并退出 w y
  4. 增长文件系统以匹配整个(较小的)磁盘。第一步将其缩小到可以容纳的最小尺寸 qazxsw poi
  5. 我们完成了。分离卷并快照它。
  6. 可选步骤。为AMI选择适当的内核ID。

如果您正在处理PVM图像并在实例日志中遇到$ sudo resize2fs -p /dev/xvdg1

内核恐慌 - 不同步:VFS:无法挂载root

当您的实例未通过启动检查时,您可能需要执行此额外步骤。

此错误的解决方案是在从快照创建映像期间为PVM映像选择适当的内核ID。可以获得内核ID(AKI)的完整列表mount error

为您的图像选择合适的AKI,它们受到地区和建筑的限制!


2
投票

问题出在BIOS启动分区上。我能够通过首先使用较小的EBS卷初始化实例来解决这个问题。然后分离卷并将其附加到实例上将用于从较小的卷中更大的卷中复制内容。这创建了一个实际可行的BIOS启动分区。只需创建一个新的并复制启动分区不起作用。

现在,遵循两个链接中的任何一个中概述的步骤将有助于缩小根EBS的数量。


0
投票

今天,使用UBUNTU在这里没有任何其他解决方案。但是,我发现了:

  1. 小心:快照大卷(备份)
  2. 尽可能创建一个实例IDENTICAL,例如LARGE卷运行良好。但是体积较小(所需尺寸)
  3. 分离他的新卷并附加大卷(作为/ dev / sda1)和START实例
  4. 将较小的新卷作为/ dev / sdf附加
  5. 在新实例中登录。在/ mnt上安装较小的音量:sudo mount -t ext4 / dev / xvdf1 / mnt
  6. 删除/ mnt上的所有内容。忽略警告/错误,因为/ mnt无法删除:)使用sudo rm -rf / mnt
  7. 复制整个/到较小的卷:sudo cp -ax / / mnt
  8. 退出实例并在AWS控制台中将其停止
  9. 分开两卷。现在,重新附加较小的卷,重要的是/ dev / sda1
  10. 启动实例。登录实例并确认一切正常,体积较小
  11. 删除大卷,删除大型快照,创建较小卷的新快照。结束。
© www.soinside.com 2019 - 2024. All rights reserved.