ubuntu开机出现grub菜单

什么是grub

  The GRUB (Grand Unified Bootloader) is a bootloader available from the GNU project. A bootloader is very important as it is impossible to start an operating system without it. It is the first program which starts when the program is switched on. The bootloader transfers the control to the operating system kernel.
  简单的说,grub是一个多系统启动规范的实现,它引导需要启动的操作系统来控制电脑。

解决方法

找到grub文件夹
重设启动项

几个事实

先来个传送门:grub相关名词解释大全

  1. grub命令行:可以使用cat、ls、set等众多命令是,在命令行输入help查看各种命令及其说明。
  2. 这里我们需要重新指定root的设备名和perfix的路径(关于这一点众多教程都是如此……但是感觉设置perfix已经足够),关于root和perfix的了解移步hereandhere
  3. hd[0-n]表示整块硬盘(可能是ahci0等),正常来说电脑也就一两块硬盘,出现的很可能是hd0,(hd[0-n],gpt[0-n])表示该硬盘的分区。
  4. 关于grub命令行,在此界面按下c即可进入grub引导界面

开始操作

找到grub文件夹
重设启动项

  下面操作都在grub命令行进行。如果这样设置后也没用大概是你把系统的一些必要文件给删了。。由于linux系统不像windows有较好的封装性(不管这封装看上去是恶意还是善意的),这一点是很可能发生的(windows想删系统文件不是很容易,有的目录只使用界面操作似乎都删不掉)

  1. 命令行键入ls查看现有的设备和分区
  2. 键入set查看之前的各种环境变量
  3. 如果没有单独设置/boot目录挂载分区则/boot直接在根目录下。键入ls (hd[0]n],gpt[0-n])/找到之前的根分区。如我的根目录在hd0的gpt7分区,则ls (hd0,gpt7)会出现根目录下的各种目录,如"/boot /home /etc"等等
  4. 找到根目录后查看有无grub目录,比如根目录在设备m的分区n,则键入ls (hdm,gptn)/boot/如果有则键入
    set root=(hdm,gptn)
    set perfix=(hdm,gptn)/boot/grub
    insmod normal
    normal
    
    关于insmod和nomal移步hereandhere了解(insmod normal大概是更新之前的设置,normal可能是重新开启配置好的环境?懒得了解更多了)
  5. 如果你的/boot目录安装系统的时候自行挂载到了某个分区,需要找到/boot目录来设置perfix,但是此时root怎么设置不太了解了,我觉得还是设置根目录的分区,但也有可能需要设置成/boot所在分区。反正也就俩分区,都设置试一试也问题不大。

后记

   这篇后续写一下不使用u盘装系统,其原理和本文类似,修改grub引导而已。

猜你喜欢

转载自blog.csdn.net/qq_34769162/article/details/108045734