windows10 雙系統安裝后,grub2 引導修復(親自實驗);grub2 命令行 手動加載內核;fedora 29 系統grub2引導修復;


之前在本機有fedora 29的系統,但是由於錯誤安裝,把windows10 啟動安裝到 linux 所在的硬盤中,導致原來的 efi中的grub啟動被破壞,不能進入到linux中;我首先通過磁盤精靈,把efi中啟動文件拷貝到現有的windows安裝盤中,重新啟動后成功從新的efi分區進入windows; 然后開始進行恢復fedora系統;這時候,有兩種辦法,一種是重新安裝 linux; 另外一種方法就是重新修復grub引導;因為對linux比較了解,我選擇了后者;首先參考了幾篇已經實踐的博客;

Fedora 29 引導修復:

  • 創建修復環境:
    • 制作live cd 或者 啟動盤;
    • 啟動進入live os 
    • sudo -i 
  • 創建系統chroot環境:
    • mkdir -p /mnt/fedora
    • mount /dev/fedora/root /mnt/fedora
    • mount /dev/sda2 /mnt/fedora/boot (掛載boot, 如果boot 分區單獨分區的話)
    • 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
  • 更新修復的環境並安裝grub2:
    • yum makecache 
    • dnf install grub2-efi grub2-efi-x64-modules shim (安裝系統為 64位) 
    • grub2-install --recheck /dev/sda1 (sda1 為efi 分區)
    • exit (退出chroot, 好像我在里面使用 grub2-mkconfig 一直阻塞) 
  • 自動生成grub.cfg,用於啟動,默認生成的文件肯能啟動不成功,建議手動裝載linux內核:
    • mount /dev/sda2 /boot (啟動分區 sda2) 
    • mkdir /mnt/efi 
    • mount /dev/sda1 /mnt/efi (efi分區 sda1) 
    • grub2-mkconfig -o /mnt/efi/EFI/fedora/grub.cfg(efi啟動時,可以索引到其他磁盤上的系統,比如windows10 系統等)

    • grub2-mkconfig -o /boot/grub2/grub.cfg 

  • grub2 手動引導加載linux內核:參考 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 (此處參數可以參考)
    • initrd (hd0,gpt1)/initramfs-5.0.0-1.fc16.i686.img (此處參考書可以參考)
    • boot(重新啟動)
    • grub2-mkconfig -o /boot/grub2/grub.cfg 進入系統后,重新修復引導;
    • 當然也可以在之前自動生成的啟動項的基礎上修改;在grub2 啟動時使用 e 快捷鍵進入修改界面,並使用ctrl+x執行修改結果;
  • 清理現場:
    • reboot;至此,重啟並拔掉live usb,使用efi模式引導修復的系統,完成啟動;
    • 注意:此時windows efi的引導還在,只是被grub2覆蓋了, 先啟動grub2;當然我們可以使用磁盤精靈;將windows efi 拷貝到另外一個單獨的分區;
    • 啟動后需要重新創建 grub2 cfg;使用上述 grub2-mkconfig 命令,在 /boot/efi/EFI/fedora/grub.cfg 和 /boot/grub2/grub.cfg 兩個位置覆蓋更新;
  • 最后,祝您使用愉快!此教程總結自實際修復過程中,如果您有問題,歡迎留言咨詢;我最后是在自動生成的項目的基礎上,結合手動修改引導成功的;

如果你對linux的啟動機制,以及mbr,efi 等不是很了解;建議還是重新安裝系統為好,防止把現有的windows系統搞壞;當前很多的pc機,都是基於馮諾依曼結構設計,計算機的中心是存儲;所以要保護好磁盤上的分區數據不被破壞;重新划分磁盤的時候,也要多加小心;

保持更新,轉載請注明出處:https://www.cnblogs.com/xuyaowen/p/grub-rebuild-after-installed-windows.html ;更多內容請關注cnblogs.com/xuyaowen; 

參考鏈接:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM