Linux启动流程及错误修复

系统启动流程

                                                                                              通电

                                                                                                 ||

                           bios(主板上的只读存储中,basic input output system) 作用:硬件检测,激活硬件

                                                                                                 ||

                                                              grub系统引导(grub引导分为两个阶段)

                                   阶段1:mbr(主引导记录)主引导记录在硬盘上的0磁道,一扇区,446个字节

                                                                        阶段2:grub文件引导阶段

                                                                                                 ||

                            启动内核,只读挂载/设备,检测设备,对设备驱动进行初始化,进入系统初始化阶段
                                                                                                 ||

                                                                                   系统初始化阶段

              加载initrd镜像,开启初始化进程systemd,开始selinux,加载内核参数,初始化系统时钟,键盘,主机名称

              重新读写挂载/设备,激活raid,lvm,激活配额,启动multi-user.target.wants中的所有服务,开启虚拟控制台

                                                                                          启动图形


常见系统错误

主引导记录mbr被删除

模拟问题:fdisk -l ---- 查看当前主机的磁盘设备,找到带*的设备,这里实验主机上为/dev/vda1

                    dd if=/dev/zero of=/dev/vda1 bs=446 count=1 ---- 删除设备上的主引导记录

报错界面:

解决方法:

虚拟机加光盘,挂载镜像,从boot options中设置从光盘中优先启动

选择troubleshooting

进入第二个挽救模式

挽救模式会找到已经安装的linux系统,并把根挂载到/mnt/sysimage,挽救模式的根和真实系统不是一个根

选择continue得到挽救模式的环境

chroot /mnt/sysimage ---- 切换到真实的根系统

grub2-install /dev/vda ---- 安装446字节的引导,没有错误代表成功安装

boot options 更改启动选项,机器即可正常启动

 

引导文件grub.cfg丢失

模拟问题:rm -fr /boot/grub2/grub.cfg

报错界面:

解决方法:

当主机没有关闭时:

grub2-mkconfig > /boot/grub2/grub.cfg ---- 将grub文件重新写入boot

当主机已经关闭时:

setroot='hd0,msdos1' ---- boot启动分区

linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1 ---- 路径为自己根所在路径

initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img ---- 系统初始化程序

boot

系统即可正常启动,系统启动后grub.cfg文件还没有存在:grub2-mkconfig > /boot/grub2/grub.cfg

内核文件丢失

模拟问题:rm -fr /boot/vmlinuz-3.10.0-123.e17.x86_64

报错界面:

解决方法:

挂载镜像至光盘

进入挽救模式

chroot /mnt/sysimage

mkdir /westos

df ---- 查看光盘设备名称

mount /dev/sr0 /westos ---- 把光盘挂载到新建的目录中

cd /westos/Packages ---- 进入光盘的包目录

cp kernel-3.10.0.-123.e17.x86_64.rpm /mnt

rpm2cpio kernel-3.10.0.-123.e17.x86_64.rpm | cpio -id

cd /mnt/boot

cp vmlinuz-3.10.0-123.e17.x86_64 /boot

boot options 更改启动选项,机器即可正常启动

系统初始化镜像文件丢失

模拟问题:rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img

报错界面:

解决方法:

当主机没有关闭时:

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

uname -r ---- 查看版本号

当主机已经关闭时:

挂载镜像至光盘

进入挽救模式

chroot /mnt/sysimage

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

boot options 更改启动选项,机器即可正常启动

/boot目录被误删

模拟问题:rm -fr /boot/*

报错界面:

解决方法:

挂载镜像至光盘

进入挽救模式

chroot /mnt/sysimage

grub2-install /dev/vda1

cp vmlinuz-3.10.0-123.e17.x86_64 /boot

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

grub2-mkconfig > /boot/grub2/grub.cfg

boot options 更改启动选项,机器即可正常启动

开机启动级别发生错误

模拟问题:systemctl set-default reboot.target

报错界面:主机开机一直重启

解决方法:

在此界面按e

修改文件内容如下,在行尾加入5 ctrl+x重启

重启时,修改启动级别

systemctl set-default graphical.target

 

忘记超级用户密码

模拟问题:假装忘记超级用户密码

解决方法:

开机启动时,按e进入界面

把ro改为rw,然后添加rd.break选项   ctrl+x启动

chroot /sysroot切换到真实的系统环境

passwd 更改超级用户密码

touch /.autorelabel ---- 让系统重新扫描所有文件,当系统selinux关闭时,可以不建立此文件。selinux开启时必须建立此文件

密码修改成功

猜你喜欢

转载自blog.csdn.net/weixin_43189623/article/details/84071736