Ubuntu

Ubuntu 16.04 伺服器新安裝無法通過 Grub(可能的 UEFI 問題)

  • December 15, 2016

嘗試將 Ubuntu 16.04 伺服器安裝到新初始化的磁碟上。使用 UEFI,和一個 4.5TB/分區。安裝無問題後,在重新啟動時,伺服器將無法通過 Grub。

硬體:

  • 新的超微伺服器
  • 硬體 6 x SSD RAID 5 - 4.5TB 虛擬磁碟
  • BIOS 全面更新

安裝步驟:

選擇 UEFI 虛擬 CD,即 Ubuntu 16.04 伺服器。注意 - 我確實選擇了 UEFI 虛擬 CD,而不是螢幕截圖中突出顯示的非 UEFI(我在截屏後意識到)

在此處輸入圖像描述

Ubuntu 預設引導分區佈局,非 LVM,完全未修改。確認分區,包括 ESP 存在。

在此處輸入圖像描述

安裝完成,沒有錯誤。安裝後,Ubuntu 在啟動菜單中可見:

在此處輸入圖像描述

無論選擇什麼選項,系統都會引導至 Grub:

在此處輸入圖像描述

在 Grub 中,據我了解,ESP 應該安裝在 /boot/efi。但是,Grub 顯示錯誤如下,但也可以正常列出 /,但是 / 裡面的任何東西,例如 /etc 都有錯誤,包括 /boot:

在此處輸入圖像描述

Grub 將分區顯示為:

在此處輸入圖像描述

我不確定如何從這裡開始。

因此,經過大量測試和診斷,我找到了解決方案,但我仍然不明白為什麼。如果有人可以向我解釋這一點,我會獎勵答案。

問題出在 /boot 目錄上。由於它在 UEFI 下安裝,ESP 在 /boot/efi 下設置,在 Grub 中這工作正常,我可以讀這個。

但是,某些包含所需核心的 /boot 目錄是不可讀的。當我嘗試手動載入核心並從 grub 啟動時,核心載入正常,但是在嘗試載入 initrd 時,我收到錯誤:

錯誤:嘗試在磁碟 hd0 之外讀取或寫入

據我了解,這是因為 /boot 位於 4.5TB 主分區上,文件可以在驅動器上的任何位置結束,在這種情況下,以及我之前的許多測試案例,/boot 中的文件太遠了驅動 Grub 閱讀。

在 ESP 分區解決此問題之前創建專用 /boot 分區。

這與此處記錄的問題相同:(根據https://carteryagemann.com/blog/102015-boot-partition.amp.html

然而我不明白的是,根據我的理解,在 UEFI 下,完整的 4.5TB 應該是可讀的。Ubuntu 應該在它的預設分區佈局下正常啟動,只有和 ESP 分區?

這得到了證實,因為我已經設法在其他 3 個相同的硬體和 bios 設置伺服器上安裝了沒有 /boot 分區的 Ubuntu。只是這台伺服器無法讀取 /boot.a 的某些內容

我已確保磁碟在 BIOS 中的 UEFI 下啟動。

嘗試使用 supergrub dvd/cd 引導。它可能會解決 grub 的問題。這在過去有時對我有用。失敗只是重新安裝。磁碟上的第一個分區看起來有點奇怪。該問題可能與對 ssd 的突襲有關。您可以嘗試在沒有 raid 的情況下進行安裝,看看您的情況如何。

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