Linux 系統恢復

Je_suis_Lulu發表於2017-05-01

 系統恢復

一、系統引導

系統的引導過程,由biso引導,在開機時按F12,即進入啟動列表,可以進入biso設定用硬體的工作方式。

二、grub2磁碟引導階段

1.dd if=/dev/zero of=/dev/vda bs=446count=1  #擷取0磁軌1扇區446位元組

 

2.reboot  #硬碟分割槽不能正常啟動,因為分割槽表被擷取

3.新增光碟機啟動(系統在啟動時可以進入排錯、挽救介面),過程如下:

  [root@foundation90~]# virt-manager

新增光碟機啟動,並使光碟機啟動先起作用

注意:光碟機的選擇應與核心版本號相同,本實驗所用主機和光碟機版本均為7.2

4.再啟動,先選擇排錯、挽救

(1)第三行Troubleshooting  #進入排錯

(2)第二行進入挽救介面

(3)選擇1)Continue  #繼續

(4)[enter]

(5)系統提示原系統的根在 /mnt/sysimage,執行chroot /mnt/sysimage進入根目錄

(6)系統真實的根目錄是/dev/vda,可以用df命令檢視。

  重新安裝該目錄,完成啟動引導。命令如下:

 grub2-install /dev/vda

(7)exit  #退出到啟動介面

(8)使硬碟啟動先起作用,再重啟系統

三、grub2檔案引導階段

  開機檔案儲存在/boot/grub2/grub.cfg中

 

1.刪除開機檔案,系統將不能正常啟動,命令如下:

  rm-fr /boot/grub2/grub.cfg

2.手動引導,輸入命令如下

(1)setroot='dh0,msdos1'

(2)linux16/boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1  #手動引導,系統啟動後根分割槽在/dev/vda1

(3)initrd16/boot/initramfs-3.10.0-123.el7.x86_64.img 

(4)boot  #直接啟動系統

3.手動引導啟動後,啟動字元命令未生成檔案,則在下次reboot時仍需手動引導,為避免這種麻煩,現生成開機檔案,命令如下:

 grub2-mkconfig > /boot/grub2/grub.cfg   #開機檔案生成

四、核心檔案的恢復

1.核心檔案丟失後,必須進入挽救介面,因此需使光碟機啟動先起作用,光碟機的新增見(一)中的操作,但應注意,核心檔案恢復必須使用與主機核心版本對應的光碟機,uname-r命令可以檢視主機的核心版本號。

##3.10.0-123.el7.x86_64   表示核心版本為7.0

##3.10.0-327.el7.x86_64   表示核心版本為7.2

2.核心檔案:/boot/vmliuz-3.10.0-123.el7.x86_64

(1)若核心檔案丟失,系統將無法正常啟動

(2)選擇光碟機裝置再重啟,進入急救模式。應注意:核心檔案恢復一定要是用與核心版本號相同的光碟機,已知本系統核心版本是7.0,所以所使用的光碟機裝置也是7.0版本。

(3)重啟系統進入急救模式,對系統核心檔案進行恢復。

[enter]

[enter]

[enter]

(3)根據顯示內容中提示資訊可知:系統家目錄在/mnt/sysimage

 chroot /mnt/sysimage  #進入系統家目錄

 mount /dev/cdrom /mnt  #將光碟機裝置掛載至/mnt後,才可以使用光碟機裝置

  cp/mnt/Package/kernel-3.10.0-123.el7.x86_64 /opt #複製核心檔案至/opt

 rpm2cpio /opt/kernel-3.10.0-123.el7.x86_64.rpm | cpio -id  #拆分軟體包,將會得到/opt/boot/目錄

  ls/opt/boot  #檢視新生成的目錄內容

  cp/opt/boot/vmlinuz-3.10.0-123.el7.x86_64 /boot/ #複製核心檔案至/boot/


(4)注意:一定要置selinux為disabled狀態

  vim/etc/sysconfig/selinux

 SELINUX=disabled

否則重啟系統會出現下面情況,系統仍無法正常啟動:

(5)exit

(6)使用硬碟裝置重啟系統

3.系統核心檔案:/boot/inittramfs-3.10.0-123.el7.x86_64.img

(1)若該核心檔案丟失,系統將同樣不能正常啟動

(2)選擇光碟機裝置啟動系統進入急救模式進行系統恢復

  步驟見上文內容

(3)由上文操作過程中的命令可知系統核心版本號較長,為了避免輸入錯誤,可以使用以下命令來完成核心檔案的恢復:

mkinitrd /boot/initramfs-$(uname -r).img$(uname -r)   #恢復核心檔案

其中:$(uname-r)  #$(...) 表示先執行庫括弧中內容,即先執行unmae -r這條命令

     uname -r  #檢視系統版本號

(4)exit ,再使用硬碟裝置重啟系統。

五、systemd初始化

1.自動開啟服務指令碼:/etc/systemd/system/multi-user.target.wants

如:檢視vsftpd服務在開機時是否可以自動啟動

命令執行結果無內容顯示,表示開機時該服務不會自動啟動。

(2) systemctlenable vsftpd  #使vsftpd在開機時自動啟動

(3) 刪除vsftpd自動啟動的指令碼後,vsftpd執行狀態仍是enable,但在開機時並未啟動。

所以,伺服器執行狀態enable/disabled僅僅是表示伺服器有/無開機時自動啟動指令碼。

2.圖形介面引導

(1)開機時有圖形服務啟動指令碼

[root@localhost ~]# cd /etc/systemd/system/

[root@localhost system]# ls -ldefault.target

lrwxrwxrwx. 1 root root 40 Jul 10  2014 default.target ->/usr/lib/systemd/system/graphical.target

#開機時自動啟動圖形介面

(2)刪除圖形顯示服務,並在開機時啟動“自動關閉圖形介面”功能。

 

/etc/systemd/system/default.target  #預設啟動模式

3.reboot

4.出現開機介面後,按e,進入編輯

(1)修改後的內容顯示如下圖:

(2)ctrl+x  

(3)輸入命令:

 chroot /sysroot  #進入根目錄

  ls /etc/systemd/system/default.target -l   #檢視預設啟動模式


#內容顯示預設啟動目錄連結到自動關機目錄中,因此係統不能正常啟動

(4)刪除預設啟動目錄,並將圖形自動啟動目錄連結到預設啟動目錄,再exit退出將正常啟動。

六、登入密碼修改

1.忘記使用者登入密碼時,重啟主機並按e進入編輯模式

2.修改開機檔案(見“五”中4步驟),ctrl+x

3.輸入命令如下:

  chroot /sysroot   #進入根目錄

  echo 密碼 | passwd --stdin 使用者名稱  #更改密碼

  touch /.autorelable  #使新密碼生效

4.exit #退出編輯模式啟動主機,使用新密碼登入

 

 

 

 

 

 

 

 

 

 

 

 

相關文章