Ubuntu 引导修复
Ubuntu 引导修复
前言
最近还在看 Docker 的教程,看到了“跨宿主机网络通信”的一节,于是想到去 Ubuntu 中 实践一番。结果发现 Ubuntu 进不去了。由于考虑到最近更新了 BIOS 以及在 Ubuntu 中执行了 apt-get upgrade 命令,联想到是引导出问题了,一气之下在 Windows 中使用 DiskGenius 删除了 EFI 分区中的 Ubuntu文件夹,再制作 Ubuntu 启动盘进入应急模式修复。
主要参考了ubuntu重建ESP引导。其中的主要思路是:设置根目录,选择内核和设备,选择镜像,重启。
实际操作
之前几步做的比较顺利,可以 按一下 Tab 补全 或者 按两下 Tab 提示所有的可能。需要注意的是,不要随意加空格,比如“set root=(hd2,gpt5)”中的等号两边;由于也怀疑是内核更新的锅,于是使用旧的内核。根据教程的提示,很快猜测出我的设备为 /dev/sdb5。
grub> set root=(hd2,gpt5)
grub> linxu /boot/vmlinuz-5.0.0-37-generic ro root=/dev/sdb5 # 错误的设备
grub> initrd /initrd.img
grub> reboot

然后会发现错误,找不到设备。

而且在之前的界面中,/dev下面没有我们的硬盘设备。此处猜测可能是进入内核后才会加载设备。然鹅情况不算太坏,启动程序“扔”给了我们一个 busybox,在此处查看 /dev 中,发现了我们的设备(不仅有 sda,sdb,还有 nvme 设备,由于我电脑的主硬盘是 nvme 的,因此猜测大概率就是它了)

再按两下 Tab 键查看所有可以使用的命令,发现了 mount 和 umount。

因此想到可以将设备挂载起来查看文件系统,于是新建文件夹并将设备 /dev/nvme0n1p5 挂载在其上。执行后,果然看到了熟悉的目录(此处我也尝试挂载其它分区,发现只有挂载 efi 形式的分区可以成功,不可以挂载 ntfs 类型的分区)。

输入 reboot 重启后再次执行上面的一套命令:
grub> set root=(hd2,gpt5)
grub> linxu /boot/vmlinuz-5.0.0-37-generic ro root=/dev/nvme0n1p5
grub> initrd /initrd.img
grub> reboot
此时可以成功进入系统,并且可以推测出是新内核的问题!在系统中使用 apt purge 命令删除新的内核!
battor@battor-OMEN:~$ dpkg -l | grep linux
......
ii linux-headers-5.0.0-37 5.0.0-37.40~18.04.1 all Header files related to Linux kernel version 5.0.0
ii linux-headers-5.0.0-37-generic 5.0.0-37.40~18.04.1 amd64 Linux kernel headers for version 5.0.0 on 64 bit x86 SMP
ii linux-headers-5.3.0-51 5.3.0-51.44~18.04.2 all Header files related to Linux kernel version 5.3.0
ii linux-headers-5.3.0-51-generic 5.3.0-51.44~18.04.2 amd64 Linux kernel headers for version 5.3.0 on 64 bit x86 SMP
rc linux-image-5.0.0-23-generic 5.0.0-23.24~18.04.1 amd64 Signed kernel image generic
ii linux-image-5.0.0-37-generic 5.0.0-37.40~18.04.1 amd64 Signed kernel image generic
ii linux-image-unsigned-5.3.0-51-generic 5.3.0-51.44~18.04.2 amd64 Linux kernel image for version 5.3.0 on 64 bit x86 SMP
......
battor@battor-OMEN:~$ sudo apt-get purge linux-headers-5.3.0-51
......
正在卸载 linux-headers-5.3.0-51-generic (5.3.0-51.44~18.04.2) ...
正在卸载 linux-headers-5.3.0-51 (5.3.0-51.44~18.04.2) ...
battor@battor-OMEN:~$ sudo apt-get purge linux-image-unsigned-5.3.0-51-generic
......
正在卸载 linux-image-unsigned-5.3.0-51-generic (5.3.0-51.44~18.04.2) ...
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Deleting /boot/initrd.img-5.3.0-51-generic
/etc/kernel/postrm.d/zz-update-grub:
Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found background image: batman_bg.jpg
Found linux image: /boot/vmlinuz-5.0.0-37-generic
Found initrd image: /boot/initrd.img-5.0.0-37-generic
Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
done
(正在读取数据库 ... 系统当前共安装有 145181 个文件和目录。)
正在清除 linux-image-unsigned-5.3.0-51-generic (5.3.0-51.44~18.04.2) 的配置文件 ...
rmdir: 删除 '/lib/modules/5.3.0-51-generic' 失败: 目录非空
可以看到 apt 还自动帮我们重新生成了引导!
再次启动后,一切恢复了正常XD。
TIPS:
如果是需要手动重新生成引导,需要执行命令:
sudo grub-install
sudo update-grub
后记
其实在进入 grub 的启动菜单以后,可以使用“高级选项”指定内核。如果出现类似问题,可以直接重新启动指定旧的内核,进入系统后删除新内核即可,而不必重建引导。至于如何禁止内核更新,可以使用 apt-mark hold 和 apt-mark unhold 来禁用和恢复更新。
更新了的 BIOS 也具有一定的迷惑性,差点就提刀去找惠普的售后了。
最后,busybox 大法好!grub 大法好!Ubuntu 大法好!
参考
Ubuntu 启动引导修复:
https://www.jianshu.com/p/ce60fe0e61e6
http://jacean.github.io/2016/06/30/ubuntu重建ESP引导/
https://www.cnblogs.com/linuxde/p/8719378.html
Ubuntu 引导修复的更多相关文章
- ubuntu引导修复
很多人在自己电脑上装了双系统,我自己装了win7和ubuntu14.04,主要还是用win7,但是有时候win7系统崩溃掉时只能重装咯,重装后发现ubuntu的引导不见了,我也试过在windows下修 ...
- Ubuntu引导修复问题
Ubuntu和Win7双系统,一不小心在Ubuntu下把Win7 C盘的boot目录给删了(手贱呀),然后Win7就没了,后来找了张WinPE启动盘修复了Win7引导结果,Ubuntu系统的引导没了. ...
- Ubuntu Win10双系统重启ubuntu出现黑屏情况 Ubuntu引导修复
step 1 : 准备一个Ubuntu grub启动盘 step 2 : 进入Ubuntu启动盘的 Try Ubuntu without install step 3 : 使用终端输入以下命令,记住检 ...
- 安装ubuntu后不能从ubuntu引导修复方法
sudo fdisk -l sudo -i mkdir /media/tempdir mount /dev/sda7 /media/tempdir grub-install --root-direct ...
- win10下安装Ubuntu + 修复Ubuntu引导
如何在已安装 Windows 10 的情况下安装 Linux(Ubuntu 15.04)双系统? - Microsoft Windows - 知乎http://www.zhihu.com/questi ...
- Ubuntu yindaoxiufu 引导修复(Boot Repair)
Ubuntu yindaoxiufu 引导修复(Boot Repair) from: http://blog.csdn.net/piaocoder/article/details/50589667 ...
- 【转】Ubuntu 14.04 引导修复(Boot Repair)(双系统修复一)
这几天不是我闲着没事做,实在是电脑故意跟我过不去,一不小心,Windows就再也无法打 开了,然后的然后,你们都知道就是重装系统喽.但是重装系统后,会发现原来的Ubuntu引导不见了,开机直接进入Wi ...
- Ubuntu 16.04 引导修复(Boot Repair)----lianwang----anzhuang windows hou(双系统修复一)
2016-01-26 20:54 12548人阅读 评论(1) 收藏 举报 分类: =======学习心得=======(23) 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] ...
- Ubuntu grub引导修复
通过USB启动盘安装系统时将引导程序指定到/dev/sdb1,正常应该是指定到/dev/sdb才是,导致安装之后启动不起来. 重新通过USB启动盘进入试用界面,然后打开终端通过如下操作进行grub引导 ...
随机推荐
- 说实话,Android开发月薪3W,谁不酸呢?
近期有个网友在某匿名区晒字节跳动Offfer,毕业一年月薪3W,引发众多读者羡慕,纷纷留言酸了.酸了.但进大厂的要求还是蛮高的,需要在技术实力上有一定的积累,今天给大家分享一份高质量笔记, 助力大家技 ...
- 树莓派应用Docker
本期通过在树莓派上配置 Docker,来介绍 Docker 应用,欢迎来到"万物皆可 Docker"的时代! 什么是 Docker ? Docker 最初是 dotCloud 公司 ...
- goproxy.io
goproxy.io 是全球最早的 Go modules 镜像代理服务之一, 采用 CDN 加速服务为开发者提供依赖下载, 该服务由一批热爱开源, 热爱 Go 语言的年轻人开发维护.从 Go 1.11 ...
- excel的导入与导出---通用版
excel的导入与导出---通用版 web项目关于导入导出的业务场景很常见,最近我就又遇到了这个业务场景.这次将最近半个月做的导入导出总结一下 使用的pom如下,主要还是阿里巴巴的easyexcel依 ...
- 批量删除gmail邮件
以删除tor.com发送的邮件为例说明. 首先点击邮件搜索框右边的三角,在"发件人"下面写上"tor.com": 点"搜索"按钮,看一下范围 ...
- python爬虫:了解JS加密爬取网易云音乐
python爬虫:了解JS加密爬取网易云音乐 前言 大家好,我是"持之以恒_liu",之所以起这个名字,就是希望我自己无论做什么事,只要一开始选择了,那么就要坚持到底,不管结果如何 ...
- 说说XXE漏洞那些事
想不起来写点啥了,又是摸鱼的一天,看了一些红队大佬们整理的资料,非常精彩,于是一个咸鱼翻身先选了一些简单的小点来写一写个人的感想(后续会继续更新其他内容) 不能说写的是技术分享,因为师傅们的文章珠玉在 ...
- 谈谈ARM运行C程序的内部机制
文章目录 一.代码 二.知识储备 1.ARM汇编指令 2.寄存器知识 三.代码解析 1.指令分析 第一条指令: 第二条指令: 第三条指令: 第四条指令: 第五.六条指令: 第七条指令: 第八.九.十条 ...
- Centos7-编译安装zlib
1.解压并进入zlib目录tar xf zlib-1.2.11.tar.gz cd zlib-1.2.11 2.查看编辑参数[root@manage zlib-1.2.11]#./configure ...
- mysql事务的4大特性
事务的四大特性(简称ACID) 1.原子性(Atomicity) 事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做. 2.一致性(Consistency) 事务执行的结果必须是使数据 ...