1. 程式人生 > >centos7系統下如何進入單使用者模式和進入挽救模式

centos7系統下如何進入單使用者模式和進入挽救模式

系統排錯 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進行恢復 第六步: 重啟後,選擇硬碟啟動,一切就正常了 ============================================================================================================