Window10和Ubuntu 18.04双系统安装的引导问题解决
2024-08-31 20:46:40
作为码农
首先,建议了解下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
- 修复引导
最新文章
- Spring Boot 乐观锁加锁失败 - 使用AOP恢复错误
- linux-------------计划任务crond:如何创建linux里面的计划任务
- hdu5737(2016多校联赛第2场D)
- 【dubbo】dubbo项目基本结构及provider构建
- PHP+Nginx环境搭配
- git-配置公司账号
- GetWindowText和GetDlgItemText的区别
- C++11常量表达式
- ASP.NET MVC 3 配置EF自动生成模型
- springboot(二):web综合开发
- [IB]PeopleSoft异步详细信息中状态“已完成”但订阅合同状态“新建”问题
- selenium如何屏蔽谷歌浏览器弹出的通知
- jmeter入门案例(二)
- Charles篡改后台数据
- [Swift]错误提示:Method does not override any method from its superclass
- MT【239】离心率最大
- javascript计算字符串长度
- Linux抓包
- HTML深入探究(一)HTML入门
- LeetCode刷题第一天
热门文章
- Salesforce LWC学习(十一) port 1717报错的处理
- 执行sql中的 函数,function
- React Hooks 一步到位
- HttpClient工具类的使用
- Django 数据库连接缓存的坑
- JS前端时间格式化
- 前端之css的基本使用(一),行内、内部、外部样式,语法格式、注释、选择符、属性等
- [bzoj1375] [Baltic2002] Bicriterial routing 双调路径
- 06hive企业调优
- 制作一个类“全能扫描王”的简易扫描软件(opencv)