減少 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.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. 啟動實例

它不是一種優雅的解決方法,但已經足夠了,因為尚不清楚原始根卷是如何創建和引導的。

相關內容