【一顿操作】用Grub2命令行引导启动Windows10

PC型号: Lenovo XiaoXin Air 13 Pro-13IKB (双系统)
Windows版本: Windows10 教育版
Ubuntu版本: Ubuntu Desktop 16.04 

对于Windows和Linux双系统的用户,你可能会陷入这样一种窘境:在你的Grub2引导中,没有Windows的选项,这时,一般的选择是先启动Linux系统,修改Grub2的设置后再重启。
实际上,考虑到用户的奇思妙想与鬼畜操作,Grub还提供了一个命令行终端,不需要启动Linux就可以直接引导电脑上的其他系统(Grub理论上也并非是和Linux绑定,所以其自成一体也在情理之中)。


在开机后的Grub引导页面,按下ESC,即进入Grub的命令行模式。下面,我们依次介绍几条我们会用到的命令,同时也是这个终端的几条核心命令。

  1. ls
    ls 命令 ,和Linux的ls命令功能基本相同。列出目录下的文件与子目录。在默认的根目录下,键入ls命令,可以看到打印出一串形如“(hd0,1)”的目录,这里的每一个目录就代表着一个硬盘的分区(不管是linux的还是windows的)。
    ls命令还可以用于查看任意子目录里的情况,如 ls (hd0, 1)/ 可查看(hd0, 1)分区中的文件。

  2. set root=
    和Linux里的终端一样,Grub的命令行也有当前目录的概念。set root= 可以改换当前目录。比如set root=(hd0, 1)

  3. chainloader
    chainloader命令是指定一个文件作为链式装载程序载入。怎么样,这个解释是不是说得云里雾里?但实际上,如果我们只是用终端启动windows的话,也不需要了解太多,你只需要用ls命令找到windows的bootmgfw.efi即可(一般来说,这个efi是在某个分区下的/efi/Microsoft/Boot/中)

  4. boot
    按照当前设置,引导系统启动。

有了上述的四条命令,我们就可以实现用grub命令引导启动windows了。基本的操作步骤:

  1. 在引导列表页按ESC进入Grub2终端 。
  2. insmod part_gpt 导入模块,让grub可以看到gpt格式的硬盘(这个有没有必要我也不清楚,但执行一下也不妨事。)。
  3. 借助 ls 命令找到windows系统的 bootmgfw.efi 所在的分区(hd*, *)。
  4. 修改当前目录 set root=(hd*, *) 。
  5. chainloader /efi/Microsoft/Boot/bootmgfw.efi (可以用 ls 再确认一下这个路径)。
  6. boot
    (Tips: ls命令打印出来的分区名称,可能是”(hd*, gpt*)”,在我们键入分区时,这个gpt可以省略。)

按照上述步骤操作,如果你的windows系统本身没什么问题的话,应该是可以正常启动的。


P.S. 笔者接触Grub2的命令行模式其实源于一个非常低能的错误——在更新了BIOS后,忘记把装双系统用的系统盘从USB口上拔下来,导致系统自动U盘启动,连个Windows10的引导项都没得,只有ubuntu 的安装选项(没错,在Linux还没有正式安装时,Grub2就已经可以用了),以至于鼓捣了半个多钟头,后来才想到,如果当时把U盘拔下来,就没有这些破事儿了。

  • 24
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值