Linux大神进阶十九:系统排错

文章目录

  • 1.系统排错的过程
  • 2.理解
  • 3.常见的系统恢复
    • 3.1忘记密码
    • 3.2 MBR引导记录丢失
    • 3.3 引导文件丢失
    • 3.4 引导内核文件丢失
    • 3.5 镜像文件丢失
    • 3.6 系统启动级别
    • 3.7 系统入口设置

1.系统排错的过程

2.理解

(1)BIOS(Basic Input/Output System):基本输入输出系统,该系统存储于主板的ROM芯片上,计算机在开机时,会最先读取该系统,然后会有一个加电自检过程,这个过程其实就是检查CPU和内存,计算机最基本的组成单元(控制器、运算器和存储器),还会检查其他硬件,若没有异常就开始加载BIOS程序到内存当中。详细的BIOS功能,这边就不说了,BIOS主要的一个功能就是存储了磁盘的启动顺序,BIOS会按照启动顺序去查找第一个磁盘头的MBR信息,并加载和执行MBR中的Bootloader程序,若第一个磁盘不存在MBR,则会继续查找第二个磁盘(PS:启动顺序可以在BIOS的界面中进行设置),一旦BootLoader程序被检测并加载内存中,BIOS就将控制权交接给了BootLoader程序。
(2)MBR(Master Boot Record):主引导记录,MBR存储于磁盘的头部,大小为512bytes,其中,446bytes用于存储BootLoader程序,64bytes用于存储分区表信息,最后2bytes用于MBR的有效性检查。
(3)系统启动流程

第一步: 电脑通电
||
第二步: BIOS(主板上的只读存储ROM中,basic input or output system)
作用:硬件检测,激活硬件;
||
第三步: grub系统引导(grub引导分为两个阶段)
1)阶段1 grub磁盘引导阶段 (见3.2节)
mbr(主引导记录)主引导记录在硬盘上的0磁道,一扇区,446个字节
dd if=/dev/zero of=/dev/vda bs=446 count=1 ##可以清空mbr
进入到挽救模式,执行***chroot /mnt/sysimage***切换到真实/环境,
并执行***grub2-install /dev/vda***
2)阶段2 grub文件引导阶段(见3.3节)
找到/boot分区
读取***/boot/grub2/grub.cfg /etc/grub.cfg***
文件丢失:grub2-mkconfig >/boot/grub2/grub.cfg
grub2-mkconfig > /etc/grub.cfg
||

第四步: 内核引导阶段(见3.4节)
启动内核,只读挂载/设备
检测硬件设备
对设备驱动进行初始化
进入系统初始化阶段, 将/挂载
内核丢失,从新安装内核安装包就可以解决
方法一: rpm -ivh kernel-xxxxx.rpm --force
方法二: 拷贝所缺的目录;

||

第五步: 系统初始化阶段(系统初始化阶段加载initrd镜像)
(见3.5节)
||
第六步: 开启初始化进程systemd(见3.6节)
开始selinux
加载内核参数
初始化系统时钟,键盘,主机名称
重新读写挂载/设备
激活raid,lvm
激活配额
启动multi-user.target.wants中的所有服务(具体开启的服务取决于系统启动的级别)
开启虚拟控制台
启动图形
如何修改系统启动级别?
方法一: systemctl set-default + 启动级别
方法二: /etc/systemd/system/default.target

3.常见的系统恢复

注意: 重启速度慢的原因
开机会慢一点,因为重新扫描selinux,可以将/etc/sysconfig/selinux中enforcing改成disabled,避免开机速度慢。

3.1忘记密码

功能 代码 注释
1.1实验准备
(1) passwd ## 修改密码
(2) xxxxxxxx ## 新密码
(3) xxxxxxx ## 确认新密码
(4) init 6 ##重启
1.2系统恢复
(1) e ##进入安装页面点击e
(2) ro xxxxxxxx…UTF-8 修改为 rw rd.break ##
(3) chroot /sysroot/ ## 切换到引导目录
(4) ls ## 查看目录
(5) echo redhat passwd --stdin root
(6) exit ## 一次退出
(7) exit ## 二次退出,进行安装,生效

Result1.1实验准备 Linux大神进阶十九:系统排错_第1张图片Result1.2系统恢复
Linux大神进阶十九:系统排错_第2张图片Linux大神进阶十九:系统排错_第3张图片Linux大神进阶十九:系统排错_第4张图片

3.2 MBR引导记录丢失

功能 代码 注释
2.1实验准备
(1) dd if=/dev/zero of=/dev/vda bs=446 count=1 ##清空MBR
(2) init 6 ## 重启
2.2系统恢复
2.2.1##添加硬盘设备 virt-manager>>>add hardware>>> Selete od create custom storage(rhel7.0)>>>CDROM device>>>finish
2.2.2修改默认启动项为光盘启动 Boot Options>>>IDECDROM>>>应用 ##
2.2.3恢复选项的选择 (1) 进入启动页面,选择Troubleshooting >>>Rescue a red hat Enterprise Linux system
(2) continue>>>okay>>>okay 然后进入恢复界面
2.2.4恢复引导记录 (1) chroot /mnt/sysimage ##进入镜像目录
(2) grub2-install /dev/vda ## 恢复引导记录
(3) exit>>>exit>>>force off the machine ##二次退出
2.2.5修改默认启动项为磁盘启动 Boot Options>>>VirtIO>>>应用 ## ##修改默认启动项为磁盘启动 ,此时便能正常启动

Result2.1实验准备

Linux大神进阶十九:系统排错_第5张图片

Result2.2系统恢复

Linux大神进阶十九:系统排错_第6张图片Linux大神进阶十九:系统排错_第7张图片
Linux大神进阶十九:系统排错_第8张图片
Linux大神进阶十九:系统排错_第9张图片
Linux大神进阶十九:系统排错_第10张图片

Linux大神进阶十九:系统排错_第11张图片

3.3 引导文件丢失

功能 代码 注释
3.1实验准备
(1) rm -rf /etc/grub2 ##删除引导文件
(2) init 6 ## 重启
3.2系统恢复
3.2.1##添加硬盘设备 virt-manager>>>add hardware>>> Selete od create custom storage(rhel7.0)>>>CDROM device>>>finish
3.2.2修改默认启动项为光盘启动 Boot Options>>>IDECDROM>>>应用 ##
3.2.3恢复选项的选择 (1) 进入启动页面,选择Troubleshooting >>>Rescue a red hat Enterprise Linux system
(2) continue>>>okay>>>okay 然后进入恢复界面
3.2.4恢复引导记录 (1) chroot /mnt/sysimage ##进入镜像目录
(2) grub2-install /dev/vda ## 恢复引导记录
(3) grub2-mkconfig >/boot/grub2/grub.cfg ##将文件添加到启动项
(4) grub2-mkconfig > /etc/grub.cfg ## 将文件添加到原来的配置文件
(5) exit>>>exit>>>force off the machine ##二次退出,并关机
2.2.5修改默认启动项为磁盘启动 Boot Options>>>VirtIO>>>应用 ## ##修改默认启动项为磁盘启动 ,此时便能正常启动

Result3.1实验准备
Linux大神进阶十九:系统排错_第12张图片Result3.2系统恢复

Linux大神进阶十九:系统排错_第13张图片Linux大神进阶十九:系统排错_第14张图片Linux大神进阶十九:系统排错_第15张图片Linux大神进阶十九:系统排错_第16张图片
Linux大神进阶十九:系统排错_第17张图片Linux大神进阶十九:系统排错_第18张图片

3.4 引导内核文件丢失

功能 代码 注释
4.1实验准备
(1) cd /boot/ ##打开启动目录
(2) rm -rf vmlinuz-3.10.0-123.e17.x86_64 ##删除引导文件
(3) init 6 ## 重启
4.2系统恢复
4.2.1##添加硬盘设备 virt-manager>>>add hardware>>> Selete od create custom storage(rhel7.0)>>>CDROM device>>>finish
4.2.2修改默认启动项为光盘启动 Boot Options>>>IDECDROM>>>应用 ##
4.2.3恢复选项的选择 (1) 进入启动页面,选择Troubleshooting >>>Rescue a red hat Enterprise Linux system
(2) continue>>>okay>>>okay 然后进入恢复界面
4.2.4恢复引导记录:方案一 (1) chroot /mnt/sysimage ##进入镜像目录
(2) mkdir /johnsonlee ##创建搭载目录
( 3) mount /dev/sr0 /johnsonlee ##将光盘文件挂载
(4) cd /johnsonlee/ ##切换到光盘挂载点
(5) ls ##查看光盘中的文件
(6) cd Packages/ ##切换到安装包目录中(记住,不要ls,有4000多个包)
(7) rpm -ivh kernel-xxxxx.rpm --force ##强制安装该内核文件
(8) exit>>>exit>>>force off the machine ##二次退出,并关机
4.2.4恢复引导记录:方案二 (1) chroot /mnt/sysimage ##进入镜像目录
(2) mkdir /curry ##创建搭载目录
( 3) mount /dev/sr0 /curry ##将光盘文件挂载
(4) cd /curry ##切换到光盘挂载点
(5) ls ##查看光盘中的文件
(6) cd Packages/ ##切换到安装包目录中(记住,不要ls,有4000多个包)
(7) cp kernel-3.10.-123.e17.x86_64.rpm /mnt/ ##将这个文件包拷贝到/mnt/下,因为在光盘目录中不能进行拆包
(8) cd /mnt/ ##切换到/mnt/
(9) ls ##查看/mnt/下拷贝过来的文件包
(10) rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm cpio -id ##拆包
(11) ls ##查看包中的文件
(12) pwd ##查看当前路径
(13) cd boot/ ##切换到包中的boot/目录下
(14) ls -l ##包中存在内核文件
(15) cp vmlinuz-3.10.0-123.e17.x86_64 /boot/ ##将内核文件拷贝到系统的/boot/目录下
(16) exit>>>exit>>>force off the machine ##二次退出,并关机
4.2.5修改默认启动项为磁盘启动 Boot Options>>>VirtIO>>>应用 ## ##修改默认启动项为磁盘启动 ,此时便能正常启动

注意:方法一速度慢但是能针对在未知所缺文件时使用;方法二速度快,已知所缺文件。

Result4.1实验准备

Linux大神进阶十九:系统排错_第19张图片
Result4.2系统恢复

Linux大神进阶十九:系统排错_第20张图片Linux大神进阶十九:系统排错_第21张图片Linux大神进阶十九:系统排错_第22张图片Linux大神进阶十九:系统排错_第23张图片Linux大神进阶十九:系统排错_第24张图片Linux大神进阶十九:系统排错_第25张图片Linux大神进阶十九:系统排错_第26张图片

3.5 镜像文件丢失

功能 代码 注释
5.1实验准备
(1) cd /boot/ ##打开启动目录
(2) rm -rf initramfs-3.10.0-123.e17.x86_64.img ##删除引导镜像
(3) init 6 ## 重启
5.2系统恢复
5.2.1##添加硬盘设备 virt-manager>>>add hardware>>> Selete od create custom storage(rhel7.0)>>>CDROM device>>>finish
5.2.2修改默认启动项为光盘启动 Boot Options>>>IDECDROM>>>应用 ##
5.2.3恢复选项的选择 (1) 进入启动页面,选择Troubleshooting >>>Rescue a red hat Enterprise Linux system
(2) continue>>>okay>>>okay 然后进入恢复界面
5.2.4恢复引导记录 (1) chroot /mnt/sysimage ##进入镜像目录
(2.1) 方法1 mkinitrd /boot/initramfs-`uname −r`.img `uname -r` ①生成系统初始化镜像;②initramfs是/boot/grub2/grub.cfg 文件已经写好的,不能更改;③uname -r ##系统当前版本;`command` 表示里面command的结果
(2.2) 方法2 mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) 生成系统初始化镜像
(3) exit>>>exit>>>force off the machine ##二次退出,并关机
5.2.5修改默认启动项为磁盘启动 Boot Options>>>VirtIO>>>应用 ## ##修改默认启动项为磁盘启动 ,此时便能正常启动

Result 5.1实验准备
Linux大神进阶十九:系统排错_第27张图片

Result 5.2系统恢复
Linux大神进阶十九:系统排错_第28张图片Linux大神进阶十九:系统排错_第29张图片
Linux大神进阶十九:系统排错_第30张图片Linux大神进阶十九:系统排错_第31张图片Linux大神进阶十九:系统排错_第32张图片Linux大神进阶十九:系统排错_第33张图片

3.6 系统启动级别

功能 代码 注释
6.1实验准备
(1) systemctl set-default poweroff.target ##开机自启动关机模式
(2) init 6 ## 重启
(init 0)runlever0.target poweroff.target ##(关机)
runlever1.target rescue.target ##(挽救)
runlever2.target multi-user.target ##(多用户)
(init 3)runlever3.target multi-user.target ##
runlever4.target multi-user.target ##
(init 5)runlever5.target graphical.target ##(图形模式)
(init 6)runlever5.target reboot.target ##(重启)
systemctl set-default +启动级别修改 ##修改级别
vim /etc/systemd/system/default.target ##修改级别
6.2系统恢复
(1) e ##进入安装页面点击e
(2) ro xxxxxxxx…UTF-8 修改为 rw rd.break ##
(3) chroot /sysroot/ ## 切换到引导超级用户目录
(4) systemctl set-default graphical.target ##(图形模式)
(5) exit>>>exit>>>force off the machine ##二次退出,并关机
(6) Boot Options>>>VirtIO>>>应用 ## ##修改默认启动项为磁盘启动 ,此时便能正常启动

Result6.1实验准备
Linux大神进阶十九:系统排错_第34张图片

Result6.2:系统恢复
Linux大神进阶十九:系统排错_第35张图片Linux大神进阶十九:系统排错_第36张图片
Linux大神进阶十九:系统排错_第37张图片Linux大神进阶十九:系统排错_第38张图片

3.7 系统入口设置

注意:重装系统,双系统进入时的入口的选择;

功能 代码 注释
(1) vim /etc/grub2.cfg ##打开配置文件,寻找关键字menu
(2)vim menuentry ‘Windows 10’{ >>> set root=‘hd0,msdos1’>>>chainloader +1>>>} ##标题写法,menuntry为固定格式;‘入口名称’,单引号间的内容为入口名称;大括号内的内容为参数
(3) Boot Options>>>VirtIO>>>应用 ## ##修改默认启动项为磁盘启动 ,此时便能正常启动

Linux大神进阶十九:系统排错_第39张图片
Linux大神进阶十九:系统排错_第40张图片Linux大神进阶十九:系统排错_第41张图片

你可能感兴趣的:(1.1,Linux大神进阶(基础篇))