Уменьшение размера корневого тома Amazon EBS на Amazon Linux 1

Уменьшение размера корневого тома Amazon EBS на Amazon Linux 1

Я пытаюсь уменьшить размер корневого тома 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

Я попытался создать загрузочный раздел BIOS с помощью parted или fdisk, следуя инструкциям, указанным вэта темано каждый метод привел к той же ошибке. Обратите внимание, что конкретный тип экземпляра, который я использую (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-ing в раздел и столкнулся с той же проблемой, и пробовал использовать промежуточный хост Amazon Linux 1 или Amazon Linux 2, но проблема все равно осталась.

Я заметил, что та же проблема возникает при использовании только корневого тома в Amazon Linux 1:

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

Но независимо от этого новый диск не может быть загружен, если он не указан как вторичный диск. Используя grubкоманду только изруководство Legacy 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устройство вместоxvdf

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. Запустить экземпляр

Это не такой уж элегантный способ решения проблемы, но его оказалось достаточно, поскольку неясно, как создается исходный корневой том и как с него загружается.

Связанный контент