linux如何进入grub2,使用grub2引导进入Linux或Window系统

  • Post author:
  • Post category:linux

很多人在一通烂搞之后把自己的grub搞崩了(比如我当时手贱删除了boot分区)虽然后来又装了grub,但是进入grub后还是没有引导,只有一个孤零零的命令行界面

这时候应该怎么办呢?首先当然是想进入系统对grub进行配置,但是怎么进入呢,其实只要几行命令就能解决啦

上网查询发现

如果系统中止于 grub> 提示符,表明 Grub 2模块已经被加载,但是找不到 grub.cfg 文件

当前是完全版的 Grub2 命令行 shell,你可以通过多种方式解决此问题。如果你看到的是 grub rescue> 提示符,表明 bootloader 不能找到 Grub 2 模块或者找不到任何引导文件boot files。

如果你是grub>提示符:

在grub的bash里面输入help,这是会弹出一大堆可用的命令,但是咱们不需要那么多

输入ls,会列出所有的分区类似于(hd0,gpt1)或者(hd0,mbr1)这样的,首先要做的就是要知道自己的系统在那个分区,这一步,可以通过各种分区工具进行查看(比如gparted这类的)

对于引导Linux和Windows,命令不一样但大体相同

Linux

set root=(hd0,gpt5) //这个是我的linux分区,可以根据需要调整set ro

linux /boot/vmlinuz-4.17.1-24 root=/dev/sda5 //你的linux内核,可以通过Tab补全,告知 Grub 内核镜像在分区中的位置,以及根文件系统的位置

initrd /boot/initrd.img-4.17.1-24 //同样可以用tab补全。设置虚拟文件系统initial ramdisk文件的位置

如果前面你都设置好了直接输入boot就能回到熟悉的linux了

对于Windows用户

如果想用grub引导windows,那你的window本身的引导应该没有问题才能用grub的chainloader功能,修复Windows的引导很容易,随便一个Windows PE都有这个功能

如果你的电脑有EFI分区命令如下

set root=(hd0,gpt1) //你的efi分区位置

chainloader=/EFI/Microsoft/bootmgrfw.efi //这个位置看你windows的efi文件的位置,可以用Tab补全

输入boot即可引导

如果没有efi分区,方法大同小异可以尝试着把root挂载到你的window分区的前一个分区,然后chainloader +1,如果不行也是让chainloader=你的efi文件的位置然后boot就行了,具体方法可以自行摸索

One more Thing:

如果你的电脑显示的是grub rescue> 提示符,那就要想办法加载grub,具体方法其他地方有很多,这里不在赘述

如果你成功进入Linux,但是update-grub却检测不到Linux,这是最简单的办法就是重装一遍你的Linux内核,这样就能检测出来了