Centos恢復模式修復系統
背景
最近一個客戶那裡的伺服器遠端連線不上了,系統是Centos6.7_X64,我的一位同事到現場說是iptables防火牆開啟了,關閉之後重啟防火牆還是會自動開啟。這位同事不太懂linux,可能並沒有真正關閉;最後他用yum remove iptables解除安裝了防火牆,結果是進不了系統。警告:此命令勿用,尤其是在Centos6上面,iptalbes依賴太多包。後來我跑到客戶那裡把問題搞定了,本文主要說明解決思路和過程。
經過此事,我深刻理解了蝴蝶效應。
思路
命令執行之後,單使用者模式進不了,最後只能選擇恢復模式。
1. 資料先備份,然後再恢復系統。
2. 最壞的打算就是重灌系統。
3. 重新安裝解除安裝的包,看能否進入系統? 如何找出解除安裝的包?
4. 用什麼方式安裝包。yum 或者 rpm包
準備工作
Centos6.7_x64映象、燒錄系統光碟、啟動U盤、行動硬碟、移動光碟機。
在虛擬機器中安裝系統,並執行上面的解除安裝命令,找出依賴的包(大約40個)。
然後虛擬機器中進入恢復模式,重灌安裝解除安裝的包,重啟進入系統。
具體過程
1、把安裝光碟放入光碟機,然後重新啟動計算機,按伺服器啟動選單快捷鍵,螢幕會有提示;
或者在bios中把系統設定為光碟機為第一啟動。
2、 選擇光碟選單中的Rescue installed system。
3、選擇語言English(預設即可)
4、選擇鍵盤型別
5、安裝網路(如果可以通外網,建議安裝,可以直接用yum命令; 如果沒有外網,就選擇NO。)我選擇了Yes。
6、 設定網絡卡(我的eth0是外網口,所以選擇eth0)
7、配置IP資訊(根據自己的資訊填寫,如果有DHCP服務,可以選擇自動獲取IP)
8、選擇Continue,以讀寫模式掛載系統,可以對系統進行修改。
9、回車進入Rescue模式。
10、啟動Shell
此時進入的bash#,注意:當前的根是恢復模式的根。要想進入作業系統的根請執行
chroot /mnt/sysimage
此時會進入sh# ,要重啟系統還是要執行exit退回bash。
11、備份資料,掛載行動硬碟或者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”,會顯示出詳細的啟動資訊,有時候會卡在某個服務進不了系統,此方法可以看出具體是那個服務,然後再排查該服務有什麼問題。