系统启动阶段可能遇到的问题及恢复

系统启动阶段可能遇到的问题及恢复

系统引导过程

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


grub 文件引导阶段 

由文件 / boot/grub2/grub.cfg 控制流程 

指定 / boot 分区位置——> 加载内核——> 启动系统初始化进程——>grub2-mkconfig

内核引导阶段 
检测硬件设备——> 设备驱动初始化——> 将 / 只读挂载——> 载入初始化进程 systemd——> 内核文件丢失重新找回

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


1.引导程序boot损坏

mbr 的作用是为了记录 /boot 目录所在分区位置

磁盘的 0 磁道 1 扇区的前 446 字节

dd if=/dev/zero of=/dev/vda bs=446 count=1

 未重启可用grub2-install /dev/xda 恢复

 

但若关机

[root@localhost ~]# dd if=/dev/zero of=/dev/vda bs=446 count=1

[root@localhost ~]# reboot

界面显示如下

 

[kiosk@foundation36 Desktop]$ virt-manager

  首先关闭所有虚拟机


j建立一个光盘镜像,从光驱启动

 


 

启动

选择troubleshooting                                   系统修复

 选择rescue a red hat enterprise linux system           挽救模式

选择continue,一直选ok

为方便输入,先df

 

Chroot /mnt/sysimage/

 Grub2-install /dev/vda

出现No error reported表示成功

 

为快速启动,可将selinux设置为disable

关闭虚拟机

选择硬盘启动再次启动即可

 启动后可在正常页面修复


2.grub 文件引导阶段出错及解决方式

/boot/grub2/grub.cfg

指定 /boot 分区位置

加载内核

启动系统初始化进程

grub2-mkconfig

模拟引导文件 / boot/grub2/grub.cfg 丢失

[root@localhost ~]# rm -rf /boot/grub2/grub.cfg    模拟文件引导阶段出错

 

未关机可用[root@localhost ~]# grub2-mkconfig > /boot/grub2/grub.cfg修复

 

 关机后显示如下

 

 

[root@localhost ~]# grub2-mkconfig > /boot/grub2/grub.cfg修复

Ok

3.内核文件丢失

[root@localhost boot]# rm -rf vmlinuz-3.10.0-123.el7.x86_64

未关机时

首先查找丢失文件所属

 

[root@localhost boot]# yum whatprovides /boot/vmlinuz-3.10.0-123.el7.x86_64

Loaded plugins: langpacks

rhel_dvd/filelists_db                                    | 3.0 MB     00:00     

kernel-3.10.0-123.el7.x86_64 : The Linux kernel


然后进入/run/media/root/RHEL-7.0 Server.x86_64/Packages

找到vmlinuz-3.10.0-123.el7.x86_64文件,移动到桌面


拆分

[root@localhost Desktop]# rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id


将丢失部分拷贝会

[root@localhost Desktop]# cp boot/vmlinuz-3.10.0-123.el7.x86_64 /boot/

完成

如果关机了


从光盘进入挽救模式


cd /mnt/sysimage/mnt

rpm2cpio /run/install/repo/Packages/kernel... | cpio -id

cd boot

cp vmlinuz-3.10.0-123.el7.x86_64 /mnt/sysimage/boot/

硬盘启动即可

4.初始化文件丢失

[root@localhost boot]# rm -rf vmlinuz-3.10.0-123.el7.x86_64


未关机可通过mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)修复


关机后显示如下


进入挽救模式

chroot /mnt/sysimage

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


5.自动启动引导出错

启动级别
0runlevel0.target,poweroff.target                                     关闭系统。
1runlevel1.target,rescue.target                                      进入救援模式。
2runlevel2.target,multi-user.target                                进入非图形界面的多用户方式。
3runlevel3.target,multi-user.target                                 进入非图形界面的多用户方式。
4runlevel4.target,multi-user.target                                  进入非图形界面的多用户方式。
5runlevel5.target,graphical.target                                进入图形界面的多用户方式。
6runlevel6.target,reboot.target                                         重启系统





6.更改超级用户密码

重启虚拟机,在系统启动阶段按上下键停止系统启动引导,选择系统启动标题,按“e”键进行编辑

找到linux16引导条目这一行,从这行最后开始删到ro 将ro改为rw ,添加rd.break

ctrl+x 启动设定过的系统引导条目

进入系统后执行chroot    /sysroot进入真实系统环境

passwd root 修改超级用户密码

建立文件 /.autorelabel让系统重新扫描

exit两次重启系统



7.引导程序boot损坏且建立时提示无目录

chroot /mnt/sysimage/时系统提示无/bin/bash目录

此时可应将/bin/bash 复制给真实环境,即/mnt/sysimage/ban/bash


猜你喜欢

转载自blog.csdn.net/awoyaoc/article/details/80314893
今日推荐