基于linux的系统排错

###linux系统的开机启动过程#####

通电-->bios初始化-->grub2磁盘引导阶段-->grub文件引导阶段-->指定boot所在分区-->启动内核,只读挂载/设备

-->启动init程序进入初始化阶段-->启动systemd初始化进程-->取/etc/systemd中的文件-->启动程序-->启动登陆环境

####linux中在启动过程中mbr主引导程序被破坏,如何恢复#####

1.grub  磁盘引导阶段
mbr 的作用是为了记录 /boot 目录所在分区位置

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

2.查看自己系统的版本(hostnamectl进行查看)

3.查看boot引导程序所在分区(fdisk -l 查看)

4.模拟破坏程序,进行恢复

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

           reboot    ###系统会启不了

(2)重启后有如下报错

(3)在真机中virt-manager打开虚拟机图形管理,关掉server虚拟机,点击小灯泡图标,选择下面的Add Hardware添加

选择本虚拟机相应的镜像7.0,设备选CDROM光驱,IDE,点击finish即可

出来后选择Boot Options 把刚才添加的CDROM排到第一读取的位置,然后重启虚拟机

再次进入后,选择Trobuleshooting进入挽救模式,回车

然后再选择Rescue  a  Red  Hat  Enterprise Linux  system ,回车

进入之后会让你确认是否恢复选continue,然后会告诉你你的系统被挂载在/mnt/sysimage,进入挽救模式后你需要切换根目录chroot  /mnt/sysimage

下面两个选ok即可

进入挽救模式后,恢复引导程序,命令如下,完成后两次exit退出

关闭虚拟机,点击小灯泡,选择Boot Options将Disk1调至第一读取位置,点击apply,重启即可恢复

####系统引导文件删除后的恢复####

引导文件在/boot/grub2/grub.cfg中

1.删除引导文件,在系统没有重启之前可直接恢复

2.若已经重启,就需要手动引导

####第一行,指定/boot所在分区,在grub.cfg里可以查看

####第二行,root=根分区的设备名称,df可以查看

3.恢复好后还需grub2-mkconfig > /boot/grub2/grub.cfg     否则,每次启动都需要手动引导

#######系统内核文件删除后的恢复#######

1.系统内核文件就在/boot下,ls可看到

2.删除内核文件后,未重启的情况

df 查看镜像挂载点

cd /run/media/root/RHEL-7.0\ Server.x86_64/

  ls

 cd Packages/    ####进入Packages
 cp kernel-3.10.0-123.el7.x86_64.rpm   /root/Desktop    ###复制到桌面
 rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id   ####将内核安装包解压

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

3.删除内核文件后,重启之后的恢复,报错情况

4.进入到挽救模式,df查看/dev/sr0的挂载点,切换至所在目录cd /run/install/repo/Packages,复制内核安装包到/mnt/sysimage的mnt目录里,操作如下图

      cd  /run/install/repo
      ls
      cd  Packages
      cp  kernel-3.10.0-123.el7.x86_64.rpm  /mnt/sysimage/mnt

     chroot   /mnt/sysimage
      cd  /mnt
      rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id

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

切入系统现在的根chroot    /mnt/sysimage,进入/mnt,将内核包解压,再将内核文件复制到/boot

完成后,两次exit退出,再进入虚拟机管理界面,把Disk1调至第一读取位置,重启即可恢复(同上面)

##########系统初始化文件丢失的恢复###########

1.删除镜像文件(镜像文件在/boot/下)

2.当系统没有重启时,可以直接恢复,命令如下:提示$()为先执行括号里的内容,$(uname -r)自动匹配文件的版本

3.如果重启了,会出现如下报错

4.然后进入挽救模式,恢复初始化镜像文件

5.完成后,两次exit退出,再进入虚拟机管理界面,把Disk1调至第一读取位置,重启即可恢复(同上面)

############系统开机启动级别被篡改的恢复########

###系统的启动级别##

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

1.修改开机级别

systemctl set-default shutdown.target
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/shutdown.target' '/etc/systemd/system/default.target'

reboot

2.重启后,有如下报错

3.此时修改为,进入登陆选择界面时,先按上下键停止进入,然后选择你要登陆的系统按e,选择linux16这一行,在最后添加5,按crlt+x,系统重启

4.系统重启后,应修改系统的启动级别,不然下次还会出现此情况

systemctl   set-default  graphical.target















猜你喜欢

转载自blog.csdn.net/xbw_linux123/article/details/80339223