系统排错

一、grub2引导错误

mbr的作用是记录/boot目录所在分区位置磁盘0磁道1扇区前446个字节,若不小心进行破坏那么就无法启动

若不小心执行了dd  if=/dev/zero of=/dev/vda bs=446 count=1这个命令,并且重启了系统,那么如何恢复呢

可在虚拟机里执行dd的命令

实例

重启系统

对 mbr 破坏后重启机器会导致无法进行引导进而无法启动机器(如下:

此时需要一个与系统相匹配的镜像文件来恢复

(1)真机执行virt-manager,选择grub2出现错误的虚拟机,并关闭虚拟机;

(2)点击灯泡,选择添加新虚拟硬盘,然后将设备类型修改为  IDE CDROM1,总线类型修改为IDE,并添加一个与系统相匹配的镜像文件,点击'完成‘

(3)点击Boot opations,将IDE CDROM 调到第一个,以便系统启动时第一个识别IIDE CDROM1;

(4)打开虚拟机,选择Troubleshooting------->Rescue a redhat Enterprice linux system

         选择点击‘continue’然后会出现三次提醒

(5)进入真实环境:chroot  /mnt/sysimage

  (6)执行:grub2-install  /dev/vda

(7)修改SELINUX配置文件为disabled状态,使系统启动时能够缩短启动时间 

8)两次exit重启系统

(9)关闭虚拟机

(10)点击灯泡,选择Boot opations将IDE CDROM1调到最后一个,使系统重启时第一个识别

(11)打开虚拟机

 实例       

从真机中执行virt-manager调出虚拟系统管理器

关闭虚拟机

添加新虚拟硬盘

将CDROM1调到boot的第一个,以便系统重启时,读取第一个CDROM硬盘;

选择troubleshooting的模式

系统补救

选择continue,可以挂载你的系统

三次提醒系统执行以下命令:

chroot /mnt/sysimage    使系统进入真实环境

执行以下命令进行恢复系统

chroot   /mnt/sysimage/   系统进入真实环境

grub2-install  /dev/vda     磁盘恢复

vim   /etc/sysconfig/selinux  编辑配置文件,缩短重启时间

编辑SELINUX配置文件的状态为关闭状态

重新启动系统

关闭虚拟机,将Disk1调到第一个,使系统开机时,从Disk1中读取

重新打开系统并打开图形界面,就可启动成功

二、若删除自动引导文件/boot/grub2/grub.cfg文件,那么如何恢复系统呢?

1、/boot/grub2/grub.cfg.此文件属于 Linux 系统开启的自动引导文件,通过此文可以自动完成对系统根目录的挂载,linux 内核的初始化和初始化程序的引导,此文件若是缺失,系统则无法自动开启,需要进行手动引导。

2、/boot/grub2/grub.cfg文件缺失,没有重启:grub2-mkconfig > /boot/grub2/grub.cfg

/boot/grub2/grub.cfg文件缺失,重启后:

 (1)设定root用户读取第一个磁盘的第一个分区 : set  root='hd0,msdos1'  

(2)手动进行内核引导 ,将根目录只读挂在到/dev/vda1:linux16  /boot/vmlinuz-3.10.0-123.el7.x86_64  ro   root=/dev/vda1

  (3)生成自动引导初始化程序 :initrd16  /boot/initramfs-3.10.0-123.el7.x86_64.img

(4)启动机器

(5)打开虚拟机,在虚拟机里进行恢复:grub2-mkconfig > /boot/grub2/grub.cfg


实例(1)删除/boot/grub2/grub.cfg文件,在系统不重启的情况下恢复

删除/boot/grub2/grub.cfg

执行下面命令恢复系统

重新启动

此时可以看到登录页面

实例(2)删除grub.cfg 文件后没有恢复,不小心重新启动

删除/boot/grub2/grub.cfg文件

 

执行以下操作进行手动引导
1.set root=’hd0,msdos1’
2.linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1
3.initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img
4.boot

开机后生成自动引导文件


三、不小心删除initramfs-3.10.0-123.el7.x86_64时,怎么恢复

若是系统的 initramfs-3.10.0-327.el7.x86_64.img 缺失,系统因为无法进行下一步的开机引导而不能启动。

(1)关闭虚拟机,点击灯泡,将Boot opations中的IDE CDROM1调整到第一个

(2)选择挽救模式Troubleshooting--->Rescue a redhat  Enterprice linux system------>contine--->ok---->ok

  (3)  进入真实环境:chroot  /mnt/sysimage

  (4)在/boot目录下建立一个映像文件:mkinitrd  /boot/initramfs-3.10.0-123.el7.x86_64.img  3.10.0-123.el7.x86_64

mkinitrd  /boot/initramfs-$(uname -r).img  $(uname -r)  等同于 mkinitrd  /boot/initramfs-3.10.0-123.el7.x86_64.img  3.10.0-123.el7.x86_64

mkinitrd   指定映像文件名称和路径   指定所依据的内核版本信息

      mkinitrd 可建立映像文件,以供linux开机时载入ramdis;根据内核版本和指定参数生成映像文件

       显示内核版本uname -r

       在bash中,$()与`  `(反引号)都是用来做命令替换的,$()并不是所有的unix系统都支持这种方式,但反引号肯定支持。

报错信息:cat:write error:Broken pipe

pro里面的东西在这个环境下(IDE CDROM1)没有,所以出现报错信息;

(5)两次exit重新启动系统

(6)选择Boot opations将IDE CDROM1调整到最后一个

(7)打开虚拟机

实例1:initramfs-3.10.0-123.el7.x86_64.img文件缺失,没有重启系统

删除initramfs

重新恢复

查看/boot分区下的文件,是否恢复

出现登录界面

实例(2):initramfs-3.10.0-123.el7.x86_64.img文件缺失,重启系统

删除boot分区的initramfs-3.10文件

查看boot分区里的initramfs-3.10是否删除

将CDROM磁盘调整到Boot分区的第一个

进入挽救(troubleshooting)模式

选择拯救linux系统

三次报出执行以下命令:chroot  /mnt/sysimage

执行以下命令恢复系统

(1)进入真实环境:chroot  /mnt/sysimage

(2)在/boot目录下建立一个映像文件:mkinitrd  /boot/initramfs-3.10.0-123.el7.x86_64.img  3.10.0-123.el7.x86_64

mkinitrd 的使用方法:

   mkinitrd   指定映像文件名称和路径   指定所依据的内核版本信息

      mkinitrd 可建立映像文件,以供linux开机时载入ramdisk;

       根据内核版本和指定参数生成映像文件

报错信息:cat:write error:Broken pipe

pro里面的东西在这个环境下(IDE CDROM1)没有,所以出现报错信息;

(3)第一个 exit:退出真实环境

    第二个exit重启系统

关闭虚拟机,然后将IDE CDROM1调到第一个

四、删除vmlinuz-3.10.0-123.el7.x86_64后,如何恢复?

若内核程序 /boot/vmlinuz-3.10.0-123.e17.x86_64 缺失,则系统会因为无法加载内核而无法启动。可以通过外加光盘,通过 Linux 补救程序为系统重新安装符合系统版本的内核程序

模拟缺失

(1)打开虚拟机输入以下命令:rm -fr  /boot/vmlinuz-3.10.0-123.el7.x86_64

(2)重新启动系统:reboot

(3)内核程序启动系统,此时就会出现以下界面


恢复

1)添加新虚拟机的硬盘,选择与系统相匹配镜像文件,并将设备类型修改为IDE CDROM 1,总线类型修改为IDE;

(2)关闭虚拟机,点击灯泡,选择Boot opations将IDE CDROM调整到第一个

(3)进入挽救模式Troubleshooting--->Rescue a redhat Enterprise linux system;---->continue--->ok---->ok

  (4)切换到Packages目录下:cd  /run/install/repo/Packages  

  (5)复制内核文件到真实环境的真实目录下:  cp   kernel-3.10.0-123.el7.x86_64.rpm  /mnt/sysimage/mnt

(6)切换到真实环境:chroot  /mnt/sysimage

(7)rpm2cpio 命令用于将rpm软件包转换为cpio格式的文件:rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id

(8)复制vmlinuz-3.10安装到boot分区:cp  boot/vmlinuz-3.10.0-123.el7.x86_64  /boot/

第一个’boot/’是内核安装包内的东西,第二个/boot/是真实主机的根目录,将内核安装包内的对应内核程序移动到/boot/下,使机器可以正常运行

(9)两次exit进行重新启动

(10)关闭虚拟机,点击灯泡,选择Boot opations将IDE CDROM调整到最后一个

(11)打开虚拟机

实例:从真机当中启动虚拟机管理器 :virt-manager

关闭虚拟机

点击灯泡,添加新虚拟机硬盘

(1)添加与系统匹配镜像文件

(2)修改设备类型为:CDROM设备

(3)修改总线类型为:IDE

(4)修改缓存模式为:none

(5)修改存储格式为:raw

调整Boot磁盘引导设备:将IDE CDROM1调整到Boot分区的第一个,以便系统重启时读取磁盘CDROM1

点击打开虚拟机的图标和显示虚拟机的图标,此时选择进入挽救(Troubleshooting)模式

在挽救模式下选择拯救linux系统


三次提醒执行以下命令(chroot  /mnt/sysimage)进入真实环境 

进入以下界面执行以下命令来恢复系统

(1)切换到Packages目录下:cd  /run/install/repo/Packages  

(2)复制内核安装包到/mnt/sysimage/mnt/ 下

    cp   kernel-3.10.0-123.el7.x86_64.rpm  /mnt/sysimage/mnt

   /mnt/sysimage (真实环境)/mnt(真实目录)

(3)切换到真实环境:chroot  /mnt/sysimage

(4)rpm2cpio 命令用于将rpm软件包转换为cpio格式的文件

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

(5)复制vmlinuz-3.10安装到boot分区:cp  boot/vmlinuz-3.10.0-123.el7.x86_64  /boot/


(6)第一个exit: 退出真实环境

        第二的exit:重新启动系统

关闭虚拟机,点击灯泡,将IDE  CDROM1调整到boot分区的第一个,以便系统重启时,读取Disk 1磁盘

点击打开虚拟机图标和显示虚拟机的图标,打开登录界面


五、bash 缺失的错误,如何恢复

1)添加新虚拟机的硬盘,选择与系统相匹配镜像文件,并将设备类型修改为IDE CDROM 1,总线类型修改为IDE;

(2)关闭虚拟机,点击灯泡,选择Boot opations将IDE CDROM调整到第一个

(3)进入挽救模式Troubleshooting--->Rescue a redhat Enterprise linux system;---->continue--->ok---->ok

4)进去真实环境:chroot  /mnt/sysimage

(5)复制bash到真实环境的/bin目录下:cp /bin/bash /mnt/sysimage/bin

(6)重新启动

(10)关闭虚拟机,点击灯泡,选择Boot opations将IDE CDROM调整到最后一个

(11)打开虚拟机

实例

将IDE CDROM1调整到Boot分区,以便系统重启时从IDE CDROM1开始读取

进去挽救(Troubleshooting)模式

进去挽救linux系统模式下

三次提醒进入系统后执行命令:chroot  /mnt/sysimage

进入以下界面执行以下界面

进去真实环境:chroot  /mnt/sysimage

复制bash到真实环境的/bin目录下:cp /bin/bash /mnt/sysimage/bin


关闭虚拟机,将Disk1调整到设备引导程序的第一个,以便系统重启时从Disk1开始读取


六、修改密码

将linux16 这一行后面的信息删掉直至到ro,并将ro(只读模式) 修改为rw(可读可写模式),并添加rd.break

然后按ctrl+X开始执行

切换到跟目录下:chroot sysroot/

修改密码:passwd (修改的是root的密码)

 第一个exit:退出跟目录

 第二个exit:重新启动




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值