当前位置: 首页 > 知识库问答 >
问题:

为什么EC2实例在调整根EBS卷大小后不能正确启动?

东郭弘
2023-03-14
State transition reason
Client.InstanceInitiatedShutdown: Instance initiated shutdown

一些修补和我发现新的卷没有BIOS引导分区。因此,我使用gdisk创建了一个MBR,并将MBR从原始卷(它可以工作,我可以使用它启动实例)复制到新卷。现在该实例没有终止,但我无法ssh到新启动的实例中。

发生这种情况背后的原因可能是什么?我如何(从日志/AWS控制台等)获得更多关于为什么会发生这种情况的信息?

共有1个答案

尚嘉勋
2023-03-14

要将GPT分区引导EBS卷缩小到标准映像使用的8GB以下,可以执行以下操作:(https://matt.berther.io/2015/02/03/how-to-resize-aws-ec2-ebs-volumes/中dd方法略有变化)

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

>

  • 收缩源分区

    $ 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.
    

    从一个设备复制到另一个设备(!),而不仅仅是从一个分区复制到另一个分区,因为这包括分区表和引导分区中的数据

    $ sudo dd if=/dev/xvdf of=/dev/xvdg bs=1M count=1100
    

    现在使用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):
    
      null
    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
    • 最后一个扇区=无论新磁盘的实际结尾是什么-在这里取默认值
    • 类型=8300(Linux)

    新分区的默认名称与旧分区不匹配。因此将其更改为原来的
    C
    1
    Linux(请参见上面的分区名)

    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'
    

    唯一的变化应该是分区大小

    增长文件系统以匹配整个(较小)磁盘。第一步把它缩小到它能容纳的最小尺寸

    $ sudo resize2fs -p /dev/xvdg1
    

    我们完蛋了。分离卷并对其进行快照。

  •  类似资料:
    • 你好,谢谢你花时间处理我的问题。首先让我向你介绍我的虚拟/培训项目。下面列出的类应该代表MVC模型(模型、视图、控制器)之后的程序。运行主类时,会打开FileChooser,从中可以选择. csv-File,其中包含保存为String[][]的信息。这个String[][]然后在视图类中可视化为JTable。这个JTable是带有BorderLayout的JFrame中的JPanel的一部分。中心

    • 我试图使用REST API调整AWS EC2实例的大小。有时,由于当前实例类型和新实例类型之间的兼容性问题,我会得到一个“InvalidInstanceType”错误。是否有一个API,我可以使用它来找出该EC2实例的大小可以调整为哪些实例类型?

    • 编辑:它现在可以工作了,我用画布扩展了这个类,将它的大小设置为宽度和高度,然后将它添加到JFrame,然后打包。这管用!但我认为造成这种情况的原因不是尺寸大小,而是我呈现它的方式,我从JFrame中获得了bufferStrategy,而不是画布,这不是应该的方式。

    • 问题内容: 我在Java中使用Apache POI创建一个Excel文件。我填写了数据,然后尝试自动调整每列的大小,但是大小总是错误的(我 认为是 一致的)。前两行始终(?)完全折叠。当我在excel中自动调整列的大小时,它可以完美运行。 (我相信)没有空白单元被写入,并且调整大小是我要做的 最后一 件事。 这是相关的代码: 这是一个精简的版本,没有错误处理等。 我知道那里有一些类似的问题,但是其

    • 问题内容: 所以我已经在Java编程学了一个学期左右的时间,而且我遇到了几次这个问题,最后才开始提出问题。 如果我做一个然后设置大小,例如。帧实际上并不长。据我所知,它实际上更长。另外,如果您将垂直尺寸设置得非常小(低于30),则框架甚至不会显示,只有操作系统顶部的窗口栏和框架才会变大,直到您将值超过30(这样看起来与)相同。为什么会这样,修复起来并不难,但是很奇怪,我很好奇为什么会这样? 如果您

    • 问题内容: 在添加新的键值对时,我有几个关于重建的问题。我将基于以下事实提出问题(对于Oracle JVM来说是正确的,不确定它们是否对其他JVM正确): 每当您将HashMap增大到大于阈值(阈值= loadFactor * numberOfEntries)时,调整大小即可重新构建以具有更大的内部表数组。新创建的Entry放在哪个存储区中无关紧要-地图仍会变大。即使所有条目都进入一个存储桶(即,