文章目錄
- 一、操作背景
- 二、操作步驟
- 1.配置本地鏡像倉庫(可選)
- 2.確認當前分區是gpt分區
- 3.創建EFI分區
- 4.安裝和修改GRUB
- 5.重啟配置生效
- 三、驗證EFI模式
- 方法 1:檢查 /sys/firmware/efi 目錄
- 方法 2:檢查 dmesg 啟動日志
- 方法 3:使用 efibootmgr(僅 UEFI 有效)
- 方法 4:檢查磁盤分區表
一、操作背景
公司虛擬化平臺vsphere上新建一臺大模型服務器,操作系統是ubuntu24.04版本,BIOS啟動方式。ESXI上正在配置直通顯卡,需要EFI,這與現有的BIOS沖突,因此需要將BIOS改為EFI。
二、操作步驟
注意事項:
撰寫本文時,筆者已將BIOS改為EFI,因此圖片的各項配置是最終結果。如果想模仿本文操作,您主機的部分配置顯示信息與筆者不同,是正常的,只需要確認最后正常修改為EFI即可。
1.配置本地鏡像倉庫(可選)
筆者的工作場景,無法直接從外網的鏡像源地址下載對應的軟件包,因此需要把ISO鏡像掛載到當前主機,如果apt下載沒有問題的,可以忽略此步。
首先打開vsphere找到對應的主機,添加CD設備,勾好各選項后,找到上傳好的ISO鏡像文件。
一般來講,新加的鏡像文件是 /dev/sr0
這里 筆者的鏡像文件是 /dev/sr1
我只是臨時使用鏡像源,因此不配置開機自動掛載。
mount /dev/sr1 /mnt
最終的掛載情況如上圖顯示,接著修改apt配置文件。
進入到 /etc/apt/sources.list.d/ 目錄,備份ubuntu.sources 為 ubuntu.sources.bak ,然后對源配置文件進行修改,結果如下。
如果掛載目錄和筆者一樣都是 /mnt 那么ubuntu.sources文件直接復制就好,不需要任何修改;如果不一樣,只需要改URIs這個參數就好。
最后更新軟件包列表
apt update
到此為止,本地鏡像倉庫配置完成。
2.確認當前分區是gpt分區
使用命令查看當前系統根分區/ 是否是gpt分區,如果是mbr分區,需要轉化為gpt
fdisk -l /dev/sda
如果是mbr分區,需要首先安裝gdisk工具
apt install gdisk
接著轉換格式硬盤
gdisk /dev/sda
接著按照提示,選擇 r 恢復和變換菜單;選擇g進行轉換。
此處具體操作不作贅述,如果不清楚,可以查找其他線上資料。
3.創建EFI分區
同樣的,先創建一個512M硬盤,精簡置備。
根據2.2的第二張圖片,筆者的新塊存儲設備名稱是 sdc ,文件的絕對路徑是/dev/sdc 因此對其創建分區。
fdisk /dev/sdc
磁盤分區的具體操作,此處筆者不作具體贅述,若不清楚,可參考筆者的另一篇文章。
Linux磁盤分區和管理
將512M全部空間分配給 /dev/sdc1
格式化操作
mkfs.fat -F32 /dev/sdc1
新建目錄 /boot/efi
mkdir /boot/efi
設置為永久掛載模式
在 /etc/fstab 文件添加一行內容如下
/dev/sdc1 /boot/efi vfat defaults 0 1
最后使掛載生效。
mount -a
4.安裝和修改GRUB
安裝GRUB引導程序,指向EFI分區
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
執行這個命令后,有可能會報錯。
報錯大概如下:
grub-install:error /usr/lib/grub/x86_64-rfi/modinfo.sh doesn't exist.
看報錯是缺少什么文件,實際上就是 GRUB EFI 的相關軟件包未安裝
所以直接裝上就好。
apt install grub-efi-amd64
然后重新跑一下第一個命令。
最后重新生成gurb配置文件。
update-grub
5.重啟配置生效
首先虛擬機關機。
然后打開vsphere控制臺,找到主機,將BIOS改為EFI,保存退出。
重啟開機后,需要等待一段時間,能夠正常開機并且經過下面的驗證,表示已從BIOS切換為EFI模式。
三、驗證EFI模式
方法 1:檢查 /sys/firmware/efi 目錄
ls /sys/firmware/efi
判斷結果:
目錄存在(顯示文件列表)→ EFI/UEFI 模式
目錄不存在(報錯 No such file or directory)→ Legacy BIOS 模式
方法 2:檢查 dmesg 啟動日志
dmesg | grep -i "efi\|bios"
判斷結果:
出現 EFI v 或 UEFI → UEFI 模式
出現 BIOS 或無 EFI 字樣 → Legacy BIOS 模式
方法 3:使用 efibootmgr(僅 UEFI 有效)
efibootmgr
判斷結果:
顯示 UEFI 啟動項列表 → UEFI 模式
報錯 EFI variables are not supported → BIOS 模式
方法 4:檢查磁盤分區表
parted -l | grep "Partition Table"
判斷結果:
Partition Table: gpt → 通常是 UEFI 模式(GPT 分區表)
Partition Table: msdos → 通常是 BIOS 模式(MBR 分區表)
?? 注意:磁盤分區表(GPT/MBR)和啟動模式(UEFI/BIOS)并非嚴格綁定,但 UEFI 通常搭配 GPT,BIOS 通常搭配 MBR。