zoukankan      html  css  js  c++  java
  • Ubuntu开机出现grub指令,无法正常开机

    问题

    最近开机出现了如下的界面:


    分析问题

    1. 首先看看GNU GRUB是什么东东?干什么用的?
      GNU GRUB是多重引导加载程序。通俗点说,它就是用来一个可以让你选择运行什么操作系统的程序。
      在你开机的时候,它是第一个运行的程序。它决定着,将计算机的控制权给哪个系统内核。然后系统内核将进一步初始化、处理操作系统的其他部分。
    2. 所以出现grub的原因,是因为GNU GRUB找不到引导文件,引导系统内核了。所以,要想解决这个问题,需要让GNU GRUB找到相关的引导文件,进行正确的引导。

    解决方案

    首先吐槽下,找了中文解决方案,都不行。最后查了英文才找到解决方案。

    1. 首先,在grub>指令处,输入ls指令。
      这个指令能让你看到当前路径下的文件和文件夹。
      使用这个指令,你可以类似这样的输出,(hd0)(hd0, msdos1)类似的。
      这些是磁盘的分区,我们需要在这些分区内找到能够正确引导系统的文件配置。
    2. 使用指令ls (hd0)/来一个个测试,看输出有没有vmlinuz或者linuxinitrd.imgroot这样的字样。
      比如第一步出现(hd0), (hd0, msdos1),在这一步的时候,你需要使用ls (hd0)/ls (hd0, msdos1)/来一个个去试,直至出现上文提示的那些字样,那个分区就是引导文件所在的地方。
      如果ls (hd0, msdos1)/出现unknown filestystem,你可以尝试使用ls /(hd0, msdos1)/,以此类推
      ls (hd0, msdos1)/可以简写为ls (hd0, 1)/
    3. 找到引导文件所在位置,比如在(hd0,5)
      输出以下指令
    set root=(hd0,5)
    set prefix=(hd0,5)/boot/grub
    insmod normal
    normal
    

    这一步来设置引导文件的位置。
    4. 如果还是不行,尝试以下指令

    linux (hd0,5)/vmlinuz root=/dev/sda5
    initrd (hd0,5)/initrd.img
    boot
    

    这里是让引导程序去引导。至此,应该可以正常开机了。


    其他

    开机后,下次开机也许还需要这样的操作。但我就没设置了,下次再说~


    教程中的Costco,只给你各领域更好的教程,不再为挑选教程而闹心。
    欢迎关注!!!

  • 相关阅读:
    DataGrid
    TreeGrid
    获取选中内容
    requirejs——config
    C# 字符串与字节数组相互转换
    并发编程
    关于 warning CS0659:“***”重写Object.Equals(object o)但不重写Object.GetHashCode()
    使用C#书写SQLite数据库增删改查语句(以及插入byte[]时遇到的问题总结)
    TortoiseSVN/Git覆盖图标失效的解决方案
    C#Question:“XXX”的重载均与“System.Threading.WaitCallback”不匹配。
  • 原文地址:https://www.cnblogs.com/zhouzhiyao/p/11456189.html
Copyright © 2011-2022 走看看