Window10和Ubuntu 18.04双系统安装的引导问题解决
作为码农
首先,建议了解下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双系统安装的引导问题解决的更多相关文章
- Windows10 +Ubuntu 18.04双系统安装详细教程
前言: 由于开发需要,很多用户需要安装Linux环境.如果用虚拟机操作会消耗大量内存,一般的电脑会显得卡顿,从而影响开发效率.这里分享一些安装经验,希望能够帮助大家. 教程: 步骤1:下载镜像文件 从 ...
- [转]win7+ubuntu 13.04双系统安装方法
win7+ubuntu 13.04双系统安装方法 http://jingyan.baidu.com/article/60ccbceb18624464cab197ea.html 当需要频繁使用ubunt ...
- win7+ubuntu 13.04双系统安装方法
转自:http://jingyan.baidu.com/article/60ccbceb18624464cab197ea.html 当需要频繁使用ubuntu时,vmware虚拟机下运行ubuntu, ...
- Windows + Ubuntu 16.04 双系统安装详细教程
Windows + Ubuntu 16.04 双系统安装详细教程 2018年01月28日 16:43:19 flyyufenfei 阅读数:165619 发现了一篇好教程,果断转载了,以后用得着时 ...
- 基于window 7安装ubuntu 18.04双系统
window7下安装ubuntu双系统 1.首先下载ubuntu镜像文件 进入ubuntu官网,http://releases.ubuntu.com/18.04/.下载最新镜像,ubuntu-18.0 ...
- Windows 10、Ubuntu 18.04 双系统 双硬盘 安装经验总结
首先说明,我假设读者懂得分区.安装系统,所以不再深入讨论具体操作. 如果需要手把手教程,建议先参考其它Windows中加装Linux的相关文章. 网上其它文章.教程的常见问题是,各家机器配置不一样,安 ...
- win10 + ubuntu 16.04 双系统安装
第一次写博客,有错的请指教emmmm 这是因为老师的要求在做课程设计,要用到ubuntu环境,对于这个来说,学长说的是14 16 18都很稳定,但是他在用16.04所以我也用的ubuntu16.04方 ...
- win7 ubuntu 14.04双系统安装
安装win7和linux双系统,一般先安装win7,后安装linux,本片就是指在安装好win7的情况下,安装ubuntu. 准备材料: EasyBCD软件 ubuntu14.04iso镜像文件,64 ...
- Windows + Ubuntu 16.04 双系统安装详细教程(转)
转载自:http://www.cnblogs.com/Duane/p/6776302.html 前言:本篇文章是对之前文章的更新,更新的主内容是把原来用手机拍摄的图片换成了虚拟机的截图,以及对磁盘划分 ...
随机推荐
- 一款精美的Toast第三方库的简单使用
以前一直用的安卓原生Toast,个人感觉Toast这东西,没必要花功夫,知道看到了Toasty这东西,立刻被圈粉了,真的非常好看. 项目地址 我们都知道,安卓原生Toast的用法是 Toast.mak ...
- AttributeError: 'list' object has no attribute 'sorted'
效果图: 解决办法: 原因: AttributeError: 'list' object has no attribute 'sorted' 属性错误: list对象没有sorted属性方法. sor ...
- python的input()函数
# input()函数 # 作用: 获取用户的输入,返回输入的内容 ,也可以用于暂停程序的运行 # 影响: 调用此函数,程序会立即暂停,等待用户输入 # 注意:input()的返回值是一个字符串 # ...
- 通过例子进阶学习C++(六)你真的能写出约瑟夫环么
本文是通过例子学习C++的第六篇,通过这个例子可以快速入门c++相关的语法. 1.问题描述 n 个人围坐在一个圆桌周围,现在从第 s 个人开始报数,数到第 m 个人,让他出局:然后从出局的下一个人重新 ...
- Spring学习记录6——ThreadLocal简介
Spring通过各种模板类降低了开发者使用各种数据持久化技术的难度.这些模板类是线程安全的,所以 多个DAO可以复用同一个模板实例而不会发生冲突.在使用模板类访问底层数据时,模板类需要绑定数据连接或者 ...
- js-xlsx 一个实用的js 导出列表插件
在前端开发过程中,导出列表功能的开发无非两种,一种是有后台生成,发生给前端下载,第二种是前端进行列表的导出工作.之前接触了一种前端导出列表的插件 tableExport.js ,但是其缺点很明显,需要 ...
- max_element( )
直接用这个函数 , 会比自己写个for 判断快的多了 . position=max_element(a,a+n)-a; position 代表找到最大元素的位置 , max_element( ) 的 ...
- Excel大数据排查重复行内容方法,三步搞定!
首先第一步,我们找到一个空白列D输入公式“=A1&B1&C1”: 然后第二步,再选择下一空白列输入公式“=IF(COUNTIF(D:D,D1)>1,"重复", ...
- Django 添加 app
一.创建Django项目的时候添加 二.在终端创建app python manage.py startapp app名称 运行完命令后,要在settings.py文件中,添加配置文件
- quick-cocos2d-x项目《狂点小怪兽》总结
最近找了个公司实习,领导让我把公司的<狂点小怪兽>C++游戏用Lua重写.大概用了一个星期完成. 第一次使用quick-cocos2d-x,磕磕碰碰的也算是走了一遍流程. 1. quick ...