系统排错

1.系统引导过程概述

1.1 通电–>bios初始化–>grub2磁盘引导阶段–>grub2文件引导阶段
–>指定boot所在分区–>启动内核,只读/挂载设备–>启动init程序进入初始化阶段
–>启动systemd初始化进程–>取/etc/systemd/中的文件–>启动程序–>启动登陆环境

1.2 bios初始化
基本输入 / 输出系统 ( BIOS ) 是内置于标准 x86/x86-64 硬件的固件接口 ,
将硬件置于已知状态并准备好系统以加载操作系统
出现什么情况 ?
检测并初始化硬件
确定从中引导的设备
可能出现了什么错误 ?
错误或异常 BIOS 设置
错误引导设备顺序
可以如何中断或影响 ?
按特定于供应商的键
使用特定于供应商的配置实用程序
通常 , 可以执行一次引导顺序覆盖

2.进行grub 磁盘引导阶段

(1)模拟mbr引导分区数据(程序)丢失

模拟问题1:dd if=/dev/zero of/dev/vda bs=446 count=1  

进入救援模式

chroot /mnt/sysimg       ###挂载系统镜像到根目录
grub2-install /dev/vda    ###启动分区所在硬盘

实验:
第一步准备好与系统版本对应的镜像
这里写图片描述
第二步模拟mbr引导
dd if=/dev/zero of=/dev/vda bs=446 count=1 # 模拟mbr引导分区数据丢失
这里写图片描述
reboot重启后发现无法启动
这里写图片描述
第二步:关机,virt-manager进入虚拟机管理界面;添加镜像,选择镜像启动,
这里写图片描述
这里写图片描述
第三步:开机进入救援模式
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
第四步:


chroot /mnt/sysimg ###挂载系统镜像到根目录
grub2-install /dev/vda ###启动分区所在硬盘
exit两次,
这里写图片描述
第五步,选择虚拟硬盘启动,重新开机就ok了
这里写图片描述

3.文件引导阶段

(1) grub引导文件/boot/grub2/grub.cfg丢失
模拟问题2:rm -fr /boot/grub2/grub.cfg
法1:丢失还没reboot
执行命令grub2-mkconfig > /boot/grub2/grub.cfg
这里写图片描述
法2:丢失重启了

grub> set root=’hd0,msdos1’ ##指定boot分区(位置不固定)
grub> linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1 #分区设备名称
##/boot/linuz-3.10.0-123.e17.x86_64 内核文件
grub> initrd16 /boot/vminitramfs-3.10.0-123.e17.x86_64.img #初始化镜像文件
grub> boot
##上述操作可以使系统正常启动,但是临时的,所以进入系统后要执行
grub2-mkconfig > /boot/grub2/grub.cfg

实验:开机后进入下边界面
这里写图片描述
指定boot分区,分区设备名称,内核文件,以及初始化镜像,最后输入boot回车
这里写图片描述
开机后创建引导文件:grub2-mkconfig >/boot/grub2/grub.cfg
这里写图片描述

3.内核文件丢失

模拟问题:模拟问题3:rm -fr /boot/vmlinuz-3.10.0-123.e17.x86_64
进入挽救模式
chroot /mnt/sysimage ##挂载系统镜像到根目录
mkdir /save ##新建目录/save
mount /dev/sr0 /save ##挂载镜像到/save上
cd /save/Packages ##切换目录到/save/Packages中
rpm2cpio kernel-3.10.0-123.e17/x86_64.rpm | cpio -id
##解压rpm软件包为cpio,解压到当前目录(/mnt下)
cd boot ##切换到/mnt新刚解压产生的boot目录中
cp vmlinuz-3.10.0-123.e17.x86_64 /boot ##复制/mnt/boot下的镜像到/boot中
exit
exit
reboot
实验:
第一步:删除内核文件
这里写图片描述
第二步:开机报错,内核文件找不到
这里写图片描述
关机后选择镜像启动
这里写图片描述
再次开机进入救援模式:

这里写图片描述
这里写图片描述
第三步:关机选择虚拟硬盘启动
这里写图片描述
再次开机 ok

4.初始化镜像丢失

模拟问题rm -fr /boot/initramfs-3.10-123.e17.86_64.img
         ##uname -r  显示内核版本名1:未reboot,
       执行:
 mkinitrd /boot/initramfs-$(name -r).img $(uname -r)
 法2:已经重新启动了:
  进入挽救模式:
  chroot /mnt/sysimge
  mkinitrd /boot/initramfs-$(uname -r).img$ (uname -r)

模拟问题4:rm -fr /boot/initramfs-3.10-123.e17.86_64.img
未reboot
执行命令chroot /mnt/sysimge
mkinitrd /boot/initramfs- (unamer).img (uname -r)

这里写图片描述

法2:已经reboot使用镜像文件进入救援模式,
执行命令 chroot /mnt/sysimge
mkinitrd /boot/initramfs- (unamer).img (uname -r)
完成后exit两次,退出,关闭虚拟机选择虚拟硬盘启动,再次开机就ok
这里写图片描述
开机会加载会下图
这里写图片描述

5.当/boot分区被删除后

模拟问题5:删除/boot/目录
rm -fr /boot/

进入到挽救模式
      chroot  /mnt/sysimge       
      mkdir  /boot
      grub2-install  /dev/vda
      mount   /dev/cdrom  /mnt
      rpm -ivh  /mnt/Packages/kernel-3.1.0-123.e17.x86_64.rpm  --force
      grub2-mkconfig > /boot/grub2/grub.cfg

实验:第一步删除boot分区
这里写图片描述
开机启动显示
这里写图片描述
第二步:进入救援模式

这里写图片描述
这里写图片描述

6. 当开机启动级别被篡改

 错误形成
 syatemctl set-deflault reboot.target
 解决方法:

 1.开机按上下键
 2.按e进入编辑模式
 3.选择内核启动行
 linux16 /vmlinuz-xxxx ro xxxxxx
 linux16 /vmlinuz-xxxx rw rd.break      
 4.ctrl +x
 5.chroot /sysroot   
 6.rm -fr /etc/systemd/system/graphical.target  
 7.ln -s /lib/systemd/system/graphical.target   /etc/systemd/system/default.target
 8.exit

实验:
这里写图片描述
解决方法:
这里写图片描述
这里写图片描述
这里写图片描述

7.root忘记密码

1.开机按上下键
2.按e进入编辑模式
3.选择内核启动行
linux16 /vmlinuz-xxxx ro xxxxxx
linux16 /vmlinuz-xxxx rw rd.break
4.ctrl +x
5.chroot /sysroot
6.passwd
新密码
新密码
7.touch /.autorelabel ##防止密码不被系统识别
8.exit,exit
这里写图片描述
这里写图片描述

8.系统启动的各种设定

(1)设置开机启动等待的秒数
    配置文件:/boot/grub2/grup.cfg
    63 set timeout=*   设置开机启动等待的秒数
    67 set timeout=*   上下一致

    重启reboot显示效果

(2)设置显示系统的名称:
    72 menuentry 'Micarosoft Windows 7'{
    73         set root='hd0,msdos1'
    74         chainloader +1
    75}

    重启reboot显示效果

(3)设置默认启动项:
命令行下:grub2-set-default 0,1,2 ##0表示第1个,1表示第2个…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值