最近一个客户那里的服务器远程链接不上了,系统是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。
三、选择语言English(默认便可)
四、选择键盘类型
五、安装网络(若是能够通外网,建议安装,能够直接用yum命令; 若是没有外网,就选择NO。)我选择了Yes。
六、 设置网卡(个人eth0是外网口,因此选择eth0)
七、配置IP信息(根据本身的信息填写,若是有DHCP服务,能够选择自动获取IP)
八、选择Continue,以读写模式挂载系统,能够对系统进行修改。
九、回车进入Rescue模式。
十、启动Shell
此时进入的bash#,注意:当前的根是恢复模式的根。要想进入操做系统的根请执行
chroot /mnt/sysimage
此时会进入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
搞定上图
小妙招:Centos在出现启动界面时,按下“ESC”,会显示出详细的启动信息,有时候会卡在某个服务进不了系统,此方法能够看出具体是那个服务,而后再排查该服务有什么问题。