减少 Amazon Linux 1 上的 Amazon EBS 根卷大小

减少 Amazon Linux 1 上的 Amazon EBS 根卷大小

我一直在尝试使用以下过程来减少我的 Amazon Linux 1 AMI 根卷的大小本文档(在失败后进行了一些修改)并不断遇到以下步骤的错误:

$ sudo grub-install --root-directory=/mnt/new-volume/ --force /dev/xvdf

这是旧版 GRUB(版本0.97-94.32.amzn1

我最初收到以下错误:

Unrecognized option `--force'

结果删除了--force标志,并且只使用了:

$ sudo grub-install --root-directory=/mnt/new-volume/ /dev/xvdf

其结果是:

/dev/xvdf does not have any corresponding BIOS drive

我尝试使用 parted 或 fdisk 创建 BIOS 启动分区,具体说明参见此主题但每种方法都会导致同样的失败。请注意,我使用的特定实例类型 (r5.large) 将驱动器重命名为相应的“nvme*”名称,如 lsblk 输出中所示:

nvme0n1       259:3    0  200G  0 disk
├─nvme0n1p1   259:4    0  200G  0 part /
└─nvme0n1p128 259:5    0    1M  0 part
nvme1n1       259:0    0   40G  0 disk
├─nvme1n1p2   259:2    0   40G  0 part /mnt/new-volume
└─nvme1n1p1   259:1    0    1M  0 part

在本文中找到了一篇与错误消息相关的文章Linux 问题帖子但这并不能解决我的问题。我尝试通过 chroot 进入分区并遇到了同样的问题,并尝试使用中间 Amazon Linux 1 或 Amazon Linux 2 主机,但仍然遇到该问题。

我注意到,在 Amazon Linux 1 中单独使用根卷时也会出现同样的问题:

grub-install /dev/sda OR grub-install /dev/sda1

但无论如何,除非新磁盘被列为辅助驱动器,否则无法从其启动。grub单独使用命令旧版 GRUB 手册安装也失败了。我是否在寻找错误的方法来创建新的较小根卷,或者我是否遗漏了上述步骤?如有必要,可以提供进一步的详细信息。

答案1

遵循相同的手册,我认为这使它起作用:

在 Ubuntu 20 上/boot/grub/grub.cfg有错误的 uuid,所以我需要在这里修复:/etc/default/grub.d/40-force-partuuid.cfg然后/boot/grub/grub.cfg使用grub-mkconfig -o ...

此外,我还对新的 EBS、卷进行了分区,似乎您也做了同样的事情:

Device          Start       End   Sectors  Size Type
/dev/nvme0n1p1   2048    411647    409600  200M BIOS boot
/dev/nvme0n1p2 411648 104857566 104445919 49.8G Linux filesystem

但不确定是否有必要。

答案2

您必须指定正确的块设备,因为您正在使用nvme设备代替维普资讯

sudo grub-install --root-directory=/mnt/new-volume/ --force /dev/nvme1n1

答案3

我通过同时执行以下操作找到了针对 Amazon Linux 1 的解决方案,但仍需进一步检查。

  1. 使用相同的 AMI 启动新实例,但将根卷大小更改为所需数量。

  2. 停止新实例,分离较小的 EBS 卷,并将其附加到附加了较大根卷的当前实例(处于停止状态)。

  3. 启动当前实例(现在将较小的 EBS 卷作为辅助驱动器连接)。

  4. 使用以下命令复制根卷的内容(假设它已安装到/mnt/new-volume

    $ rsync -axv / /mnt/新卷

  5. 停止当前实例,分离两个卷。

  6. 将较小的新根卷附加到实例。

  7. 启动实例

这不是一种优雅的解决方法,但已经足够了,因为不清楚原始根卷是如何创建和启动的。

相关内容