首页 > 系统相关 >Linux操作系统引导过程及故障修复

Linux操作系统引导过程及故障修复

时间:2023-02-05 09:11:29浏览次数:37  
标签:引导 操作系统 GRUB 4.2 扇区 故障 init Linux MBR

1、引导过程总览


1.开机自检
服务器主机开机以后,将根据主板BIOS中的设置对CPU (Central Processing Unit,
中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制剖权,大多时候会移交给本机硬盘。
总结:检测出第一个能够引导系统的设备比如硬盘或光驱、U盘

2.MBR引导
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中 MBR (Master Boot Record,
主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR记录中的引导信息调用启动菜单(如GRUB)。
总结:运行放在MBR扇区里的启动GRUB引导程序

3.GRUB菜单
对于Linux操作系统来说,GRUB (GRand Unified Bootloader,统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB 以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载 Linux内核文件,然后将系统控制权转交给内核。需要注意的是,Centos 7 采用的是 GRUB2启动引导器。

4.加载内核:将内核与镜像加载到内存中

5.init初始化:开启pid=1的进程,进程就是init加载的程序是systemd

2、系统初始化进程
init进程

Linux内核加载运行lsbin/init程序
init进程是系统中第一个进程
init进程的PID(进程标记)号永远为1
Systemd

Systemd是Linux操作系统的一种init软件
CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
CentOS7中运行的第一个init进程是/lib/systemd/systemd
查看当前系统下的活跃进程:ps aux

Systemd单元类型

单元类型:0service 扩展名: .service 说明:描述一个系统服务

运行级别所对应的Systemd目标

运行级别:6 Systemd的target:reboottarget 说明:重新启动,使用该级别时将会重启主机

3、修复MBR扇区故障
1、思路:
MBR 512字节
MBR 是在sda盘的第一个物理扇区中
解决MBR引导程序故障问题,前提要先进行备份
备份:
首先在/sda中,我只要将512的MB内容,备份到其他盘/sdb

2、问题:
MBR引导文件异常了,重启后无法正常进入

3、解决:
进入急救模式,然后选择进入“安全模式”
创建挂载点,r将之前备份在/sdb中的mbr文件挂载到这个临时挂载点上
dd复制512字节的数据到/ sda中
exit退出重启,检测
4、步骤
1.备份MBR扇区数据到其它磁盘( /dev/sdb1)

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"选择cContinue并按Enter键继续
再次按Enter键后将进入带"sh-4.2#"提示符的Bash Shell环境
sh-4.2#mkdir /backupdir
sh-4.2#mount /dev/sdb1/backupdir
#挂载带有备份文件的分区
sh-4.2#dd if=/backupdir/mbr.bak of=/dev/sda#恢复备份数据.
sh-4.2#exit
#执行exit命令退出临时shell环境,系统将会自动重启

 

 

 

4、修复GRUB引导故障
1、故障原因
MBR中的RGU引导程序遭到破坏
grub.conf文件丢失,引导配置有误
2、故障现象
系统引导停滞,显示grub>提示符
3,解决思路
尝试手动输入引导命令
进入急救模式,重写或者从备份中恢复
向MBR扇区中重建grub程序
4、步骤
引导界面进入急救模式,重建GRUB菜单配置文件
rm -rf /boot/ grub2l grub.cfg
#进入急救模式,加载光盘镜像切换到系统根环境
sh-4.2#chroot /mnt / sysimage
#重新将GRUB引导程序安装到第一块硬盘(/dev/sda)的MRB扇区,如果有多个分区可省略
bash-4.2#grub2-install / dev / sda
#重新构建GRUB菜单的配置文件
bash-4.2# grub2-mkconfig -o / boot/grub2/grub.cfg
#退出chroot环境,并重启
bash-4.2#exit
sh-4.2# reboot

 

5、CentOS遗忘root用户的密码或是重置
进入急救模式,加载系统镜像,c切换到系统根环境 exit选择troubleshooting然后选择急救模式
sh-4.2# chroot /mnt/sysimage
#重设root用户密码
bash-4.2# passwd root

 

6、优化启动过程
ntsysv工具

提供一个交互式、可视化窗口
可以在字符终端运行
便于集中管理多个服务
systemctl工具

不提供交互式、可视化窗口
管理单个服务效率更高
7、Linux系统的运行级别
查看运行级别

rulevel命令
systemctl工具
临时切换运行级别

init命令
systemctl工具
设置永久运行级别

8、系统服务控制
系统服务控制

systemctl 控制类型 服务名称

控制类型

start:启动
stop:停止
restart:重新启动
reload:重新加载
status:查看服务状态

标签:引导,操作系统,GRUB,4.2,扇区,故障,init,Linux,MBR
From: https://www.cnblogs.com/esec/p/17092849.html

相关文章

  • linux磁盘阵列
    1、磁盘阵列简介RAID(RedundantArrayofIndependentDisks)即独立硬盘冗余阵列,简称磁盘阵列。磁盘阵列是由很多价格较便宜的磁盘,以硬件(RAID卡)或软件(MDADM)形式组合成一个......
  • Linux服务器硬件及RAID配置
    Linux服务器硬件及RAID配置一、RAID磁盘阵列介绍独立冗余磁盘阵列(RedundantArrayofIndependentDisks)作用:把多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组......
  • Go Linux bash环境下 字符串strings.Trim截取无效
    result:="40%"iflen(result)>0{fmt.Println("result:",result)numStr:=strings.TrimSpace(strings.Trim(result,"%"))fmt......
  • Linux环境下:程序的链接, 装载和库[静态链接]
    看以下例子main.cexternintx;intmain(){inty=100;swap(&x,&y);return0;}intx=1;voidswap(int*x,int*y){inttemp=*x;......
  • linux基本功系列之history命令实战
    (文章目录)前言......
  • linux --- 0号进程,1号进程,2号进程
    0号进程0号进程称为idle进程,每个进程都有一个进程控制块PCB(ProcessControlBlock),PCB的数据结构类型是structtask_struct。idle进程对应的PCB是 structtask_structi......
  • LInux crontab
    crontab 内容简介一、crontab的基本介绍二、crontab语法三、crontab常用工具四、crontab的坑 一、crontab的基本介绍crontab是用来定期执行程序的命令,当安......
  • Linux系列教程(一)——Linux系统简介
    本系列教程将完整的讲解整个Linux相关的知识,这是楼主学完兄弟连的Linux教程之后重新对Linux知识体系的整理。个人感觉兄弟连的Linux教程可以很好的入门,从最基础的知识开......
  • 操作系统引导
    操作系统引导操作系统引导是指计算机利用CPU运行特定程序,通过程序识别硬盘,识别硬盘分区,识别硬盘分区上的操作系统,最后通过程序启动操作系统,一环扣一环地完成上述过程。......
  • Linux环境下:程序的链接, 装载和库[ELF文件详解]
    编译过程拆解预处理处理生成.i文件,.i文件还是源码文件将所有的宏定义#define展开。处理#if,#else,#endif等条件编译指令处理#include,原地插入文件cppHelloW......