Linux入门(14)——系统启动修复

1. Linux系统启动流程

- 通电

- BIOS初始化

  按照BIOS所设定的系统启动流程,根据引导次序(Boot Sequence)自上而下的寻找对应存储设备上操作系统的MBR,如果MBR存在,则会读取MBR中的bootloader,并初始化硬件时钟。

- 磁盘引导

  MBR(bootloader)会根据MBR所指引的活动分区上寻找系统分区中的 bootloader,bootloader称为是一段程序,占据446字节。RHEL系统中bootloader为grub2引导文件。

- grub2引导

  根据MBR找到grub2之后,指向/boot位置,进一步准备加载系统启动所必需的文件。

- 内核加载(kernel)

  探索硬件及加载硬件驱动程序,并以读写的方式挂载根文件系统。

- 系统初始化镜像(init进程)

  加载系统时钟、selinux、系统主机信息、/etc/fstab文件中磁盘策略、磁盘配额、初始化系统程序开启开机启动服务、开启虚拟控制台、开启图形等根据系统运行级别启动应用。位置:/boot/initramfs-4.18.0-80.el8.x86_64.img

- 系统运行级别

标识 含义
0 关机
1 单用户
2 无图形网络模式
3 无图形网络模式
4 无图形网络模式
5 有图形网络模式
6 重启

2. 系统启动修复

- 磁盘MBR分区丢失

[root@rhclient Desktop]# dd if=/dev/zero of=/dev/vda bs=446 count=1 #  清空MBR分区

从光驱启动系统,进入救援模式:

# chroot /mnt/sysimage       #切换环境至硬盘系统
# grub2-install /dev/vda    #重新安装grub2到系统硬盘上

- 引导文件丢失

  • /boot/loader/entries/xxx.conf 丢失
[root@rhclient Desktop]# cp /usr/lib/modules/4.18.0-193.el8.x86_64/bls.conf /boot/
[root@rhclient Desktop]# kernel-install add $(uname -r) /boot/vmlinuz-4.18.0-193.el8.x86_64
  • /boot/grub2/grub.cfg 丢失
[root@rhclient Desktop]# grub2-mkconfig > /boot/grub2/grub.cfg

若无法进入系统需要启动手动引导:

grub> set root='hd0,msdos1'
grub> linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/vda1
grub> initrd16 /initramfs-4.18.0-80.el8.x86_64.img
grub> boot

- vmlinuz文件丢失

[root@rhclient Desktop]# cp /usr/lib/modules/$(uname -r)/vmlinuz /boot/vmlinuz-$(uname -r)

或进入救援模式

[root@rhclient Desktop]# chroot /mnt/sysimage
[root@rhclient Desktop]# cp /usr/lib/modules/$(uname -r)/vmlinuz /boot/vmlinuz-$(uname -r)

- init镜像文件丢失

[root@rhclient Desktop]# mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

或进入救援模式

# chroot /mnt/sysimage
# mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

- /boot 分区完全丢失

进入救援模式,分别安装引导以及生成引导配置文件。挂载光驱至/mnt/,在光驱系统软件仓库中为硬盘系统重新安装内核程序。

# chroot /mnt/sysimage
# grub2-install /dev/sda
# grub2-mkconfig > /boot/grub2/grub.cfg
# mount /dev/cdrom /mnt/
# cd /mnt/BaseOS/Packages/
# rpm -ivh kernel-core-xxxx.rpm --force

- 系统运行级别错误

在开机界面按e进入编辑菜单,在内核加载选项最后加入启动级别5,进入系统重新设定运行级别。

[root@rhclient Desktop]# systemctl set-default graphical.target

- 超级用户密码丢失

在开机界面按e进入编辑菜单,将内核加载选项中删除ro及之后的内容,增加rw rd.break。启动系统,运行:

# chroot /sysroot
# echo PASSWORD | passwd --stdin root
# touch /.autorelabel

3. 练习

  • MBR丢失
    主硬盘为nvme0n1

    进入救援模式,安装引导。

  • grub引导丢失

    手动引导

    进入系统,安装grub.cfg

  • /boot 分区丢失

    安装内核后依然无法启动,重装系统初始化镜像与内核加载程序

    推断为首次进入救援模式时,安装内核未使用强制安装,系统检验到原内核程序的残留文件,因而判断内核完好,未进行安装步骤。重新强制安装内核,生成引导。成功进入系统。

  • root用户密码丢失

    在引导界面 进入编辑

    启动,重设密码

Linux入门(14)——系统启动修复相关推荐

  1. Linux入门之系统启动过程及初始化----“翻滚吧,牛宝宝”

    每当你按下开机电源键的时候,总是怀着一颗虔诚的心,抱着求神拜佛的念头,祈求机器顺利开机,不要出幺蛾子:每当你看到屏幕上输出的一行又一行的信息,绿的OK,红的failed,迷茫的眼神穿透了显示器:这一切 ...

  2. 蓝桥云课linux入门14:Linux 下软件安装

    目录 一.内容 二.开始 2.1 先体验一下 2.2 apt 包管理工具介绍 2.3 apt-get 2.4 安装软件包 2.5 软件升级 2.6 卸载软件 三.使用 dpkg 3.3 查看已安装软件 ...

  3. oracle安装搜狗输入法教程,Linux入门学习教程:在Ubuntu 14.04中安装使用搜狗拼音输入法...

    然后,访问搜狗输入法Linux版的官网,http://pinyin.sogou.com/linux,下载搜狗输入法Linux版.从官网可以看到,该输入法官方只支持Ubuntu(不过网上有人通过将deb ...

  4. FFmpeg4入门14:Linux下摄像头捕获并编码为h264

    上一篇是将H264流封装到MP4容器中,本篇介绍一个最常用的捕获原始数据的方法:从摄像头获取数据. 因为本人已经放弃windows操作系统,所以使用linux来获取摄像头并编码为H264文件保存. l ...

  5. Kali Linux入门

    文章目录 第1章 Kali Linux入门 1.1 Kali的发展简史 1.2 Kali Linux工具包 1.3 下载Kali Linux 1.4 使用Kali Linux 1.4.1 Live D ...

  6. 第1章 Kali Linux入门 一篇就够了

    文章目录 第1章 Kali Linux入门 1.1 Kali的发展简史 1.2 Kali Linux工具包 1.3 下载Kali Linux 1.4 使用Kali Linux 1.4.1 Live D ...

  7. Linux_第1章 Linux入门

    第1章 Linux入门 首先要感谢<鸟哥的linux私房菜>这本书,这本书对新手来说,是很好得老师,也感谢师兄郑丹,抽出时间为我们讲解它得心得,让我们学习linux起来事半功倍.希望我得总 ...

  8. 嵌入式Linux入门经典笔记

    史上最牛的Linux内核学习方法论     点击下载 我的arm_linux移植笔记     点击下载 S3C2440完全开发流程     点击下载 Linux系统命令及其使用详解完整版     点击 ...

  9. linux lite 安装步骤,Linux Lite第一个支持Linux 4.14及如何安装

    Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 Linux Lite保护者Jerry Bezencon再次初次在Twitter上宣布他的基于Ubun ...

  10. Linux 文件系统错误的修复方法 ddrescue替代dd的恢复软件 备用超级块

    Linux 文件系统错误的修复方法  ddrescue替代dd的恢复软件  备用超级块 http://www.mamicode.com/info-detail-1372846.html 最近处理的一件 ...

最新文章

  1. 测验4: 程序的控制结构 (第4周)
  2. 关于LGame-0.2.9版的开发进度
  3. linux端口访问规则,linux 查看开发放端口号--iptables
  4. Java未来路在何方?挑战大厂重燃激情!
  5. SLB访问日志分析:基于客户端来源和HTTP状态码的实践
  6. 我的女朋友漏电了–论C++中的失败(failure),缺陷(bug)和异常(exception)
  7. scala调用java库_从scala调用java时的java.lang.IllegalAccessError – solutions / workarounds?...
  8. POJ1214 UVA127 Accordian Patience【vector】
  9. 第五篇、常用的SQL语句和函数介绍
  10. DEX VMP与ARM VMP
  11. EditPlus 3 网页中文乱码问题
  12. 蛮牛精选七款Unity插件
  13. IP地址规划和设计方法
  14. 双向链表DoublyLinkedList类
  15. 人再囧途之泰囧.BD高清1280国语中英双字 附下载地址
  16. linux系统的一点感触
  17. 健康低辐射,信号全覆盖,飞鱼星i-Home覆盖方案上市
  18. Win10系统Anaconda+TensorFlow+Keras 环境搭建教程
  19. windows下制作linux U盘启动盘或者安装优盘(转)
  20. 磁盘块管理器DiskBlockManager

热门文章

  1. 一个萌新的学习如何写BUG记录(学无止境,更无止境)
  2. 绑定挂载mount --bind介绍
  3. 打印机连接与计算机的,操作方法:教您如何将打印机与计算机连接
  4. HOJ 2706 Key Task
  5. 74ls175四人抢答器电路图_四人智力竞赛抢答器电路原理及设计.doc
  6. 快速理解三角函数:积化和差、和差化积
  7. xamp配置虚拟域名_如何下载,安装和配置XAMP以创建网页?
  8. switch之enum
  9. 什么是邮箱个人签名?邮箱如何设置个人签名?
  10. 修复 iPhone X H5 底部安全区域定位按钮下内容穿透 BUG