用grub2命令引导win10
【一顿操作】用Grub2命令行引导启动Windows10 原创
2018-09-01 21:21:09
 11点赞

hikkilover 
码龄5年
关注
PC型号: Lenovo XiaoXin Air 13 Pro-13IKB (双系统)
Windows版本: Windows10 教育版
Ubuntu版本: Ubuntu Desktop 16.04
1
2
3
1
2
3
对于Windows和Linux双系统的用户,你可能会陷入这样一种窘境:在你的Grub2引导中,没有Windows的选项,这时,一般的选择是先启动Linux系统,修改Grub2的设置后再重启。
实际上,考虑到用户的奇思妙想与鬼畜操作,Grub还提供了一个命令行终端,不需要启动Linux就可以直接引导电脑上的其他系统(Grub理论上也并非是和Linux绑定,所以其自成一体也在情理之中)。
在开机后的Grub引导页面,按下ESC,即进入Grub的命令行模式。下面,我们依次介绍几条我们会用到的命令,同时也是这个终端的几条核心命令。
ls
ls 命令 ,和Linux的ls命令功能基本相同。列出目录下的文件与子目录。在默认的根目录下,键入ls命令,可以看到打印出一串形如“(hd0,1)”的目录,这里的每一个目录就代表着一个硬盘的分区(不管是linux的还是windows的)。
ls命令还可以用于查看任意子目录里的情况,如 ls (hd0, 1)/ 可查看(hd0, 1)分区中的文件。
set root=
和Linux里的终端一样,Grub的命令行也有当前目录的概念。set root= 可以改换当前目录。比如set root=(hd0, 1)
chainloader
chainloader命令是指定一个文件作为链式装载程序载入。怎么样,这个解释是不是说得云里雾里?但实际上,如果我们只是用终端启动windows的话,也不需要了解太多,你只需要用ls命令找到windows的bootmgfw.efi即可(一般来说,这个efi是在某个分区下的/efi/Microsoft/Boot/中)
boot
按照当前设置,引导系统启动。
有了上述的四条命令,我们就可以实现用grub命令引导启动windows了。基本的操作步骤:
在引导列表页按ESC进入Grub2终端 。
insmod part_gpt 导入模块,让grub可以看到gpt格式的硬盘(这个有没有必要我也不清楚,但执行一下也不妨事。)。
借助 ls 命令找到windows系统的 bootmgfw.efi 所在的分区(hd*, *)。
修改当前目录 set root=(hd*, *) 。
chainloader /efi/Microsoft/Boot/bootmgfw.efi (可以用 ls 再确认一下这个路径)。
boot
(Tips: ls命令打印出来的分区名称,可能是”(hd*, gpt*)”,在我们键入分区时,这个gpt可以省略。)
按照上述步骤操作,如果你的windows系统本身没什么问题的话,应该是可以正常启动的。