Centos恢復模式修復系統

背景

最近一個客戶那裏的服務器遠程連接不上了,系統是Centos6.7_X64,我的一位同事到現場說是iptables防火牆開啓了,關閉之後重啓防火牆還是會自動打開。這位同事不太懂linux,可能並沒有真正關閉;最後他用yum remove iptables卸載了防火牆,結果是進不了系統。警告:此命令勿用,尤其是在Centos6上面,iptables依賴太多包。後來我跑到客戶那裏把問題搞定了,本文主要說明解決思路和過程。

經過此事,我深刻理解了蝴蝶效應。

 

思路

命令執行之後,單用戶模式進不了,最後只能選擇恢復模式。

1. 數據先備份,然後再恢復系統。

2. 最壞的打算就是重裝系統。

3. 重新安裝卸載的包,看能否進入系統? 如何找出卸載的包?

4. 用什麼方式安裝包。yum 或者 rpm包

 

準備工作

Centos6.7_x64鏡像、刻錄系統光盤、啓動U盤、移動硬盤、移動光驅。

在虛擬機中安裝系統,並執行上面的卸載命令,找出依賴的包(大約40個)。

然後虛擬機中進入恢復模式,重裝安裝卸載的包,重啓進入系統。

 

具體過程

1、把安裝光盤放入光驅,然後重新啓動計算機,按服務器啓動菜單快捷鍵,屏幕會有提示;

或者在bios中把系統設置爲光驅爲第一啓動。

 

2、 選擇光盤菜單中的Rescue installed system。

clip_image002

 

3、選擇語言English(默認即可)

clip_image004

 

4、選擇鍵盤類型

clip_image006

 

5、安裝網絡(如果可以通外網,建議安裝,可以直接用yum命令; 如果沒有外網,就選擇NO。)我選擇了Yes。

clip_image008

 

6、 設置網卡(我的eth0是外網口,所以選擇eth0)

clip_image010

 

7、配置IP信息(根據自己的信息填寫,如果有DHCP服務,可以選擇自動獲取IP)

clip_image012

 

8、選擇Continue,以讀寫模式掛載系統,可以對系統進行修改。

clip_image014

 

9、回車進入Rescue模式。

clip_image016

 

10、啓動Shell

clip_image017

此時進入的bash#,注意:當前的根是恢復模式的根。要想進入操作系統的根請執行

chroot /mnt/sysimage

clip_image018

此時會進入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

搞定上圖

clip_image001

 

附錄

小妙招:Centos在出現啓動界面時,按下“ESC”,會顯示出詳細的啓動信息,有時候會卡在某個服務進不了系統,此方法可以看出具體是那個服務,然後再排查該服務有什麼問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章