Linux的系统恢复

简介:


系统引导过程概述

  wKiom1mIcWGj-YNyAAVcyvEhZiU774.png


一.系统启动流程  

通电
 
bios(主板上的只读存储中,basic input or output system)作用,硬件检测,激活硬件

1.grub系统引导(grub引导分为两个阶段)
(1)阶段1 mbr(主引导记录)主引导记录在硬盘上的0磁道,一扇区,446个字节
       dd if=/dev/zero of=/dev/vda bs=446 count=1 可以清空mbr,重新启动
       进入到挽救模式,执行chroot /mnt/sysimage切换到真实/环境,
       并执行grub2-install /dev/vda

 主引导分区mrb损坏

查看boot分区

wKioL1mIcr-SmXeiAAAWcTnTWrw956.png

wKioL1mIcr7AfGi2AAAERbt-2Tg568.png

关闭selinux

wKiom1mIcr_BlfAOAAAfuoV5FFQ150.png

wKioL1mIcr_CWFoqAAACf4QUTKY429.png

选择救援模式

wKioL1mIcrvRKTx7AAARFGVDdPA701.png

wKiom1mIcruzKuEJAAAZL_tc0KQ177.png

wKiom1mIcrvRsnuBAAAyREc8xsY144.png

进入到真实目录,安装系统引导grub2

wKioL1mIcryxzb6jAAAu2NbmfYA177.png

安装完成后调回硬盘启动

wKioL1mIcr2jcj47AADby9a7e9E755.png

修复完成,可以正常启动

wKiom1mIcr2zmZb_AAAJMIpITeA278.png



(2)阶段2 grub文件引导阶段
   找到/boot分区
   读取/boot/grub2/grub.cfg
   文件丢失,grub2-mkconfig >/boot/grub2/grub.cfg

引导文件grub损坏

查看/目录分区是vda3


wKiom1mIdQmCzwB_AAAUw4Bmqo8031.png


删除引导文件

wKioL1mIdQezi7o2AAAFyzdNQ9E470.png

开机后手动输入引导文件

set root='hd0,msdos1' 根目录

linux16 /vmlinuz-3.10.0-327.e17.x86_64 ro root=/dev/vdb3 内核文件

initrd16 /initramfs-3.10.0-327.e17.x86_64.img 开机启动服务

boot 启动

wKioL1mIdQixjVqyAAAqww-EPC4386.png

利用grub2-mfconfig修复grub.cfg文件

wKiom1mIdQjAiA-LAAAtyd4JLBI634.png

进入系统后查看/boot/grub2/grub.cfg引导文件已经复原修复

wKioL1mIdQmyb2OxAAAm9vZAJ7k263.png




3.启动内核,只读挂载/设备
检测设备
对设备驱动进行初始化
进入系统初始化阶段
内核丢失,从新安装内核安装包就可以解决
rpm -ivh kernel-xxxxx.rpm --force

删除boot目录下的内核文件

wKioL1mIeb_jAt9CAAAeeX5oj74623.png

缺失内核文件,无法启动

wKiom1mIeb_hs1MHAAAMp9DZUag770.png

加载光驱

wKioL1mIecDhCTgBAAA6a4zqbcU472.png

进入救援模式,如图进入救援系统,真实的系统根目录为/mnt/sysimage

分解安装盘内的内核包

wKiom1mIecHRKOLTAAAlHeeC04o517.png

将分解后的内核文件拷贝到/mnt/sysimage/boot下,完成后退出

wKioL1mIecGTHaj6AAAPj1EDczg080.png

内核修复完成,进入系统

wKiom1mIecKiy-JLAAAIX-NlV5o754.png


4.系统初始化阶段
系统初始化阶段加载initrd镜像
开启初始化进程systemd
开始selinux
加载内核参数
初始化系统时钟,键盘,主机名称
重新读写挂载/设备
激活raid,lvm
激活配额
启动multi-user.target.wants中的所有服务
开启虚拟控制台
启动图形
initramfs-`uname -r`.img丢失用:mkinitrd initramfs-`uname -r`.img `uname -r`    恢复

系统初始化加载initrd镜像损坏

删除initrd镜像文件initramf-3.10.0-327.x86_64.img


wKioL1mIe1eyDKdBAAA0Dq-z9oE482.png

重启后无法进入系统,缺失初始化镜像文件

wKiom1mIe1jzZQ5OAAAHw25U04Y735.png

重启系统,加载CDROM的安装盘文件

wKioL1mIe1nSLBA4AACXWPzz6eI788.png

恢复initramfs镜像文件

wKiom1mIe1nizyJEAAAxr-hA4_I070.png

硬盘启动

wKiom1mIe1qhC75AAACVTGSpQWs123.png

恢复成功,进入系统

wKioL1mIe1rg2_M8AAAIStu2A6o096.png




二.其他系统排错问题:

1.开机root密码进不去,重新修改root密码

重新启动系统

在系统启动阶段按上下键停止系统引导

wKioL1l_LMnC8jmrAAAUmOY7w0c745.png

选择启动引导标题,按e键进行编辑

找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项

wKioL1l_LPCTH7XmAAAfXyFjAV8447.png

wKiom1l_LPWQFXQgAAAq_7xpN9w206.png

ctrl+x启动设定过后的系统引导条目

进入系统后执行chroot  /sysroot切换到真实的系统环境

wKioL1l_LSLCtW8zAAAMm4NoKXw323.png

passwd root修改超级用户密码

建立文件/.autorelabel让系统重新扫描所有文件

exit两次使系统自动重新启动

wKioL1l_LT2gTRGiAAASX4vU_m0727.png-wh_50



2.开机登陆账户闪退,shell文件损坏

重新启动系统

在系统启动阶段按上下键停止系统引导

wKioL1l_LMnC8jmrAAAUmOY7w0c745.png

选择启动引导标题,按e键进行编辑

找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项

wKioL1l_LPCTH7XmAAAfXyFjAV8447.png

wKiom1l_LPWQFXQgAAAq_7xpN9w206.png

ctrl+x启动设定过后的系统引导条目

wKiom1mJoheCA3FRAAEnjwxHCkg080.png

无法切换到真实根目录下,将救援模式系统的/bin/bash拷到sysroot/bin/bash

wKioL1mJoheSZo08AACqQx0ojMo930.png

修复完成后退出进入系统


3.开机后快进入到登陆界面时又自动关机,开机运行级别错误

重新启动系统

在系统启动阶段按上下键停止系统引导

wKioL1l_LMnC8jmrAAAUmOY7w0c745.png

选择启动引导标题,按e键进行编辑

找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项

wKioL1l_LPCTH7XmAAAfXyFjAV8447.png

wKiom1l_LPWQFXQgAAAq_7xpN9w206.png

ctrl+x启动设定过后的系统引导条目

进入系统后执行chroot  /sysroot切换到真实的系统环境

wKioL1l_LSLCtW8zAAAMm4NoKXw323.png

查看运行级别软连接,指向关机,重新做软连接运行级别

wKioL1mKXzPiO3K_AAFbET-nePg225.png

chroot  /sysroot

-rm -rf /etc/systemd/system/default.target

ln -s /lib/systemd/system/multi-user.target  /etc/systemd/system/default.target


系统运行级别
runlever0.target -> poweroff.target
runlever1.target -> rescue.target
runlever2.target -> multi-user.target
runlever3.target -> multi-user.target
runlever4.target -> multi-user.target
runlever5.target -> grapical.target
runlever6.target -> reboot.target







      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1954317,如需转载请自行联系原作者





目录
打赏
0
0
0
0
348
分享
相关文章
Linux系统中的cd命令:目录切换技巧
踏过千山,越过万水,人生就是一场不断前行的旅程,总充满了未知与挑战。然而,“cd”命令如同你的旅伴,会带你穿梭在如棋盘一般的文件系统中,探索每一处未知。希望你能从“cd”命令中找到乐趣,像是掌控了一种络新妙的魔法,去向未知进发,开始你的探索之旅。
92 24
|
8天前
|
Linux系统下快速批量创建和删除文件的方法
总的来说,使用shell脚本来批量处理文件是一种非常强大的工具,只要你愿意花时间学习和实践,你会发现它能大大提高你的工作效率。
64 19
Linux系统之su命令的基本使用
Linux系统之su命令的基本使用
68 2
Linux系统之su命令的基本使用
在Ubuntu Linux系统下如何搭建并安装EDK2
以上就是在Ubuntu Linux系统下搭建并安装EDK2的过程。这个过程可能会有些复杂,但只要按照步骤一步步来,应该不会有太大问题。如果在过程中遇到任何问题,都可以在网上找到相应的解决方案。希望这个指南能对你有所帮助!
70 17
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
120 27
|
1月前
|
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
153 10
|
2月前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
134 24
Linux系统之whereis命令的基本使用
|
1月前
|
Linux系统中如何查看CPU信息
本文介绍了查看CPU核心信息的方法,包括使用`lscpu`命令和读取`/proc/cpuinfo`文件。`lscpu`能快速提供逻辑CPU数量、物理核心数、插槽数等基本信息;而`/proc/cpuinfo`则包含更详细的配置数据,如核心ID和处理器编号。此外,还介绍了如何通过`lscpu`和`dmidecode`命令获取CPU型号、制造商及序列号,并解释了CPU频率与缓存大小的相关信息。最后,详细解析了`lscpu`命令输出的各项参数含义,帮助用户更好地理解CPU的具体配置。
184 8
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
|
4月前
|
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
383 78
下一篇
oss创建bucket