您的位置:首页 > Web前端

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

2015-07-15 23:58 771 查看
为了迎接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分区
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息