之前在本機(jī)有fedora 29的系統(tǒng),但是由于錯(cuò)誤安裝,把windows10 啟動(dòng)安裝到 linux 所在的硬盤中,導(dǎo)致原來的 efi中的grub啟動(dòng)被破壞,不能進(jìn)入到linux中;我首先通過磁盤精靈,把efi中啟動(dòng)文件拷貝到現(xiàn)有的windows安裝盤中,重新啟動(dòng)后成功從新的efi分區(qū)進(jìn)入windows; 然后開始進(jìn)行恢復(fù)fedora系統(tǒng);這時(shí)候,有兩種辦法,一種是重新安裝 linux; 另外一種方法就是重新修復(fù)grub引導(dǎo);因?yàn)閷?duì)linux比較了解,我選擇了后者;首先參考了幾篇已經(jīng)實(shí)踐的博客; Fedora 29 引導(dǎo)修復(fù): 創(chuàng)建修復(fù)環(huán)境: 制作live cd 或者 啟動(dòng)盤; 啟動(dòng)進(jìn)入live os sudo -i
創(chuàng)建系統(tǒng)chroot環(huán)境: mkdir -p /mnt/fedora mount /dev/fedora/root /mnt/fedora mount /dev/sda2 /mnt/fedora/boot (掛載boot, 如果boot 分區(qū)單獨(dú)分區(qū)的話) mount -t proc proc /mnt/fedora/proc mount -o bind /dev /mnt/fedora/dev mount -o bind /sys /mnt/fedora/sys mount -t devpts devpts /mnt/fedora/dev/pts mount -t efivarfs efivarfs /mnt/fedora/sys/firmware/efi/efivars chroot /mnt/fedora
更新修復(fù)的環(huán)境并安裝grub2: yum makecache dnf install grub2-efi grub2-efi-x64-modules shim (安裝系統(tǒng)為 64位) grub2-install --recheck /dev/sda1 (sda1 為efi 分區(qū)) exit (退出chroot, 好像我在里面使用 grub2-mkconfig 一直阻塞)
自動(dòng)生成grub.cfg,用于啟動(dòng),默認(rèn)生成的文件肯能啟動(dòng)不成功,建議手動(dòng)裝載linux內(nèi)核: mount /dev/sda2 /boot (啟動(dòng)分區(qū) sda2) mkdir /mnt/efi mount /dev/sda1 /mnt/efi (efi分區(qū) sda1) grub2-mkconfig -o /mnt/efi/EFI/fedora/grub.cfg(efi啟動(dòng)時(shí),可以索引到其他磁盤上的系統(tǒng),比如windows10 系統(tǒng)等) grub2-mkconfig -o /boot/grub2/grub.cfg
grub2 手動(dòng)引導(dǎo)加載linux內(nèi)核:參考 Using the GRUB2 boot prompt insmod part_gpt insmod ext2 insmod lvm insmod xfs ls set root=(hd0,gpt2) linux (hd0,gpt1)/vmlinuz-5.0.0-1.fc16.i686 root=/dev/dm-2 rhgb quiet selinux=0 (此處參數(shù)可以參考) initrd (hd0,gpt1)/initramfs-5.0.0-1.fc16.i686.img (此處參考書可以參考) boot(重新啟動(dòng)) grub2-mkconfig -o /boot/grub2/grub.cfg 進(jìn)入系統(tǒng)后,重新修復(fù)引導(dǎo); 當(dāng)然也可以在之前自動(dòng)生成的啟動(dòng)項(xiàng)的基礎(chǔ)上修改;在grub2 啟動(dòng)時(shí)使用 e 快捷鍵進(jìn)入修改界面,并使用ctrl+x執(zhí)行修改結(jié)果;
清理現(xiàn)場: reboot;至此,重啟并拔掉live usb,使用efi模式引導(dǎo)修復(fù)的系統(tǒng),完成啟動(dòng); 注意:此時(shí)windows efi的引導(dǎo)還在,只是被grub2覆蓋了, 先啟動(dòng)grub2;當(dāng)然我們可以使用磁盤精靈;將windows efi 拷貝到另外一個(gè)單獨(dú)的分區(qū); 啟動(dòng)后需要重新創(chuàng)建 grub2 cfg;使用上述 grub2-mkconfig 命令,在 /boot/efi/EFI/fedora/grub.cfg 和 /boot/grub2/grub.cfg 兩個(gè)位置覆蓋更新;
最后,祝您使用愉快!此教程總結(jié)自實(shí)際修復(fù)過程中,如果您有問題,歡迎留言咨詢;我最后是在自動(dòng)生成的項(xiàng)目的基礎(chǔ)上,結(jié)合手動(dòng)修改引導(dǎo)成功的;
如果你對(duì)linux的啟動(dòng)機(jī)制,以及mbr,efi 等不是很了解;建議還是重新安裝系統(tǒng)為好,防止把現(xiàn)有的windows系統(tǒng)搞壞;當(dāng)前很多的pc機(jī),都是基于馮諾依曼結(jié)構(gòu)設(shè)計(jì),計(jì)算機(jī)的中心是存儲(chǔ);所以要保護(hù)好磁盤上的分區(qū)數(shù)據(jù)不被破壞;重新劃分磁盤的時(shí)候,也要多加小心; 保持更新,轉(zhuǎn)載請注明出處:https://www.cnblogs.com/xuyaowen/p/grub-rebuild-after-installed-windows.html ;更多內(nèi)容請關(guān)注cnblogs.com/xuyaowen; 參考鏈接:
|