centos7系統下如何進入單使用者模式和進入挽救模式
阿新 • • 發佈:2019-01-24
系統排錯 troubleshooting
winPE --光碟或u盤啟動盤 產生一個PE系統(類似記憶體上跑的臨時系統)
系統排錯
rescue 模式 (挽救模式) 類似windows winPE模式
===============================================================================
排錯的一般思路:建議先可以嘗試使用單使用者排錯,如果不行(有些錯誤甚至會造成單使用者模式都進不了),再使用rescue模式(這個模式一定可以進,因為是使用與原系統無關的臨時系統)
問題:centos7怎麼進入單使用者模式
答案:在grub2選單,按e編輯;找到linux16開頭的那一行,在最後加上init=/bin/bash;
這樣做是隻讀模式,如果要改成讀寫模式還需要把linux16開頭那一行中間的ro改成rw;
如果你用的是kvm做了console連線授權,還要把授權的console=ttyS0去掉,再加上init=/bin/bash;
最後按ctrl+x
問題:怎麼進入rescue模式
答案:因為我們要產生一個臨時系統,所以一定需要系統iso映象(需要把此iso做成光碟引導或u盤引導或網路引導);或者更簡單總結一句話:就是能進入到安裝系統第一步介面,選擇Rescue installed system(centos7就是直接選擇troubleshooting再選擇rescue a centos linux system)
問題:進行rescue模式後如何排錯?
答案:一句話:進行這個臨時系統後,想辦法把原來錯誤系統掛載到臨時系統,按需求進行修改排錯
具體掛載實現方法主要有下面兩種
方法一:
如果正常情況下,會把你要修復的系統的整個根目錄(包含下級所有子目錄)mount到臨時系統的/mnt/sysimage目錄下
chroot /mnt/sysimage 再去修改(或者不chroot)
這是不chroot,在臨時系統上修改錯誤系統的/etc/fstab
vi /mnt/sysimage/etc/fstab --這裡的vi命令是臨時系統的
這是chroot,在錯誤系統裡修改它的/etc/fstab
chroot /mnt/sysimage
vi /etc/fstab --這裡的vi是原錯誤系統的
exit
方法二:
有些情況下,沒有mount到/mnt/sysimage
fdisk -l 檢視所有分割槽
然後自己手動建立目錄用來掛載排錯
例mkdir /aaa --一定要手動新建的目錄,否則不能掛載
mount /dev/sda1 /aaa
在/aaa目錄下排錯就可以了
======================================================================================
具體排錯例項(mbr丟失如何排錯):
mbr(master boot loader主引導記錄,在硬碟最前面的512位元組)446(啟動裝置)+64(分割槽資訊)+2(結束位)
mbr丟失,現象:啟動時候黑屏,左上角一個游標在閃(或者直接就進入到了第二或第三的啟動順序,由光碟機或網路進入了系統安裝介面)
最好使用一個虛擬機器來做此實驗
第一步:
dd if=/dev/vda of=/mbr.bak bs=1 count=512 --備份mbr
第二步:
把備份scp拷到別的機器或者移動儲存裝置(我這裡使用scp拷貝到我的宿主機,過程省略)
第三步:
模擬幹掉mbr
dd if=/dev/zero of=/dev/vda bs=1 count=512 --幹掉mbr
幹掉mbr後,reboot重啟,然後就不能正常啟動系統了,需要排錯
第四步:
按前面總結的方法:先嚐試單使用者模式,再使用rescue模式.但現在mbr丟失的現象是grub都看不到,所以也不可能進入單使用者模式了,只能使用rescue模式
進入方法(見筆記前面總結)
第五步:
選擇continue,但這一次它不能把原系統掛載到臨時系統的/mnt/sysimage,並且fdisk -l檢視不到分割槽,;也就是說找不到以前的mbr備份,無法恢復
配置ip,與宿主機通迅,用scp將先前的mbr.bak這個備份檔案拷到臨時系統
然後dd if=/mbr.bak of=/dev/vda進行恢復
第六步:
重啟後,選擇硬碟啟動,一切就正常了
============================================================================================================