全部產品
Search
文件中心

:修改GRUB設定檔中的磁碟分割標識方式為UUID

更新時間:Mar 15, 2025

GRUB是一個用於引導作業系統啟動的程式。其設定檔中支援使用裝置名稱或UUID來標識磁碟分割。本文介紹如何將GRUB設定檔中的磁碟分割標識方式修改為UUID

背景資訊

GRUB設定檔中,若使用裝置名稱(例如/dev/vda1)來標識磁碟分割,其裝置名稱可能會因為匯入鏡像後啟動執行個體等操作而發生改變。如果指定的UUID與磁碟分割實際的UUID不匹配,也可能導致系統啟動時核心無法正確負載檔案系統,從而造成系統啟動失敗。

操作步驟

為了確保GRUB設定檔中根檔案系統磁碟分割標識能夠被程式成功讀取,建議在配置時採用UUID方式來標識磁碟分割。具體操作步驟如下。

警告

修改GRUB配置為高危操作,如果操作不當很可能導致執行個體無法啟動,在操作之前,請務必確認您已為執行個體建立快照,以確保資料安全。

確認GRUB版本資訊

目前,GRUB程式分為GRUB2GRUB Legacy兩個版本,後者除修複錯誤外,已不再進行開發和維護。確認當前使用GRUB版本的操作步驟如下。

  1. 使用Workbench工具以SSH協議登入Linux執行個體

  2. 參考如下方法,以確認GRUB版本資訊。

    GRUB2

    運行如下命令,查看當前系統的GRUB設定檔結構。

    sudo ls /etc/grub.d/

    回顯資訊樣本如下,如果其中包含00_header40_custom等內容,表明您使用的是GRUB2

    00_header  05_debian_theme  10_linux  20_linux_xen  30_os-prober  30_uefi-firmware  40_custom  41_custom

    GRUB Legacy

    運行如下命令,查看/boot目錄下的設定檔結構。

    sudo ls /boot/grub/

    如果存在/boot/grub目錄,且在該目錄下存在menu.lst檔案,那麼您使用的是GRUB Legacy

確認GRUB設定檔資訊

GRUB2GRUB Legacy對應的設定檔存在一些差異。

  • GRUB2:設定檔通常位於/boot/grub/grub.cfg/boot/grub2/grub.cfg中。

  • GRUB Legacy:設定檔通常位於/boot/grub/menu.lst/boot/grub/grub.conf中。

您可以參考上述樣本,進入/boot目錄以確認GRUB設定檔資訊。

擷取當前磁碟資訊

您需要擷取當前執行個體的磁碟分割資訊,以便後續修改GRUB設定檔。具體操作如下。

  1. 運行如下命令,查看當前執行個體磁碟分割資訊。

    sudo blkid

    回顯資訊樣本如下。

    /dev/vda1: LABEL="/" UUID="e7e8xxxx-xxxx-xxxx-xxxx-xxxxb9263645" TYPE="ext4" PARTUUID="0efbxxxx-01"

    以上樣本顯示,/dev/vda1裝置的UUIDe7e8xxxx-xxxx-xxxx-xxxx-xxxxb9263645

修改GRUB設定檔

重要

下述樣本以GRUB2設定檔是/boot/grub2/grub.cfg為例。如果您使用的是GRUB Legacy,或您的系統對GRUB設定檔進行了個人化定製。則需根據實際情況,對步驟1步驟2中涉及的命令進行適當調整。

  1. 運行如下命令,備份當前GRUB設定檔。

    sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
    重要

    如果修改GRUB設定檔後,想要恢複到修改前的狀態,您可以運行如下命令。

    sudo cp -f /boot/grub2/grub.cfg.bak /boot/grub2/grub.cfg

  2. 運行如下命令,開啟GRUB設定檔。

    sudo vim /boot/grub2/grub.cfg
  3. i進入編輯模式,將設定檔中所有包含root=/dev/vda1的內容全部替換為root=UUID=e7e8xxxx-xxxx-xxxx-xxxx-xxxxb9263645

    linux   /boot/vmlinuz-3.16.0-4-amd64 root=/dev/vda1 ro single debian-installer=en_US net.ifnames=0 vga=792 console=tty0 console=ttyS0,115200n8

    修改後的內容如下所示。

    linux   /boot/vmlinuz-3.16.0-4-amd64 root=UUID=e7e8xxxx-xxxx-xxxx-xxxx-xxxxb9263645 ro single debian-installer=en_US net.ifnames=0 vga=792 console=tty0 console=ttyS0,115200n8
  4. 編輯完成後,按Esc鍵退出編輯模式,輸入:wq儲存並退出。

  5. (可選)運行如下命令,查看修改後的設定檔。從而確保GRUB中配置的磁碟分割標識都被修改為UUID方式。

    sudo cat /boot/grub2/grub.cfg

相關文檔

關於fstab檔案中配置掛載資料盤的操作,請參見在fstab檔案中配置UUID方式自動掛載資料盤