先安装了fedora22 后安装windows8.1双系统的引导

来源:互联网 发布:怎样建淘宝团购微信群 编辑:程序博客网 时间:2024/06/05 21:18

为了迎接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分区
0 0
原创粉丝点击