Linux

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

  • April 12, 2022

我一直在嘗試使用本文件中的過程(在失敗後進行了一些修改)來減小我的 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 Questions 文章中找到了一篇與錯誤消息相關的文章,但這並沒有證明可以解決我的問題。我嘗試通過 chroot-ing 進入分區並遇到同樣的問題,並嘗試使用中間 Amazon Linux 1 或 Amazon Linux 2 主機,但繼續遇到問題。

我確實注意到在 Amazon Linux 1 中單獨使用根卷時也會出現同樣的問題:

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

但無論如何,除非它被列為輔助驅動器,否則新磁槃無法啟動。grub單獨使用Legacy GRUB 手冊中的命令進行安裝也失敗了。我是否正在尋找錯誤的程序來創建一個新的較小的根卷,或者我在上述步驟中遺漏了什麼?可以根據需要提供進一步的細節。

在此期間,我通過執行以下操作找到了適用於 Amazon Linux 1 的解決方法,但仍願意接受進一步檢查。

  1. 使用相同的 AMI 啟動新實例,但將根卷大小更改為所需數量。
  2. 停止新實例,分離較小的 EBS 卷,並將其附加到附加較大根卷的目前實例(處於停止狀態)。
  3. 啟動目前實例(現在將較小的 EBS 卷附加為輔助驅動器)。
  4. 使用以下內容複製根卷的內容(假設它已安裝到/mnt/new-volume

$ rsync -axv / /mnt/new-volume 5. 停止目前實例,分離兩個卷。 6. 將較小的新根卷附加到實例。 7. 啟動實例

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

您必須指定正確的塊設備,因為您使用的是nvme設備而不是xvdf

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

引用自:https://serverfault.com/questions/1098360