问题是这样的,一开始装了一个固态硬盘,然后就把Linux装在机械硬盘里了。

但是之后问题是没有出现引导界面,直接就是进入了Windows10.

十分悲催啊。

 

 

然后网上各种搜,改BIOS设置的启动。

 

 

 修改之后是:

launch CSM            Enable

launch PXE OpROM    Enable

 

 

但是开机之后发现引导是有了,(但是发现进不了Windows了,引导里就只有Linux)

也就是Linux的引导好了,但是Windows的引导又崩了。

 

 

于是又是一波百度,最终找到了一个比较靠普的解决方案,方案如下:

首先打开shell 进入bash 输入命令  sudo  update - grub

你会发现有这么一句话Found Windows 8 (loader) on /dev/sda6,但是此时候还是不要高兴的太早。

重启计算机。如果出现了Windows的引导,那么你就成功了,但是如果没有出来,不急,请看下面。

 

 

 

 

  1. 如果有童鞋跟作者一样不走运的话,会遇到即使update-grub成功识别了你分区中的windows loader而且重启计算机后在grub列表里也确实有windows选项,但点进去后仍然不 
    会引导windows系统,而只是黑屏一个光标不停地闪。这就很尴尬了。。。
  2. 但同志们不要怕!作者已经帮你们趟出一条路了!那就是:修改grub.cfg
  3. 作者猜想,可能经过PE的修复,grub已经可以识别出windows的引导器了,然而由于是人工修复的windows引导,所有默认生成的grub.cfg中的代码并不能使grub准确找到windows loader,所以当我们选中grub列表中的windows选项后才仍然不能引导系统。
  4. 我们只需进入已经可以引导的ubuntu系统,唤出终端,输入 
    sudo su回车,获取ROOT权限。
  5. 之后输入gedit /boot/grub/grub.cfg回车,以打开grub.cfg。作者用的是gedit编辑器,如果读者平时都是用vim那么就输入vim /boot/grub/grub.cfg,使用什么编辑器都可以,然后我们找到cfg文件中关于windows的部分,作者的看起来像这样:

 

menuentry 'Windows 8 (loader) (on /dev/sda6)' --class windows --class os $menuentry_id_option 'osprober-chain-9C28EFB228EF899A' { 
insmod part-msdos 
insmod ntfs 
set root='hd0,msdos6' 
if [ x$feature_platform_search_hint = xy ]; then 
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 9C28EFB228EF899A 
else 
search --no-floppy --fs-uuid --set=root 9C28EFB228EF899A 
fi 
parttool ${root} hidden- 
drivemap -s (hd0) ${root} 
chainloader +1 
}


这一大坨是个什么玩意?反正这么写引导不了,那就改! 
好在grub是个十分强大的工具,最后作者决定使用search命令修改以上片段。 

 

如下:

menuentry 'Windows 8 (loader) (on /dev/sda6)' --class windows --class os $menuentry_id_option 'osprober-chain-9C28EFB228EF899A' { 
insmod ntfs 
insmod ntldr 
set root='hd0,msdos6' 
search --set -f /bootmgr 
ntldr /bootmgr 
}

 

建议在此之前将文件备份一下,以防万一。