Uefi

Clonezilla 複製基於 MBR 的 linux 分區並恢復到基於 UEFI 的系統

  • January 14, 2019

我在我的實際筆記型電腦上有一個 xubuntu 分區,帶有 MBR 和 grub,用於雙啟動視窗和 Linux。我正在嘗試複製 xubuntu 分區並恢復到基於 UEFI 的新筆記型電腦中。

在新的筆記型電腦(最初只有 Windows 10 的 HP Probook)中,我設法創建了一個 ext4 分區並安裝了 xubuntu 的新副本。現在我正在嘗試用我的 xubuntu clonezilla 映像覆蓋新的 ext4 分區,但是在恢復後我遇到了問題,因為 xubuntu 系統無法啟動並且 grub 以 cmdline 模式啟動。

我仍然可以通過 BIOS 啟動選項啟動到 windows 分區。

這就是我所做的:

  1. 使用 clonezilla 將舊的 ext4 xubuntu 分區複製到映像(在 USB 磁碟上)
  2. 在新筆記型電腦上,我禁用了安全啟動並禁用了舊版支持以創建/調整分區大小
  3. 創建了一個新的空 ext4 分區,我在其中安裝了新的 xubuntu 系統。現在我可以同時啟動 windows 和 xubuntu
  4. 恢復了 ext4 分區上的 clonezilla xubuntu 鏡像,覆蓋了全新安裝的 xubuntu
  5. 系統無法用 xubuntu 分區啟動,用 grub 命令行啟動

如何恢復 grub 選項?

謝謝

Xubuntu 的 GRUB 可能通過文件系統 UUID 辨識包含 GRUB 配置文件和/或 Xubuntu 根文件系統的分區。當您使用 clonezilla 映像覆蓋全新安裝時,此 UUID 將被映像中的文件系統 UUID 覆蓋。

GRUB 命令行模式表明 GRUB 甚至找不到自己的配置文件和/或normal.mod文件,因為 UUID 已更改。可能可以使用命令行模式執行手動引導所需的命令,但如果您之前沒有使用過 GRUB 命令行,這將非常棘手。相反,您可能應該使用 Xubuntu Live CD Recovery - 它更容易。要訪問您的安裝,請找到“更新失敗”段落並執行步驟 1-7:

1.) 啟動

$$ X $$Ubuntu Live CD。 2.) 按 Ctrl-Alt-F1

3.) sudo mount /dev/sda1 /mnt## 將 sda1 替換為根分區的實際設備名稱

4.)sudo mount --bind /dev /mnt/dev

5.)sudo mount --bind /proc /mnt/proc

6.)sudo mount --bind /sys /mnt/sys

7.)sudo chroot /mnt

現在您應該以命令行模式訪問從映像恢復的文件系統。

但由於您的映像來自基於 MBR 的系統,它很可能包含 GRUB 引導載入程序的 MBR 版本。在您的新系統上,您將需要 GRUB 的 UEFI 版本以及efibootmgr命令。在替換 GRUB 之前,您可能需要將 ESP 分區(= 包含磁碟上任何作業系統的所有 UEFI 引導載入程序的小型 FAT 分區)掛載到/boot/efi- 如果該掛載點尚不存在,請創建它。

如果 Live CD 成功啟動了網路連接,您現在可以只使用apt命令:

sudo apt-get remove grub-pc
sudo apt-get install grub-efi-amd64 grub-efi-amd64-signed efibootmgr

作為 GRUB 重新安裝過程的一部分,僅安裝很可能grub-efi-amd64會自動重新建構您的 GRUB 配置,您無需執行任何其他操作。您可能希望顯示 UEFI 引導設置sudo efibootmgr -v並將其與 UEFI 引導設置進行比較。您將能夠使用該efibootmgr命令來更改例如從 Xubuntu 中的引導順序。

引用自:https://unix.stackexchange.com/questions/494415