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)은 lsblk 출력에 표시된 대로 드라이브 이름을 해당 "nvme*" 이름으로 바꿉니다.

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.cfgUUID가 잘못되었으므로 여기에서 수정해야 했습니다. 그런 다음 새 항목 /etc/default/grub.d/40-force-partuuid.cfg을 다시 생성해야 합니다./boot/grub/grub.cfggrub-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. 인스턴스 시작

해결 방법만큼 훌륭하지는 않지만 원래 루트 볼륨이 생성되고 부팅되는 방법이 명확하지 않기 때문에 충분했습니다.

관련 정보