Linux 基础 之 系统排错

系统引导过程概述:

1.计算机加电后,加载bios

2.bios对硬件进行自检

3.bios从硬盘第0柱面,第0磁道,第一个扇区读取MBR——主引导记录

4.MBR共512字节,其中引导程序512字节 = 引导程序446字节 + 磁盘分区表DPT64字节 + 结束位2字节

5.引导程序可以替换为Grub,用于引导centOs、RedHat

6.运行Grub,根据配置文件加载kernel镜像,并运行第一个程序/sbin/init

7./sbin/init通过etc/inittab进行初始化工作

8.linux根据/etc/inittab的配置来运行/etc/rc.sysinit脚本,设置系统变量、网络配置,启动swap,设定/proc,加载用户自定义模块,加载内核设置

9.启动其他服务

10.运行/etc/rc.local

11.生成终端

1.进行grub磁盘引导阶段

    模拟mbr引导分区数据(程序)丢失
实验步骤:
第一步:在虚拟机上:
[root@localhost ~]# dd if=/dev/zero of=/dev/vda bs=446 count=1  ##模拟mbr引导分区数据丢失
[root@localhost ~]# reboot   ##重启后发现无法启动
第二步:
关机,virt-manager进入虚拟机管理界面(先将虚拟机force off);添加镜像,选择镜像启动
第三步:
开机进入救援模式(先选最后一个Troubles...然后选择第二个Rescue            ##开始挽救 ;continue->ok->ok)
进入到一个shell
第四步:
chroot /mnt/sysimage/   ##挂载系统镜像到根目录,出现NO error reported说明恢复446的分区表成功
grub2-install /dev/vda  ##启动分区所在硬盘
exit
exit
第五步:
修改虚拟机的启动方式,选择虚拟硬盘启动,重新开机(将CD光驱从第一拉到最后)

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

##2.文件引导阶段##

     grub引导文件/boot/grub2/grub.cfg丢失
实验步骤:
在虚拟机上:rm -fr /boot/grub2/grub.cfg
方法一:删除文件后本机未reboot
grub2-mkconfig > /boot/grub2/grub.cfg
方法二:删除文件后本机已经重新启动
在新的shell里
grub> set root='hd0,msdos1' ##指定boot分区
grub> linux16  /boot/vmlinuz-3.10.0-123.e17.x86_64(内核文件) ro root=/dev/vda1  ##分区设备名称
grub> initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img  ##初始化镜像文件
grub> boot

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

上述操作可以使系统正常启动,但是临时的,进入系统后要执行grub2-mkconfig > /boot/grub2/grub.cfg

这里写图片描述

3.内核文件丢失 (查$()和‘’的区别)

实验步骤:在虚拟机上
方法一:删除文件后本机没有重新启动
[root@localhost Desktop]# cd /boot/
[root@localhost boot]# ls
[root@localhost boot]# rm -fr vmlinuz-3.10.0-123.el7.x86_64 
[root@localhost boot]# yum whatprovides /boot/vmlinuz-3.10.0-123.el7.x86_64
[root@localhost ~]# cd /root/Desktop
[root@localhost Desktop]# ls    ##从镜像的backages取出kernel-3.10.0-123.el7.x86_64.rpm 到桌面上
kernel-3.10.0-123.el7.x86_64.rpm
[root@localhost Desktop]# file kernel-3.10.0-123.el7.x86_64.rpm
kernel-3.10.0-123.el7.x86_64.rpm: RPM v3.0 bin i386/x86_64 kernel-3.10.0-123.el7
[root@localhost Desktop]# rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id
219282 blocks
[root@localhost Desktop]# cp boot/vmlinuz-3.10.0-123.el7.x86_64 /boot/

这里写图片描述

这里写图片描述

这里写图片描述

方法二:删除文件后本机已经重新启动
在新的shell里
df
cd /run/install/repo
ls
cd Packages
pwd
cp kernel-3.10.0-123.e17.x86_64.rpm /mnt/sysimage/mnt/
chroot /mnt/sysimage
cd /mnt/
ls
rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id
cp boot/vmlinuz-3.10.0-123.el7.x86_64  /boot/

这里写图片描述
进入到挽救模式
这里写图片描述

这里写图片描述
完成后两次exit退出,并退出挽救模式,重启即可
这里写图片描述

4.初始化程序丢失

[root@localhost Desktop]# rm -fr /boot/initramfs-3.10-123.e17.86_64.img
实验步骤:
方法一:删除文件后本机没有重新启动
[root@localhost Desktop]# mkinitrd /boot/initramfs-$(name -r).img $(uname -r)   ##uname -r  显示内核版本名

这里写图片描述

这里写图片描述

方法二:已经重新启动了:
进入挽救模式:
chroot /mnt/sysimge
mkinitrd /boot/initramfs-$(uname -r).img  $(uname -r)
exit
exit
进入virt-manager后先将server force off 再将光盘驱动调到最后,启动

这里写图片描述
然后进入挽救模式,恢复初始化镜像文件
这里写图片描述

这里写图片描述
次exit退出,并退出挽救模式即可
这里写图片描述

5.系统启动级别被修改
Linux系统有7个运行级别:
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

实验步骤:
root@localhost ~]# systemctl set-default shutdown.target   改变开机默认级别
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/shutdown.target' '/etc/systemd/system/default.target'
[root@localhost ~]# reboot
##
 1.开机按上下键
 2.按e进入编辑模式
 3.选择内核启动
   linux16 /vmlinuz-xxxx ro xxxxxx  末尾添加5    ##添加5是表示开启图形
 4.ctrl +x 
##
[root@localhost ~]# systemctl set-default graphical.target  修改级别
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target'

这里写图片描述

这里写图片描述

这里写图片描述

猜你喜欢

转载自blog.csdn.net/janenancy/article/details/80342354