作为码农

  首先,建议了解下grub2的启动顺序和逻辑。可以参考这篇文章,grub.cfg详解。

  从执行顺序倒推,如下如果全部执行成功,则会进入grub的启动菜单;如果最后一步,没有找到grub.cfg或者执行grub.cfg出错,则进入grub普通模式;如果倒数第二步,家在normal.mod模块失败,则进入grub secure模式。

GRUB2在BIOS平台上的常规启动步骤是这样的:BIOS --> boot.img[MBR] --> core.img[MBR gap/embedding area/BIOS Boot Partition] --> 设置"prefix root cmdpath"环境变量 --> 加载"normal.mod"模块[同时还包括它所依赖的 terminal crypto extcmd boot gettext 模块] --> 执行"normal $prefix/grub.cfg"命令

GRUB2在UEFI平台上的常规启动步骤是这样的:UEFI --> core.img[BOOTX64.EFI/BOOTX86.EFI] --> 设置"prefix root cmdpath"环境变量 --> 加载"normal.mod"模块[同时还包括它所依赖的 terminal crypto extcmd boot gettext 模块] --> 执行"normal $prefix/grub.cfg"命令

  

  这里我们分别介绍两种模式下的解决方式:

  • Grub普通模式

    • 手动引导进入系统

      • ls 可以看到形如 (hd0, gpt2)之类的硬盘分区, ls (hd0,gpt2)/root/之类的可以看到文件系统结构;
      • 找到要启动的系统路径,主要是grub目录、vmlinux、initrd,如下图
        •   

          # ll /boot/
          总用量
          drwxr-xr-x root root 7月 : ./
          drwxr-xr-x root root 7月 : ../
          -rw-r--r-- root root 4月 : abi-4.15.--generic
          -rw-r--r-- root root 5月 : abi-4.15.--generic
          -rw-r--r-- root root 4月 : config-4.15.--generic
          -rw-r--r-- root root 5月 : config-4.15.--generic
          drwxr-xr-x root root 1月 efi/
          drwxr-xr-x root root 8月 : grub/
          -rw-r--r-- root root 7月 : initrd.img-4.15.--generic
          -rw-r--r-- root root 7月 : initrd.img-4.15.--generic
          -rw-r--r-- root root 1月 memtest86+.bin
          -rw-r--r-- root root 1月 memtest86+.elf
          -rw-r--r-- root root 1月 memtest86+_multiboot.bin
          -rw-r--r-- root root 4月 : retpoline-4.15.--generic
          -rw-r--r-- root root 5月 : retpoline-4.15.--generic
          -rw------- root root 4月 : System.map-4.15.--generic
          -rw------- root root 5月 : System.map-4.15.--generic
          -rw-r--r-- root root 4月 : vmlinuz-4.15.--generic
          -rw------- root root 5月 : vmlinuz-4.15.--generic
      • 设置grub boot环境,其中root的地址为要启动的linux系统(如Ubuntu)所在的硬盘分区节点名。hd0对应sda,hd1对应sdb,以此类推。。。(hd0,gpt1)对应sda1,(hd1, gpt2)对应sdb2以此类推。。。
        • grub> set boot=(hd0,gpt2)
          grub> linux /boot/vmlinuz-4.15.--generic root=/dev/sda2
          grub> initrd /boot/initrd.img-4.15.--generic
          grub> boot
    • 修复引导
      • 一般为了避免进入系统后,下次再进入还要输入以上命令,可以用如下方法

        • # sudo update-grub
          # sudo grub-install /dev/sda
      • 然而我发现,这个方式在我的case里不生效,尝试找下根本原因    
  • Grub Secure模式
    • 手动引导进入系统, LInk
    • 修复引导

Window10和Ubuntu 18.04双系统安装的引导问题解决的更多相关文章

  1. Windows10 +Ubuntu 18.04双系统安装详细教程

    前言: 由于开发需要,很多用户需要安装Linux环境.如果用虚拟机操作会消耗大量内存,一般的电脑会显得卡顿,从而影响开发效率.这里分享一些安装经验,希望能够帮助大家. 教程: 步骤1:下载镜像文件 从 ...

  2. [转]win7+ubuntu 13.04双系统安装方法

    win7+ubuntu 13.04双系统安装方法 http://jingyan.baidu.com/article/60ccbceb18624464cab197ea.html 当需要频繁使用ubunt ...

  3. win7+ubuntu 13.04双系统安装方法

    转自:http://jingyan.baidu.com/article/60ccbceb18624464cab197ea.html 当需要频繁使用ubuntu时,vmware虚拟机下运行ubuntu, ...

  4. Windows + Ubuntu 16.04 双系统安装详细教程

    Windows + Ubuntu 16.04 双系统安装详细教程 2018年01月28日 16:43:19 flyyufenfei 阅读数:165619   发现了一篇好教程,果断转载了,以后用得着时 ...

  5. 基于window 7安装ubuntu 18.04双系统

    window7下安装ubuntu双系统 1.首先下载ubuntu镜像文件 进入ubuntu官网,http://releases.ubuntu.com/18.04/.下载最新镜像,ubuntu-18.0 ...

  6. Windows 10、Ubuntu 18.04 双系统 双硬盘 安装经验总结

    首先说明,我假设读者懂得分区.安装系统,所以不再深入讨论具体操作. 如果需要手把手教程,建议先参考其它Windows中加装Linux的相关文章. 网上其它文章.教程的常见问题是,各家机器配置不一样,安 ...

  7. win10 + ubuntu 16.04 双系统安装

    第一次写博客,有错的请指教emmmm 这是因为老师的要求在做课程设计,要用到ubuntu环境,对于这个来说,学长说的是14 16 18都很稳定,但是他在用16.04所以我也用的ubuntu16.04方 ...

  8. win7 ubuntu 14.04双系统安装

    安装win7和linux双系统,一般先安装win7,后安装linux,本片就是指在安装好win7的情况下,安装ubuntu. 准备材料: EasyBCD软件 ubuntu14.04iso镜像文件,64 ...

  9. Windows + Ubuntu 16.04 双系统安装详细教程(转)

    转载自:http://www.cnblogs.com/Duane/p/6776302.html 前言:本篇文章是对之前文章的更新,更新的主内容是把原来用手机拍摄的图片换成了虚拟机的截图,以及对磁盘划分 ...

随机推荐

  1. Java框架之Spring01-IOC-bean配置-文件引入-注解装配

    Spring 框架,即framework.是对特定应用领域中的应用系统的部分设计和实现的整体结构.就相当于让别人帮你完成一些基础工作,它可以处理系统很多细节问题,而且框架一般是成熟,稳健的. Spri ...

  2. 自定义实现的ArrayList以及自定义实现的Iterator迭代器

    ArrayList的底层是长度可动态变化的数组,其适用于查找多,修改少的情况,原因是数组的元素的增加删除元素会涉及大量元素的移动,效率比较低,ArrayList中的元素可以重复,与插入时的顺序相同,可 ...

  3. css3让元素自适应高度

    知识点: viewport:可视窗口,也就是浏览器.vw Viewport宽度, 1vw 等于viewport宽度的1%vh Viewport高度, 1vh 等于viewport高的的1% calc( ...

  4. Scala实践3

    一.函数式对象 1.1  rational类的规格和创建 Rational类来源于有理数(rational number),来表示n(分子)/d(分母)的数字,同时对有理数的运算(加减乘除)建模,还具 ...

  5. python继承简介

    继承 是面向对象的三大特性之一 作用: 通过继承可以使一个类获取其它类中的属性和方法 使用方法: 在定义类时,可以在类名后的括号中指定当前类的父类(超类.基类.super) 这样子类(衍生类)就可以直 ...

  6. light题目讲解 7.25模拟赛T1

    心得:这一道题其实就是自己打暴力打出来的 没有想到正解真的就是暴力枚举 我的做法是这样的 就是枚举A字符串中长度为x的子串 看它是不是B串的子序列 接下来是我的绝望考试代码(100分AC) //lig ...

  7. nor flash之擦除和写入

    最近研究了下nor flash的掉电问题,对nor的掉电有了更多的认识.总结分享如下 擦除从0变1,写入从1变0 nor flash的物理特性是,写入之前需要先进行擦除.擦除后数据为全0xFF,此时写 ...

  8. C++ 中的 unique 函数

    unique 函数是用来去除一个集合中重复元素的函数 若是在数组中,则调用此函数后,返回的除去重复元素的下一个指针的地方 若是在 vector中,则会返回重复元素下一个位置的迭代器,在调用erase函 ...

  9. 洛谷P2585 [ZJOI2006]三色二叉树

    题目描述 输入输出格式 输入格式: 输入文件名:TRO.IN 输入文件仅有一行,不超过10000个字符,表示一个二叉树序列. 输出格式: 输出文件名:TRO.OUT 输出文件也只有一行,包含两个数,依 ...

  10. Python 练习实例100 | 菜鸟教程

    http://www.runoob.com/python/python-exercise-example100.html