Linux學習第十一單元-系統恢復單元

第十一單元-系統恢復單元


**系統引導過程**
通電--bios初始化--grub2磁盤引導階段--grub2文件引導階段--指定bot所在分區--啓動內核,只讀掛載設備--啓動init程序進入初始化階段--期待哦各systemd初始化進程--讀,取/etc/systemd中的文件--啓動程序--啓動登陸環境

一、bios 初始化

• 基本輸入 / 輸出系統 ( BIOS ) 是內置於標準 x86/x86-64
硬件的固件接口 , 將硬件置於已知狀態並準備好系統以加載
操作系統
• 出現什麼情況 ?
– 檢測並初始化硬件
– 確定從中引導的設備
• 可能出現了什麼錯誤 ?
– 錯誤或異常 BIOS 設置
– 錯誤引導設備順序
• 可以如何中斷或影響 ?
– 按特定於供應商的鍵
– 使用特定於供應商的配置實用程序
– 通常 , <F12> 可以執行一次引導順序覆蓋

二、grub 磁盤引導階段

  MBR
mbr 的作用是爲了記錄 /boot 目錄所在分區位置磁盤的 0 磁道 1 扇區的前 446 字節
損壞命令:dd if=/dev/zero of=/dev/xda bs=446 count=1

示圖:損壞446字節


示圖:開機錯誤界面


糾正維護:
將虛擬機強制關閉,設置被破壞的虛擬機採用cdrom的方式進行修復
1 add new virtual hardware
選擇CDROM device方式載入,在指定位置選擇備份安裝包

示圖:


2 在boot options中將IDE CDROM1設置爲優先加載顯示,調爲第一個

示圖:


3 打開虛擬機,進入選擇界面,選擇第三個troubleshooting

示圖:


4 進而選擇第二項,修復redhat的linux系統

示圖:


5 選擇1繼續執行,回車即可看到命令行

示圖:


6 可用df查看當前/dev/vda掛載情況,

7 chroot /mnt/sysimage  ##以root身份

示圖:



8 再次用df查看可發現被掛載位置爲/的掛載又加了/dev/vda的某個分區

示圖:


9 grub2-install /dev/vda  ##進行安裝grub2磁盤引導,安裝完畢後輸入兩次exit繼續開機

示圖:


10 強制虛擬機關機,在虛擬機設置中將VirtlO Disk1再次設置爲優先加載顯示,進行開機

示圖:

示圖:正常的登陸界面




三、grub 文件引導階段

 /boot/grub2/grub.cfg
引導順序:
 指定 /boot 分區位置
 加載內核
 啓動系統初始化進程
示圖:文件內容

1 損壞文件:
rm -rf /boot/grub2/grub.cfg

示圖:開機後問題界面


需要手動輸入grub2文件引導的內容:
set root='hd0,msdos1'
linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1
initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img
輸入boot繼續開機
示圖:手動輸入引導



2 修護方法:
grub2-mkconfig ##輸出的就是/boot/grub2/grub.cfg的文件內容
grub2-mkconfig > /boot/grub2/grub.cfg  ##將輸出內容全部導入指定的grub2文件引導中,再次開機就不需要手動引導

示圖:


3.執行效果
開機不需要手動引導,正常自動開機


四、內核引導階段


檢測硬件設備
設備驅動初始化
將 / 只讀掛在
載入初始進程 systemd  ##grub2文件引導的執行過程
內核文件丟失請重新安裝內核

1 丟失文件--initramfs-3.10.0-123.el7.x86_64.img
損壞文件:
rm -rf initramfs-3.10.0-123.el7.x86_64.img
示圖:開機提示錯誤界面



修復方式:
採用cdrom爲優先加載顯示,選擇指定選項進入到修復界面
chroot /mnt/sysimage  ##使用超級用戶
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)  ##uname -r 顯示的是系統版本3.10.0-123.el7.x86_64

示圖:



兩次exit進行退出修復,繼續開機
強制關閉,恢復開機顯示,進行開機,開機會慢一些,因爲重新掃描selinux,可以在添加了丟失文件後將/etcsysconfig/selinux文件中enforcing改爲disabled,避免開機速度慢

2.丟失文件--vmlinuz-3.10.0-123.el7.x86_64

示圖:開機提示錯誤界面


設置進入修復界面
chroot /mnt/sysimage
mount /dev/cdrom /mnt  ##將cdrom掛載到/mnt
cp /mnt/Packages/kernel-3.10.0-123.el7.x86_64.rpm  /opt/  ##將/mnt中的內核文件複製到任意目錄中
rpm2cpio kernel-3.10.0-327.el7.x86_64.rpm  | cpio -id  ##此命令執行完畢後會發現在/opt中有boot目錄,進入boot目錄就會看到需要的vmlinuz-3.10.0-327.el7.x86_64文件
cp boot/vmlinuz-3.10.0-123.el7.x86_64 /boot ##將新的文件複製到虛擬機中/boot下
兩次exit退出當前界面,繼續開機

示圖:



將修復模式默認界面恢復到登陸界面,進行開機開機同恢復linux16文件速度相同

五、systemd 初始化


開啓 selinux 和 systemd-tools
加載內核參數
加載系統時鐘,鍵盤,主機名稱
讀寫掛載 / 文件系統
激活 raid , lvm 設備
激活系統配額
啓動 multi-user.target.wants 中的所有服務腳本
啓用虛擬控臺
啓動圖形



六、啓動級別


runlever0.target -> poweroff.target
runlever1.target -> rescue.target
runlever2.target -> multi-user.target
runlever3.target -> multi-user.target
runlever4.target -> multi-user.target
runlever5.target -> grapical.target
runlever6.target -> reboot.target
設定啓動級別
• systemctl set-default + 啓動級別
• /etc/systemd/system/default.target

損壞方式:
可以將默認的圖形界面改爲關機界面
rm -rf /etc/systemd/system/default.target  
ln -s /usr/lib/systemd/system/poweroff.target /etc/systemd/system/default.target  ##將關機的界面設爲默認界面

示圖:損壞過程


示圖:開機提示問題界面

修復方式:
重新開機,在下示圖的界面處按鍵e進入界面

示圖:



修改顯示的文件內容
示圖:未修改



示圖:修改後內容添加內容爲rw rd.break,ctrl+x保存退出編輯模式



進入命令行
chroot /sysroot ##使用超級用戶
rm -rf /etc/systemd/system/default.target  ##刪除默認的關機界面顯示的鏈接
ln -s /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target  ##將圖形界面的界面設爲默認界面

示圖:



exit退出,輸入reboot進行開機


七、其他問題及解決方案


1.忘記密碼


在指定界面按鍵e進入修改文件爲指定的格式
chroot /sysroot ##使用超級用戶
passwd  ##修改密碼

touch /.autorelabel

 

exit退出,reboot進行開機
發佈了68 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章