Clonezilla 複製基於 MBR 的 linux 分區並恢復到基於 UEFI 的系統
我在我的實際筆記型電腦上有一個 xubuntu 分區,帶有 MBR 和 grub,用於雙啟動視窗和 Linux。我正在嘗試複製 xubuntu 分區並恢復到基於 UEFI 的新筆記型電腦中。
在新的筆記型電腦(最初只有 Windows 10 的 HP Probook)中,我設法創建了一個 ext4 分區並安裝了 xubuntu 的新副本。現在我正在嘗試用我的 xubuntu clonezilla 映像覆蓋新的 ext4 分區,但是在恢復後我遇到了問題,因為 xubuntu 系統無法啟動並且 grub 以 cmdline 模式啟動。
我仍然可以通過 BIOS 啟動選項啟動到 windows 分區。
這就是我所做的:
- 使用 clonezilla 將舊的 ext4 xubuntu 分區複製到映像(在 USB 磁碟上)
- 在新筆記型電腦上,我禁用了安全啟動並禁用了舊版支持以創建/調整分區大小
- 創建了一個新的空 ext4 分區,我在其中安裝了新的 xubuntu 系統。現在我可以同時啟動 windows 和 xubuntu
- 恢復了 ext4 分區上的 clonezilla xubuntu 鏡像,覆蓋了全新安裝的 xubuntu
- 系統無法用 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 中的引導順序。