大家好,欢迎来到IT知识分享网。
目录
前言
在系统加载过程中往往会因为缺少一些系统文件而无法正常重启,这里为大家讲述了一些常见的开机故障问题
一、Linux操作系统引导过程
1.1、引导过程总览
开机自检:就是检测第一个能够引导系统的设备比如硬盘或光驱、U盘
MBR引导:记录中的引导信息调用启动菜单
GRUB菜单:GRUP引导程序通过读取GRUP配置文件/boot/grup2/grup.cfg,来获取内核和镜像文件系统的设置和路径位置
加载Linux内核:把内核镜像文件系统加载到内存中
init进程初始化:加载硬件驱动程序,内核把init进程加载到内存中运行
1.2、系统初始化进程
init进程
由Linux内核加载运行/sbin/init程序
init进程是系统中第一个进程
init程序的PID(进程标记)号永远为1
init 0 关机
init 6 重启
Systemd
Systemd是Linux操作系统的一种init软件
CentOS7中采用权限的Systemd启动方式,取代传统的SysVinit
CentOS7中运行的第一个init进程是/lib/systemd/system
二、MBR、GRUB菜单、忘记密码故障修复
2.1、MBR的故障修复
准备备份盘
首先准备一块备用盘,备份sda中MBR的数据
mkdir /mnt/sdd 创建一个挂载目录
mount /dev/sdd1 /mnt/sdd 挂载
dd if=/dev/sda of=/mnt/sdd/sda.bak bs=512 count=1
将sda中的文件备份到sdd下的sda.bak
模拟故障
dd if=/dev/zero of=/dev/sda bs=512 count=1
利用/dev/zero将/dev/sda里的内容覆盖
这样sda盘就被我们搞坏了
重启,进入急救模式
init 6 重启
重启后会发现我们一进去的界面变成了这样
我们进入Troubleshooting选项
进入标红”急救模式“ 等待
这里选择1进入”安全模式“
按回车,会进入下面这种界面
数据恢复操作
这是一个简单化的命令行模式,能执行一些基础命令
mkdir /copy 创建一个用来挂载目录
mount /dev/sdd1 /copy 将之前备份的盘挂载到sdabak上
dd if=/copy/sda.bak of=/dev/sda bs=512 count=1
将备份的完整的MBR引导数据覆盖到sda
这样就恢复数据完成
exit 退出安全模式,系统将会重启
这样就排除故障,恢复了系统
2.2、GRUP的故障恢复
模拟故障
rm -rf /boot/grub2/grub.cfg 删除grub的文件
重启,进入急救模式
init 6 或者 reboot
等待,随后进入下图界面
exit 输入exit进入下图模式
我们进入Troubleshooting选项
依旧选择Rescue a CentOS system 急救模式,然后等待
输入1 然后回车 进入安全模式
还是点回车进入下图界面
进行故障恢复
chroot /mnt/sysimage
加载光盘镜像,切换到系统根环境
grub2-install /dev/sda
重新将GRUB引导程序安装到第一块盘的MBR扇区,如果有多个分区可省略
grub2-mkconfig -o /boot/grub2/grub.cfg
重新构建GRUB菜单的配置文件
exit 退出chroot
reboot 再重启
可能需要多等一会,有点耐心
这样就能进入系统了
2.3、忘记密码的故障恢复
重启,进入急救模式
init 6 或者 reboot
在进入下图界面的时候要一直点c!!!
按c!!就会进入下图界面
exit 输入exit进入下图模式
我们进入Troubleshooting选项
依旧选择Rescue a CentOS system 急救模式,然后等待
输入1 然后回车 进入安全模式
还是点回车进入下图界面
修改密码操作
chroot /mnt/sysimage
加载光盘镜像,切换到系统根环境
passwd root 修改root密码
exit 退出系统根环境
reboot 重启
这样就完成了
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/134736.html