Centos恢复模式修复系统

背景

最近一个客户那里的服务器远程链接不上了,系统是Centos6.7_X64,个人一位同事到现场说是iptables防火墙开启了,关闭以后重启防火墙仍是会自动打开。这位同事不太懂linux,可能并无真正关闭;最后他用yum remove iptables卸载了防火墙,结果是进不了系统。警告:此命令勿用,尤为是在Centos6上面,iptables依赖太多包。后来我跑到客户那里把问题搞定了,本文主要说明解决思路和过程。linux

通过此事,我深入理解了蝴蝶效应。ios

 

思路

命令执行以后,单用户模式进不了,最后只能选择恢复模式。bash

1. 数据先备份,而后再恢复系统。服务器

2. 最坏的打算就是重装系统。网络

3. 从新安装卸载的包,看可否进入系统? 如何找出卸载的包?app

4. 用什么方式安装包。yum 或者 rpm包ssh

 

准备工做

Centos6.7_x64镜像、刻录系统光盘、启动U盘、移动硬盘、移动光驱。ide

在虚拟机中安装系统,并执行上面的卸载命令,找出依赖的包(大约40个)。post

而后虚拟机中进入恢复模式,重装安装卸载的包,重启进入系统。spa

 

具体过程

一、把安装光盘放入光驱,而后从新启动计算机,按服务器启动菜单快捷键,屏幕会有提示;

或者在bios中把系统设置为光驱为第一启动。

 

二、 选择光盘菜单中的Rescue installed system。

clip_image002

 

三、选择语言English(默认便可)

clip_image004

 

四、选择键盘类型

clip_image006

 

五、安装网络(若是能够通外网,建议安装,能够直接用yum命令; 若是没有外网,就选择NO。)我选择了Yes。

clip_image008

 

六、 设置网卡(个人eth0是外网口,因此选择eth0)

clip_image010

 

七、配置IP信息(根据本身的信息填写,若是有DHCP服务,能够选择自动获取IP)

clip_image012

 

八、选择Continue,以读写模式挂载系统,能够对系统进行修改。

clip_image014

 

九、回车进入Rescue模式。

clip_image016

 

十、启动Shell

clip_image017

此时进入的bash#,注意:当前的根是恢复模式的根。要想进入操做系统的根请执行

chroot /mnt/sysimage

clip_image018

此时会进入sh# ,要重启系统仍是要执行exit退回bash。

 

十一、备份数据,挂载移动硬盘或者U盘。

fat32是能够直接挂载的。

NTFS 须要安装一个ntfs-3g包,下面是其官网,请自行下载

https://www.tuxera.com/community/open-source-ntfs-3g/

以NTFS举例:

tar –zxvf ntfs-3g_ntfsprogs-2017.3.23.tgz

cd ntfs-3g_ntfsprogs-2017.3.23 && ./configure && make && make install

mkdir –p /mnt/backup

mount -t ntfs-3g /dev/sdb1 /mnt/backup

根据本身须要备份数据。

 

12. 安装依赖包

yum install libtool device-mapper-multipath-* \

lvm2-* \

system-config-firewall-base-* \

lvm2-libs-* \

device-mapper-event-* \

mdadm-* \

openssh-server-* \

cronie-anacron-* \

crontabs-* \

cronie-* \

b43-openfwwf-* \

dracut-kernel-004-* \

dracut-004-* \

plymouth-* \

2:postfix-* \

cyrus-sasl-* \

libdrm-* \

kbd-* \

rsyslog-* \

device-mapper-event-libs-* \

iptables-ipv6-* \

device-mapper-multipath-libs-* \

kpartx-* \

cryptsetup-luks-* \

cryptsetup-luks-libs-* \

device-mapper-* \

device-mapper-libs-* \

fuse-* \

openssh-clients-* \

openssh-* \

iscsi-initiator-utils-* \

12:dhclient-* \

iproute-* \

iptables-* \

policycoreutils-* \

util-linux-ng-* \

iputils-20071127-* \

udev-147-* \

initscripts-*

 

最后执行exit

重启系统reboot

 

进入系统关闭防火墙

chkconfig iptables off

chkconfig ip6tables off

搞定上图

clip_image001

 

附录

小妙招:Centos在出现启动界面时,按下“ESC”,会显示出详细的启动信息,有时候会卡在某个服务进不了系统,此方法能够看出具体是那个服务,而后再排查该服务有什么问题。

相关文章
相关标签/搜索