前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >虚机redhat linux的紧急救援

虚机redhat linux的紧急救援

作者头像
孙杰
发布2019-10-29 12:56:24
3.5K0
发布2019-10-29 12:56:24
举报
文章被收录于专栏:云技术+云运维云技术+云运维

由于虚拟机无法启动,vmware vcenter已经无法监控到虚机vmware tools的心跳。登陆VC通过虚拟机控制台查看发现虚机REDHAT LINUX卡在如下界面:

wKioL1ia1rDx4hKkAAD_3MxI8-E977.jpg-wh_50
wKioL1ia1rDx4hKkAAD_3MxI8-E977.jpg-wh_50

从截图来看:

显示chmod、chgrp、chown和awk没有找到(有可能误删),由于系统启动时候需要执行rc.sysinit脚本,该脚本会执行些权限控制命令,因此必须要用到这些文件,由于文件无法找到,导致系统初始化失败。

经过沟通,了解到客户安装了apache和mysql,并且修改了/etc/profile文件配置了应用的环境变量,导致出现如上问题。

解决问题:

  给这台虚机加载redhat linux的iso,设置虚拟机bios,CD光驱为第一启动顺序,重新启动虚拟机,选择救援模式进行紧急救援。

wKiom1ia12GgEw8rAABSeykuOmI240.jpg
wKiom1ia12GgEw8rAABSeykuOmI240.jpg

由于是丢失文件,因此这里需要开启网络功能,方便从其他主机拷贝相关文件。

wKioL1ia172CpxkEAAAyxFWL7k4524.jpg-wh_50
wKioL1ia172CpxkEAAAyxFWL7k4524.jpg-wh_50

在这里输入原先该虚机的IP和网关

wKioL1ia1-jgIfKfAACzH3dvjEg446.jpg-wh_50
wKioL1ia1-jgIfKfAACzH3dvjEg446.jpg-wh_50

mount系统到sysimage下

wKiom1ia2DyBFPejAAAluhGyfvM419.jpg-wh_50
wKiom1ia2DyBFPejAAAluhGyfvM419.jpg-wh_50

点击OK后,进入修复模式的shell下

wKiom1ia2HOyN24nAAAyIT1RWXs938.jpg-wh_50
wKiom1ia2HOyN24nAAAyIT1RWXs938.jpg-wh_50

然后chroot  /mnt/sysimage

进入/bin后,确实没有发现chmod、chown和awk等这几个命令,我们可以考虑从一台好的redhat linux系统中拷贝这几个文件过来,在命令行下执行

#scp -r root@11.11.165.177:/usr/bin/* /bin/

结果却提示命令没找到,应该是没有客户端软件,导致SCP命令没有被识别。那么设置本地yum源,并安装openssh客户端,

#yum install openssh-clients

再次执行#scp -r root@11.11.165.177:/usr/bin/* /bin/后提示输入密码,输入后开始执行拷贝命令。

拷贝完成后重启系统,顺利初始化并成功进入系统。

  • 总结

Rescue修复要注意系统初始文件和系统命令文件的关系,恢复系统完整性。

补充另一个测试示例:

修改linux系统的文件grub.conf、fstab  我这里就不删除了,只是更改名称让系统找不到就可以了

引导程序(MBR的512字节中前446字节为引导程序,紧跟着后面64字节为分区表,最后面2个字节为结束标记)

   使用以下命令把bootloader( 启 动引导程序MBR中的446字 )覆盖掉

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

然后进入救援模式

使用fsdisk -l 查看一下分区

在当前的目录创建一个目录,用来挂载根

mkdir a

mount /dev/sda2 /a                     挂载根目录到a下

mount /dev/sda1 /a/boot                  挂载boot目录,因为它为单独分区

挂载成功之后就可以看到所有的系统文件,可以进行修复和修改文件了

恢复被我们修改的文件

wps_clip_image-31249
wps_clip_image-31249

接下来是安装MBR中的446字节的引导程序

装grub就是装/boot/grub/stage1,救援模式下输入 #grub 就可以进入grub的命令模式下

1、root(hd0,0)  这里是指的第一块一盘的一个分区,就是要指定/boot所在的分区

2、setup(hd0) 这里是安装grub的意思,当出现successed就是安装成功了

3、quit退到shell模式

4、exit重启

重启后就自动进入了 grub> 的模式,在这里手动引导系统先看一下手动引导系统

root(hd0,0)  指定一下内核文件的位置,还是/boot目录所在的分区

kernel/vmlinuz-2...ro root=/dev/sda2 具体的内核文件并以只读的形式挂载上

initrd/initrd.......      具体的内存启动镜像

boot  加载系统

如下图:

wps_clip_image-4808
wps_clip_image-4808

以上操作完成之后,进入系统,这时候系统的 grub.conf 尚未恢复,需要进入目录恢复此系统文件才算是系统修复完成了。

     注意:根分区和/boot最好是独立分区,而把之外的做成是LVM卷,那么在救援模式下会比较方便。

有时候根为只读,需要mount -o remount rw /把根目录重新挂载可读写的。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-02-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档