1. 程式人生 > >Centos恢復模式修復系統

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。

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”,會顯示出詳細的啟動資訊,有時候會卡在某個服務進不了系統,此方法可以看出具體是那個服務,然後再排查該服務有什麼問題。