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 前言:本篇文章是对之前文章的更新,更新的主内容是把原来用手机拍摄的图片换成了虚拟机的截图,以及对磁盘划分 ...
随机推荐
- 越来越清晰的TFRecord处理图片的步骤
# 首先是模块的导入 """ os模块是处理文件夹用的 PIL模块是用来处理图片的 """ import tensorflow as tf ...
- Scala实践10
1.模式匹配 模式匹配是一种根据模式检查值的机制.它是switch(Java中语句)的更强大版本,它同样可以用来代替一系列if / else语句. 句法 匹配表达式具有值,match关键字和至少一个c ...
- ES6的Object.assign()基本用法
Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target). 例如: const target = {a:1}, const source1 ...
- scope为provided
以下面dependency为例 1 <dependency> 2 <groupId>javax.servlet</groupId> 3 <artifactId ...
- P1559 运动员最佳匹配问题 by hyl 天梦
#include<iostream> using namespace std; int n; int maxx[21][21]; int lie[21]; int aa[21]; int ...
- Activiti服务任务(serviceTask)
Activiti服务任务(serviceTask) 作者:Jesai 都有一段沉默的时间,等待厚积薄发 应用场景: 当客户有这么一个需求:下一个任务我需要自动执行一些操作,并且这个节点不需要任何的人工 ...
- 7.Arrays数组的工具类
Arrays类: 数组的工具类java.util.Arrays 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作. ...
- 图解 Kubernetes
容器 在了解 Kubernetes 之前,让我们先了解一个容器. 因为如果不了解容器就没法聊容器编排. 容器就是...一个你塞入所有材料的容器. "材料"是指你的应用代码.依赖库, ...
- 解决浮点运算精度不准确,BigDecimal 加减乘除
package com.kflh.boxApi.utils.util; import java.math.BigDecimal; /** * @program: BoxApi * @descripti ...
- 大叔 EF 来分析 EntityFrameworks.Data.Core 1
Common 1SQL命令拦截器主要实现EF的读写分离 SqlCommandInterceptor 继承父类DbCommandInterceptor 2SQL锁选项SqlLock 3忽略大小写,作为C ...