linux系统排错

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

一、bios初始化

1、基本输入/输出系统(bios)是内置于标准x86/x86-64硬件的固定接口,将硬件置于已知状态并准备号系统来加载
此阶段出现问题后检查并初始化硬件,确定从中引导的设备,通常按F12可以执行一次引导顺序覆盖

二、磁盘引导阶段

1、MBR

mbr的作用是为了级旅游/boot目录所在分区为只的磁盘0磁道1扇区的前446字节
损坏命令:dd if=/dev/zero of=/dev/xda bs=446 count=1
这里写图片描述
损坏后重新启动错误
这里写图片描述
修复演示
添加光驱,并引导光驱启动
添加光驱,并用光驱启动
这里写图片描述
达打开虚拟机,选择troubleshooting进入
这里写图片描述
选择第二项,进入
这里写图片描述
选择1进入
这里写图片描述

这里写图片描述
chroot /mnt/sysimage 以root身份运行

grub2-install  /dev/vda 

进行安装grub2磁盘引导,安装完毕后输入两次exit继续开机,正常
强制关闭虚拟机,在虚拟机中设置中取消光驱启动,再次进行开机
这里写图片描述
开机正常
这里写图片描述

2、grub文件引导阶段

/boot/grub2/grub.cfg
引导顺序:
指定/boot分区位置
加载内核
启动系统初始化进程
这里写图片描述

[root@localhost ~]# cd /boot/       
[root@localhost boot]# ls
config-3.10.0-123.el7.x86_64    当前内核的配置文件,用于内核编译使用
grub
grub2          里面存放grub引导管理其所必须的配置文件,各种文件系统的驱动文件
initramfs-0-rescue-946cb0e817ea4adb916183df8c4fc817.img
initramfs-3.10.0-123.el7.x86_64.img   当前内核的initrd,即初始化ramdisk文件,里面包含一切启动时候要加载的驱动
initrd-plymouth.img
symvers-3.10.0-123.el7.x86_64.gz   系统设备映射
System.map-3.10.0-123.el7.x86_64
vmlinuz-0-rescue-946cb0e817ea4adb916183df8c4fc817
vmlinuz-3.10.0-123.el7.x86_64  内核文件

损坏文件 rm -fr /boot/grub2/grub.cfg
重新开机界面显示:
这里写图片描述
解决方法
需要手动输入grub2文件的引导内容
这里写图片描述
开机后需要手动生成grub.cfg文件

[root@localhost ~]# grub2-mkconfig > /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-123.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-946cb0e817ea4adb916183df8c4fc817
Found initrd image: /boot/initramfs-0-rescue-946cb0e817ea4adb916183df8c4fc817.img
done

grub2-mkconfig ##输出的就是/boot/grub2/grub.cfg的文件内容
grub2-mkconfig > /boot/grub2/grub.cfg ##将输出内容全部导入指定的grub2文件引导中,再次开机就不需要手动引导

三、img文件丢失

丢失文件initramfs-3.10.0-123.el7.x86_64.img
开机演示
这里写图片描述

修复方法:

1、从光驱开启虚拟机,并选择修复

这里写图片描述

2、新建img文件

这里写图片描述

3、正常启动

这里写图片描述

四、vmlinux文件丢失

示例:删除vmlinz文件
这里写图片描述
重启后:
这里写图片描述
修复方式
1、从光驱方式打开虚拟机
2、进入修复界面
chroot /mnt/sysimage
mount /dev/cdrom /mnt ##将cdrom挂载到/mnt
cp /mnt/Packages/kernel-3.10.0-123.el7.x86_64.rpm /opt/ ##将/mnt中的内核文件复制到任意目录中
rpm2cpio kernel-3.10.0-327.el7.x86_64.rpm | cpio -id ##此命令执行完毕后会发现在/opt中有boot目录,进入boot目录就会看到需要的vmlinuz-3.10.0-327.el7.x86_64文件
cp boot/vmlinuz-3.10.0-123.el7.x86_64 /boot ##将新的文件复制到虚拟机中/boot下
两次exit退出当前界面,
这里写图片描述
取消光驱,正常启动
这里写图片描述

五、systemd 初始化

开启 selinux 和 systemd-tools
加载内核参数
加载系统时钟,键盘,主机名称
读写挂载 / 文件系统
激活 raid , lvm 设备
激活系统配额
启动 multi-user.target.wants 中的所有服务脚本
启用虚拟控台
启动图形

六、启动级别

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
设定启动级别
• systemctl set-default + 启动级别
• /etc/systemd/system/default.target

损坏方式:
可以将默认的图形界面改为关机界面
这里写图片描述
重新开机会这样
这里写图片描述
问题解决:
问题解决:
1.开机按上下键停止读秒
2.按‘E’进入编辑模式
3.选择内核启动行
1、linux16 /vmlinuz-xxxxxx ro xxxxxxxxxxxx
这里写图片描述

修改为
2、 linux16 /vmlinuz-xxxxxx rw rd.break
这里写图片描述
3.启动
ctrl +x ##启动
4.进入命令行“`
chroot /sysroot ##超级用户
rm -fr /etc/systemd/system/default.target ##删除默认的关机界面显示的链接
ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target ##将图形界面的界面设为默认界面
exit ##退出

![这里写图片描述](https://img-blog.csdn.net/20180501212439407?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTc4OTAwMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

七、root用户密码忘记修改方式
================
1.开机按上下键停止读秒
2.按‘E’进入编辑模式
3.选择内核启动行
1、`linux16 /vmlinuz-xxxxxx ro xxxxxxxxxxxx`改为
2、 `linux16 /vmlinuz-xxxxxx rw rd.break`

3、ctrl+x运行
4、进入命令行

chroot /sysroot
passwd
touch /.autorelabel
exit

如果没有开启selinux则可以不应用建立.autorelabel文件
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41789003/article/details/80111270