天天看點

先安裝了fedora22 後安裝windows8.1雙系統的引導

為了迎接win10決定重新裝一下win8系統,本來是win8+fedorad的雙系統,但是重裝完win8後發現進不去fedora了,為了做好雙系統的引導,糾結了半天終于解決了,寫此文來總結下

最終的解決方法:

1.如果已有fedora系統,那麼進入BIOS選擇界面(我的電腦是按F12)選擇Fedora啟動管理項即可進入fedora

2.找到fedora系統的引導檔案所在的檔案夾(boot/efi/EFI/fedora/)

  如果不知道哪個是引導檔案可以使用efibootmgr -v 檢視

3.

方法一:(請優先使用方法一)

輸入grub2-mkconfig -o boot/efi/efi/fedora/grub.cfg

方法二: 

打開檔案夾下的grub.cfg檔案,找到

### BEGIN /etc/grub.d/40_custom ###

# This file provides an easy way to add custom menu entries.  Simply type the

# menu entries you want to add after this comment.  Be careful not to change

# the 'exec tail' line above.

在其後添加如下内容(不要有空行)

menuentry 'Windows 8.1'{

insmod part_gpt

insmod chain

set root=(hd0,1)

chainloader /EFI/microsoft/Boot/bootmgfw.efi

}

*hd(0,1)表示第一塊硬碟的第一個分區

*bootmgfw.efi是windows8.1下預設的bootloader

*可能會在整個系統中存在多個grub.cfg檔案,但是隻有與.efi檔案在同一個檔案夾下的grub.cfg是管用的

**grub2的官方不推薦直接修改grub.cfg檔案,而是修改etc/grub.d/40_custom檔案,然後使用grub2-mkconfig指令,具體操作請自行百度了

4.修改啟動管理項順序

輸入efibootmgr後會顯示啟動管理項的預設順序,在我的電腦上是

BootCurrent: 0019

Timeout: 0 seconds

BootOrder: 0019,0018,0000,0001,0002,0003,0007,0008,0009,000A,000B,000C,000D,000E,000F,0010,0011,0012

Boot0000  Setup

Boot0001  Boot Menu

Boot0002  Diagnostic Splash Screen

Boot0003  Lenovo Diagnostics

Boot0004  Startup Interrupt Menu

Boot0005  ME Configuration Menu

Boot0006  Rescue and Recovery

Boot0007* USB CD

Boot0008* USB FDD

Boot0009* ATAPI CD0

Boot000A* ATA HDD0

Boot000B* ATA HDD1

Boot000C* ATA HDD2

Boot000D* USB HDD

Boot000E* PCI LAN

Boot000F* ATAPI CD1

Boot0010  Other CD

Boot0011* ATA HDD3

Boot0012  Other HDD

Boot0013* IDER BOOT CDROM

Boot0014* IDER BOOT Floppy

Boot0015* ATA HDD

Boot0016* ATAPI CD:

Boot0017* PCI LAN

Boot0018* Windows Boot Manager

Boot0019* Fedora 22

BootCurrent表示目前使用的是哪個啟動管理項

BootOrder是目前的啟動管理項的順序,對于我的機器而言就是計算機會先嘗試使用Boot0019 Fedora 22的管理項,不行再嘗試使用Boot0018 Windows Boot Manager的附加元件(檢視具體加載檔案可輸入efibootmgr -v)

當剛安裝完windows系統後應該是windows boot manager優先級最高,那麼此時我們就要修改它

輸入efibootmgr -o BootXXXX,BootXXXX,BootXXXX...來修改加載順序,将fedora的管理項放在第一個

5.reboot即可

附:修改過程中走的一些彎路

1.首先,既然能進入windows那麼先想的是在windows的bootloader中增加fedora的附加元件,于是便嘗試使用bcdedit給其增加一個fedora附加元件(bcdedit具體用法可使用bcdedit /?檢視),設定完成後将shim.efi複制到c:下嘗試啟動,但是發現無法成功

*如果有哪個大神知道怎麼給win8增加一個linux引導項請賜教!!!謝謝了!

2.一開始在fedora下使用了efibootmgr指令修改了UEFI的啟動管理項,但是之後發現我想做的是在某個管理項中增加某個系統的附加元件,修改管理項并不會有用,然後隻能把新加的都删了。。。

強調下啟動管理器和啟動加載器是不同的概念,在windows指令行下輸入bcdedit就可發現,bootmgfw.efi是啟動管理器,winload.efi是啟動加載器,附加元件負責加載引導項

但還是寫下方法吧

新增管理項的方法是輸入

efobootmgr -c -w -L “Windows 8.1 Pro” -d /dev/sda -p 1 -l \\EFI\\Microsoft\\Boot\\bootmgfw.efi

這是增加windows附加元件,-L後的是界面會顯示的名字,-d後的是系統所在磁盤,-l後的是附加元件的具體路徑,根據這個格式自己修改即可

如果當發現自己進不了windows系統是也可以使用這個方法進入windows,但是之後應該會又進不了linux。。。

3.如果在widows下想通路esp分區,那麼可以使用MKLINK /J C:\ESP \\?\GLOBALROOT\Device\Harddisk0\Partition1\指令進行挂載,之後c:esp就是esp分區了,可以通過檢視确定部分bootloader的問題,但是無法将esp分區裡的東西複制出來或是複制進esp分區

繼續閱讀