Linux的系统排错
文章目录
一、系统引导过程
- BIOS是电脑的基本输入输出系统,在计算机系统中起着重要作用
- BIOS是连接电脑硬件和软件的枢纽,也可以说它是一款转换器
- 从功能上看,BIOS分为三个部分: 自检及初始化程序;硬件中断处理;程序服务请求
程序 | 含义 |
---|---|
自检及初始化程序 | 比较容易理解,就是电脑通电后BIOS对硬件部分的检测,是否有异常或故障,还有就是启动前一些硬件参数的比对是否符合,之后就是引导硬盘的操作系统 |
硬件中断处理 | 计算机开机的时候,BIOS会告诉CPU硬件设备的中断号,当你操作时输入了使用某个硬件的命令后,它就会根据中断号使用相应的硬件来完成命令的工作,最后根据其中断号跳回原来的状态 |
程序服务请求 | 从BIOS的定义可以知道它总是和计算机的输入输出设备打交道,它通过最特定的数据端口发出指令,发送或接收各类外部设备的数据,从而实现软件应用程序对硬件的操作 |
二、系统的不同问题
2.1 硬盘引导阶段
1、 mbr主引导记录的恢复
模拟问题: dd if= /dev/zero of=/dev/vda bs=446 count=1
重启开机后,会卡在这里。
解决
(1)让虚拟机开机时以光驱开启。
- 插入光驱时,先关机。
(2)开机进入挽救模式
(3)df 查看一下 boot分区所在硬盘为/dev/vda
(4)grub2-install 启动分区所在硬盘
(5)两次exit 就好了
(6)更改开机启动方式,重启问题就解决了
2.2 文件引导阶段
1、引导文件grub.cfg丢失
模拟问题: rm -fr /boot/grub2/grub.cfg
解决
未重启时,
重启 时:
(1)以磁盘方式开启虚拟机,此时,系统会停在这里,因为丢失了引导文件,说以我们可以手动引导
(2)grub > set root=‘hd0,msdos1’ 此位置是不固定的,位置指定/boot所在分区
(3)grub > linux16 /vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1 #跟分区的设备名称
(4)grub > initrd16 /initramfs-3.10.0-123.el7.x86_64.img
(5)boot
(6)以上操作可以使系统正常启动,但是是临时的,所以进入系统后还是需要执行: grub2-mkconfig > /boot/grub2/grub.cfg
2、 内核文件丢失问题
模拟问题: rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64
解决:
(1)以光驱启动,进入rescus挽救模式
(2)chroot /mnt/sysimage 进入/dev/vda1挂载点
(3)mkdir /rhel7 (建立光盘挂载点)
(4)mount /dev/sr0 /rhel7 将光盘挂载在此目录
(5)cd /rhel7/Packages 到达镜像的包下
(6)cp kernel-3.10.0-123.el7.x86_64.rmp /mnt 我们将安装包复制在/mnt下
(7)cd /mnt 在mnt目录 rpm2cpio kernel-3.10.0-123.el7.x86_64.rmp|cpio -id 然后将包安装解压,我们解压出boot etc lib 与内核安装包
(9)cd /mnt/boot 在 /mnt/boot 下 cp vmlinuz-3.10.0-123.el7.x86_64 /boot 将/mnt/boot中的内核复制到/boot中
(11)exit最后退出挂载点,exit最后退出
3、 初始化镜像文件丢失
模拟问题:rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
当系统没有重启 时
==mkinitrd /boot/initramfs-$(uname).img (uname).img ==
当系统** 重启**
(1)进入挽救模式
(2)chroot /mnt/sysimage
(3)mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
4、/boot分区被删除
(1)以光驱启动虚拟机,进入到挽救模式
(2)chroot /mnt/sysimage
(3)mkdir /boot
(4)grub2-install /dev/vda 安装主引导记录mbr
(5)mount /dev/sr0 /mnt
(6)rpm -ivh /mnt/Packages/kernel-3.10.0-123.el7.x86_64.rpm --force 安装内核文件
(7)grub2-mkconifg > /boot/grub2/grub.cfg
2.3 系统开机启动级别被人恶意篡改
- 查看开机启动级别:cd /etc/systemd/system/multi-user.target.wants/
**模拟问题:systemctl set-default reboot.target**开机后会不停重启
解决:
(1)开机按上下键停止读秒
(2)按“e”进入编辑模式
(3)选择内核启动行
linux16 /vmlinuz-xxxx ro xxxx 改为 linux16 /vmlinuz-xxxx rw rd.break
(4)ctrl+x
(5)chroot /sysroot
(6)rm -fr /etc/systemd/system/default.target
(7)ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target
(8)exit*2
2.4 忘记root用户密码
(1)开机按上下键停止读秒
(2)按“e”进入编辑模式
(3)选择内核启动行
linux16 /vmlinuz-xxxx ro xxxx 改为 linux16 /vmlinuz-xxxx rw rd.break
(4)ctrl+x
(5)chroot /sysroot
(6)passwd 来修改用户密码,设置密码为redhat,再次输入密码redhat,即可更改root用户密码
(7)touch /.autorelabel 让selinux生效,即可重新开启虚拟机。
- Linux系统中 中的系统排错 之 六 启动级别发生错误
- Linux系统中的Bug排错
- linux基础篇(十九):几种常见的系统排错
- Linux系统排错
- Linux系统中 如何系统排错 二之文件引导阶段(引导文件丢失)!
- linux中的系统排错
- linux系统故障排错
- Linux系统排错(硬盘引导阶段,文件引导阶段,开机启动级别被篡改)
- linux系统启动流程及启动故障排错
- linux系统排错
- linux中系统的排错
- linux系统排错
- 一次Linux系统1分钟负载5000+的故障排错
- 一次Linux系统1分钟负载5000+的故障排错
- Linux系统启动过程及grub引导故障排错(二)
- linux系统故障排错
- linux学习笔记(十九)-------系统排错
- Linux系统――网络的基础配置和排错
- Linux系统排错
- linux系统排错与恢复