Linux系统引导过程及故障排除
Linux系统引导过程及故障排除
- 一、Linux操作系统引导过程
- 二、系统初始化进程
- 三、排除启动类故障
- (一)修复MBR扇区故障
- (二)修复GRUB引导故障
- (四)遗忘root用户的密码
一、Linux操作系统引导过程
1.开机自检
服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。
总结:检测出第一个能够引导系统的设备,比如硬盘或者光驱
2.MBR 引导
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR 记录中的引导信息调用启动菜单(如 GRUB)。
总结:运行放在MBR扇区里的启动GRUB引导程序
3.GRUB 菜单
对于Linux操作系统来说,GRUB(统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核。
CentOS 7 采用的是 GRUB2 启动引导器。
总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置
4.加载 Linux 内核
Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程。
CentOS 7系统中,默认的内核文件位于“/boot/vmlinuz-3.10.0-514.el7.x86_64”。
总结:把内核和镜像文件系统加载到内存中
5.init 进程初始化
为了完成进一步的系统引导过程,Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程),init 进程负责完成整个系统的初始化,最后等待用户进行登录。
总结:加载硬件驱动程序,内核把init进程加载到内存中运行
二、系统初始化进程
1.init进程
- 由Linux内核加载运行/sbin/init程序
- init进程是系统中第一个进程,是所有进程的父进程
- init进程的PID(进程标记)号永远为1
2.Systemd
- Systemd是Linux操作系统的一种init软件
- CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
- CentOS7中运行的第一个init进程是/liblsystemd/systemd
传统sysVinit依赖于串行执行shell脚木启动服务,导致效率低下,系统启动速度较慢systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度。
3.Systemd单元类型
4.运行级别所对应的Systemd目标
运行级别 | Systemd的target | 说明 |
---|---|---|
0 | target | 关机状态,使用该级别时将会关闭主机 |
1 | rescue.target | 单用户模式,不需要密码验证即可登录系统,多用于系统维护 |
2=3 | multi-user.target | 等同于3 |
3 | multi-user.target | 字符界面的完整多用户模式,大多数服务器主机运行在此级别~ |
4=3 | multi-user.target | 等同于3 |
5 | graphical.target | 图形界面的多用户模式,提供了图形桌面 |
6 | reboot.target | 重启,重启主机 |
三、排除启动类故障
(一)修复MBR扇区故障
1.故障原因
- 病毒、木马等造成的破坏
- 不正确的分区操作、磁盘读写误操作
2.故障现象
- 找不到引导程序,启动中断
- 无法加载操作系统,开机后黑屏
3.解决思路
- 应提前做好备份文件
- 以安装光盘引导进入急救模式
- 从备份文件中恢复
具体操作
1.备份MBR扇区数据到其他磁盘
c创建风区并格式化和挂载载MBR backup目录下
备份MBR512字节内容
mkdir /backup
mount /dev/sdb1 /backup
dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1
2.模拟破坏MBR引导扇区
dd if=/dev/zero of=/dev/sda bs=512 count=1
3.引导界面进入急救模式,从备份文件中恢复MBR 扇区数据
—> 先加载好光盘镜像,重启操作系统
—>当出现安装向导界面时,选择“Troubleshooting”选项
—>再选择“Rescue a CentOS Linux system”选项,进入急救模式
—>选择“1”选择 Continue并按 Enter 键继续
—>再次按 Enter 键后将进入带“sh-4.2#”提示符的 Bash Shell 环境
—>复制mbr.bak的内容,512字节内容
mkdir /backupdirmount /dev/sdb1 /backupdir 挂载带有备份文件的分区dd if=/backupdir/mbr.bak of=/dev/sda 恢复备份数据exit 执行exit命令退出临时shell环境,系统将会自动重启
在这里插入图片描述](https://img-blog.csdnimg.cn/2021020915393739.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MzU2NzU3Mw==,size_16,color_FFFFFF,t_70#pic_center)
(二)修复GRUB引导故障
1.故障原因
- MBR中的GRUB引导程序遭到破坏
- grub.conf文件丢失、引导配置有误
2.故障现象
- 系统引导停滞
- 显示“grub>”提示符
3.解决思路
- 尝试手动输入引导命令
- 进入急救模式,重写或者从备份中恢复grub.conf
- 向MBR扇区中重建grub程序
/boot/grub/ 目录下的包是用于启动菜单的背景图片及样式显示图形
/boot/grub2/grub.cfg GRUB配置文件 内核,镜像文件
方法一:手动输入引导命令(笨拙繁琐,输入字符较多且输入错误将无法启动,不建议使用)
grub> insmod xfs #加载指定的模块到内核
grub> linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=UUID=8fd74986-ae66-4ffd-b7d8-a19f2eca7b6f ro rhgb quiet LANG=zh_CN.UTF-8 #内核名字及位置信息
grub> initrd16 /initramfs-3.10.0-693.el7.x86_64.img #镜像系统文件
grub> boot #引导boot
方法二:进入急救模式,恢复GRUB引导程序(与修复MBR 引导扇区类似)
1.MBR位于第一块硬盘(/dev/sda)的第一个物理扇区处,总共512字节,前446字节是主引导记录,分区表保存在MBR扇区中的第447-510字节中。
mkdir /bak
mount /dev/sdb1 /bak
dd if=/dev/sda of=/bak/grub.bak bs=446 count=1
2.模拟对MRB中的GRUB引导程序的破坏,但并不破坏分区表
dd if=/dev/zero of=/dev/sda bs=446 count=1
3.引导界面进入急救模式,从备份文件中恢复GRUB引导程序
sh-4.2# mkdir /backupdir
sh-4.2# mount /dev/sdb1 /backupdir
sh-4.2# dd if=/backupdir/grub.bak of=/dev/sda
sh-4.2# exit
方法三:引导界面进入急救模式,重建GRUB菜单配置文件
1.rm -rf /boot/grub2/grub.cfg
2.进入急救模式,加载光盘镜像,切换到系统根环境
sh-4.2# chroot /mnt/sysimage
3.重新将GRUB引导程序安装到第一块硬盘(/dev/sda)的MRB扇区
bash-4.2# grub2-install /dev/sda
4.重新构建GRUB菜单的配置文件
bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg
5.退出chroot 环境,并重启
bash-4.2# exit
sh-4.2# reboot
将CD-ROM Drive位置还原
(四)遗忘root用户的密码
1.进入急救模式,加载系统镜像,切换到系统根环境
sh-4.2# chroot /mnt/sysimage
2.重设root用户密码
bash-4.2# passwd root
3.退出根系统环境重启
Linux系统引导过程及故障排除相关推荐
- Linux系统引导过程(BIOS和Bootloader部分)
Linux系统引导过程(BIOS和Bootloader部分) 刘建文( http://blog.csdn.net/keminlau ) KEY:x86体系 CPU 系统引导 启动过程 Linux LI ...
- linux 更改 引导分区,Linux系统引导过程及引导修复
0.Linux系统引导过程: 1.通电 2.bios初始化 3.磁盘引导阶段 4.grub2文件引导程序 5.内核加载 6.系统初始化镜像 7.系统启动级别 8.超级用户密码 以下内容是针对各过程会出 ...
- Linux系统引导过程及引导修复详解
Linux系统引导过程及引导修复 前言: 在我们启动Linux系统时,需要先通电,接着系统会自动进行bios初始化,对硬件进行检测并初始化硬件时钟,之后就进入了 Linux系统引导过程.Linux系统 ...
- Linux系统引导过程及修复
Linux系统引导过程及修复 1.通电 2.bios初始化 2.1 bios简介 2.2作用 3.磁盘引导 3.1mbr 3.2当mbr数据丢失系统会因为找不到启动分区而停止启动 3.2.1问题模拟方 ...
- 图文详解Linux系统引导过程及引导修复
目录 前言 一.磁盘引导与修复 1.模拟问题 2.修复方式 二.grub2 文件引导与修复 1.模拟问题1 2.引导及修复过程 3.模拟问题2 4.引导及修复过程 三.内核加载 1.模拟问题 2.引导 ...
- Linux系统引导过程及排除启动故障
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一.Linux操作系统引导过程 二.系统初始化进程 三.排除启动类故障 3.1模拟修复MBR扇区故障问题 3.2 修复GRUB ...
- linux分区引导修复工具,linux系统引导过程及引导修复
系统的引导过程 1.通电 2.bios初始化 eg:内存,硬盘没插好 3.磁盘引导 硬盘里面的数据是以分区形式保存,硬盘上的磁头对硬盘的数据进行扫描 ## 磁道:磁头转一周的轨迹,可以确定数据在哪一环 ...
- Linux系统引导过程及修复引导
目录 一.bios初始化 二.磁盘引导 1.mbr:主引导记录,446字节 2.问题模拟方式 三 .磁盘丢失 1.虚拟机中破坏系统引导 2.进入挽救模式 3.修复 4.磁盘进入 三.grub2文件引导 ...
- 引导linux为什么要用实模式,Linux引导过程与故障排除|第1章:Linux启动流程详解...
1. BIOS 当你按下电源键的那一刻起,计算机的的启动就开始了.Intel x86 系列的 CPU 可以分别在 16 位 实模式(Real mode) 和 32 位 保护模式(Protected m ...
最新文章
- 讯飞语音的中的bug用户校验失败
- jquery 移除border_jQuery - 删除元素
- 处理 Oracle SQL in 超过1000 的解决方案
- Windows Terminal 1.0 正式发布
- Spring Cloud系列:不重启eureka,清除down掉的服务
- Java开发自学技巧!【漫画(1)
- Linux学习 LVM ***
- vue2.0 仿手机新闻站(七)过滤器、动画效果
- Winform DataGridView数据绑定问题
- java项目内存使用率过高排查_项目内存或者 cpu 占用率过高如何排查
- 数列分块入门4(区间求和)
- 消耗性缺口_衰竭缺口分析
- 使用Intellij Idea自定义MVC框架
- java毕业设计电影票网上订票系统Mybatis+系统+数据库+调试部署
- JS:Falsy Bouncer(过滤数组假值)
- awk 在指定字符后面插入新字符
- 泰勒(Taylor)展开式(泰勒级数)
- 红黑树插入修正和删除修正详解
- python的spider程序下载_开源网络爬虫程序(spider)一览
- 模型复现 | YOLOR入门教程