如何將 Linux 開機載入程式備份到 U 盤

將 GRUB 設定和啟動檔案儲存到 U 碟;在 UEFI 系統上,也要儲存 EFI 檔案和韌體條目清單。這些是恢復參考,並非完整的磁碟映像。如果啟動程式碼缺失,請使用 Linux 救援媒體重新安裝 GRUB 以適應實際的啟動佈局。

GRUB備份涵蓋哪些內容

發行版通常會根據`/etc/grub/ config/grub`/etc/default/grub和`/etc/grub/config/grub`產生選單/etc/grub.d/,支援檔案位於 `/etc/grub/config/grub`/boot/grub或`/etc/grub/config/grub` 下。 Debian 會記錄產生的選單,因此請恢復設定並重新產生。 BIOS GRUB 可能使用 MBR 和嵌入式磁區;UEFI 使用 FAT EFI 系統分割區 (ESP) 上的檔案以及韌體變數中的啟動項目。/boot/grub2grub.cfg

將 GRUB 備份到 USB 隨身碟

1. 掛載 USB 裝置並識別啟動模式

連接U盤,在檔案總管中開啟它,並記下其掛載位置。然後列出磁碟並檢查當前系統是如何啟動的:

lsblk -o NAME,SIZE,FSTYPE,LABEL,UUID,MOUNTPOINTS
findmnt /
if [ -d /sys/firmware/efi ]; then echo UEFI; else echo BIOS; fi
Linux 檔案管理器顯示已掛載的 USB 驅動器,其中包含備份資料夾和其他文件
已掛載的 USB 磁碟區是備份檔案的保存位置。

使用大小、檔案系統、標籤和掛載點來區分 USB 磁碟和內建磁碟。諸如此類的名稱/dev/sda可能會更改,而且根分割區並不總是 BIOS 開機載入程式的目標磁碟。

lsblk 指令的終端輸出列出了一個 EFI 分割區、一個 Linux 根分割區和一個獨立的 USB 磁碟機
使用裝置詳細資訊尋找 ESP 和可移動磁碟機。

在 UEFI 系統中,請在輸出中尋找 EFI 系統分割區 (ESP)。它通常採用 FAT32 格式,並具有諸如 `/etc/ESP`、`/usr/local/bin`/boot/efi或/efi`/usr/local/bin`之類的掛載點。/boot它通常包含一個EFI目錄。

2. 歸檔 GRUB 設定與支援文件

將範例中的 USB 路徑替換為您找到的掛載點。路徑中包含空格時,請保留引號。

USB="/media/$USER/USB_LABEL"
BACKUP="$USB/grub-backup"
sudo mkdir -p "$BACKUP"

paths=(etc/default/grub etc/grub.d)
for p in etc/default/grub.d boot/grub boot/grub2; do
  [ ! -e "/$p" ] || paths+=("$p")
done
sudo tar -C / -czf "$BACKUP/grub-files.tar.gz" "${paths[@]}"
Linux終端機顯示GRUB設定檔正在複製到USB磁碟上的備份資料夾。
將 GRUB 設定、選單腳本和現有啟動文件一起儲存。

即使在不支援 Linux 檔案系統的 USB 檔案系統上,該檔案也能保留 Linux 權限。它包含了此安裝中可選的 GRUB 目錄。

3. 在 UEFI 中,儲存 EFI 檔案和韌體條目

設定ESP為您指定的掛載點;本範例使用/boot/efi。如果其他供應商也共用目錄,則歸檔檔案將包含其他供應商的檔案EFI。

ESP="/boot/efi"
sudo tar -C "$ESP" -czf "$BACKUP/esp-files.tar.gz" EFI
sudo efibootmgr -v | sudo tee "$BACKUP/uefi-boot-entries.txt" >/dev/null
Linux 檔案管理器顯示 EFI 系統分割區,其中包含 BOOT 資料夾和作業系統供應商資料夾。
共享的 ESP 可以包含多個作業系統的啟動檔。
USB備份資料夾,其中包含GRUB和EFI歸檔檔以及UEFI啟動項目文字檔。
將韌體條目清單保存在已儲存的啟動檔案旁邊。

efibootmgr -v列印啟動項詳細信息,而非所有韌體設定。在僅支援 BIOS 的系統上,請跳過這些命令。

4. 驗證備份並彈出驅動器

tar -tzf "$BACKUP/grub-files.tar.gz" | head
[ ! -f "$BACKUP/esp-files.tar.gz" ] || tar -tzf "$BACKUP/esp-files.tar.gz" | head
ls -lh "$BACKUP"
sync

檢查備份檔案的名稱和大小是否合理,然後在拔下USB之前先彈出。請將備份檔案與可能在建立啟動媒體時被擦除的Live安裝程式USB分開存放。

啟動失敗後使用備份

5. 在已安裝系統的啟動模式下啟動即時會話

如果可能,請在相同的 UEFI 或傳統 BIOS 模式下啟動 Linux Live USB 或救援 USB。/boot再次識別根分割區、任何單獨的分割區以及 ESP 分割區;裝置名稱可能有所不同。

已選擇 live-session 選項的通用 Linux live USB 啟動選單
即時會話提供了用於檢查和修復安裝的工具。

將已安裝的系統掛載到暫存位置(例如 /usr/local/bin)/mnt/target,並將單獨的啟動分割區掛載到對應的路徑。請按照發行版的說明進行操作,以取得具體的分割區和 chroot 指令。

在 Live Linux 終端機中掛載根分割區和 EFI 分割區,並使用 chroot 進入已安裝的系統。
在 chroot 環境中執行修復指令之前,請先掛載已安裝的分割區。

6. 選擇性地恢復設置,然後修復 GRUB

掛載已安裝的根目錄和任何單獨的/boot分割區後,僅當歸檔檔案來自此安裝和發行版時才恢復它:

sudo tar -xzf "/path/to/grub-backup/grub-files.tar.gz" -C /mnt/target

請將範例路徑替換為 USB 裝置的實際位置。請勿將 EFI 歸檔檔案解壓縮到共用的 ESP 分割區;請依照發行版的重新安裝步驟重新建立啟動檔案和韌體條目。安全啟動可能需要已簽署的 shim 和 GRUB 軟體包。

在 chroot 環境中,使用發行版的指令和輸出路徑重新產生選單。 Debian 和 Ubuntu 通常使用`/dev/sdev` update-grub;其他發行版的文件中會提供 `/dev/sdev`grub-mkconfig或grub2-mkconfig`/dev/sdev`。如果啟動程式碼缺失,請為正確的 BIOS 磁碟或 UEFI 分割區重新安裝 GRUB。在執行 `/dev/sdev` 之前,請先驗證目標系統grub-install。

目標 chroot 環境中的終端機正在重新產生 GRUB 選單並報告已發現的 Linux 核心。
恢復設定後,從修復後的安裝重新產生選單。

為什麼不只恢復前 512 位元組呢?

單一磁區映像會遺失 BIOS GRUB 的嵌入式映像或 BIOS 啟動分割區。第一個磁區還包含分割區表數據,因此還原舊鏡像可能會損壞已變更的磁碟。 UEFI 檔案和韌體條目是分開的。請將此存檔用作復原資訊;保留經過測試的完整磁碟映像以進行完全回滾。

官方參考資料

留下評論

如何在Linux系統上使用Cameractrls更改網路攝影機設置

如何在Linux系統上使用Cameractrls更改網路攝影機設置

使用 Cameractrls 在 Linux 上變更網路攝影機設定:調整曝光、色彩、減少閃爍和其他支援的控件,然後檢查相容的視訊模式。

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

在 Linux 系統上,您可以使用 JetBrains Toolbox 或獨立的 tar.gz 壓縮套件安裝 PhpStorm,此外還有 Snap 和 Arch AUR 版本可供選擇。 Java 已預先安裝。

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

在 Linux 上使用 GNOME Disks 或 dd 建立 CD-ROM ISO。識別光碟機,監控複製過程,驗證鏡像,並了解何時損壞的光碟或音訊光碟需要其他工具。

如何在 XFCE 4 上設定雙面板

如何在 XFCE 4 上設定雙面板

為每個顯示器建立一個單獨的 XFCE 4 面板,將第二個面板指派給正確的輸出,調整其位置和大小,並新增所需的啟動器和狀態項目。

如何在Linux上安裝Cisco Packet Tracer

如何在Linux上安裝Cisco Packet Tracer

下載適用於 Ubuntu 64 位元系統的 Cisco Packet Tracer 9.0.1,使用 APT 安裝 DEB 軟體包,在終端機中接受許可協議,然後登入以啟動實驗環境。

如何在Linux系統下使用GIMP摳圖

如何在Linux系統下使用GIMP摳圖

在 Linux 系統上使用 GIMP 去除照片背景:描繪主體,刪除選定的背景,保持透明度,並匯出可重複使用的 PNG 檔案。

免費下載 FlightGear:官方安裝指南

免費下載 FlightGear:官方安裝指南

從官方網站免費下載 FlightGear。比較 Windows、macOS 和 Linux 版本的軟體包,安裝資料文件,即可開始您的首次飛行。

Google Tasks桌面應用程式:如何在電腦上使用

Google Tasks桌面應用程式:如何在電腦上使用

在瀏覽器中開啟 Google Tasks,新增 Chrome 捷徑或應用程式啟動,並透過行事曆和 Gmail 管理有日期的待辦事項。

OKSampler:一款免費、簡單的鍵盤節拍音樂採樣器

OKSampler:一款免費、簡單的鍵盤節拍音樂採樣器

OKSampler 可以將 MP3 片段對應到鍵盤按鍵,並支援音訊循環播放。了解這款經典免費軟體的功能、其舊功能的缺失以及下載前需要檢查的事項。

如何在 Linux 系統上安裝 Wireshark:Ubuntu、Fedora、Arch 等

如何在 Linux 系統上安裝 Wireshark:Ubuntu、Fedora、Arch 等

使用目前軟體包命令在 Ubuntu、Debian、Fedora、Arch 或 openSUSE 上安裝 Wireshark,然後安全地配置即時資料包擷取。