第十一單元-系統恢復單元
**系統引導過程**
通電--bios初始化--grub2磁盤引導階段--grub2文件引導階段--指定bot所在分區--啓動內核,只讀掛載設備--啓動init程序進入初始化階段--期待哦各systemd初始化進程--讀,取/etc/systemd中的文件--啓動程序--啓動登陸環境
一、bios 初始化
• 基本輸入 / 輸出系統 ( BIOS ) 是內置於標準 x86/x86-64硬件的固件接口 , 將硬件置於已知狀態並準備好系統以加載
操作系統
• 出現什麼情況 ?
– 檢測並初始化硬件
– 確定從中引導的設備
• 可能出現了什麼錯誤 ?
– 錯誤或異常 BIOS 設置
– 錯誤引導設備順序
• 可以如何中斷或影響 ?
– 按特定於供應商的鍵
– 使用特定於供應商的配置實用程序
– 通常 , <F12> 可以執行一次引導順序覆蓋
二、grub 磁盤引導階段
MBRmbr 的作用是爲了記錄 /boot 目錄所在分區位置磁盤的 0 磁道 1 扇區的前 446 字節
損壞命令:dd if=/dev/zero of=/dev/xda bs=446 count=1
示圖:損壞446字節
示圖:開機錯誤界面
將虛擬機強制關閉,設置被破壞的虛擬機採用cdrom的方式進行修復
1 add new virtual hardware
選擇CDROM device方式載入,在指定位置選擇備份安裝包
示圖:
示圖:
示圖:
示圖:
示圖:
6 可用df查看當前/dev/vda掛載情況,
7 chroot /mnt/sysimage ##以root身份
示圖:
8 再次用df查看可發現被掛載位置爲/的掛載又加了/dev/vda的某個分區
示圖:
9 grub2-install /dev/vda ##進行安裝grub2磁盤引導,安裝完畢後輸入兩次exit繼續開機
示圖:
示圖:
示圖:正常的登陸界面
三、grub 文件引導階段
/boot/grub2/grub.cfg引導順序:
指定 /boot 分區位置
加載內核
啓動系統初始化進程
示圖:文件內容
1 損壞文件:
rm -rf /boot/grub2/grub.cfg
示圖:開機後問題界面
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繼續開機
示圖:手動輸入引導
grub2-mkconfig ##輸出的就是/boot/grub2/grub.cfg的文件內容
grub2-mkconfig > /boot/grub2/grub.cfg ##將輸出內容全部導入指定的grub2文件引導中,再次開機就不需要手動引導
示圖:
開機不需要手動引導,正常自動開機
四、內核引導階段
設備驅動初始化
將 / 只讀掛在
載入初始進程 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 初始化
加載內核參數
加載系統時鐘,鍵盤,主機名稱
讀寫掛載 / 文件系統
激活 raid , lvm 設備
激活系統配額
啓動 multi-user.target.wants 中的所有服務腳本
啓用虛擬控臺
啓動圖形
六、啓動級別
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進入界面
示圖:
修改顯示的文件內容
示圖:未修改
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.忘記密碼
chroot /sysroot ##使用超級用戶
passwd ##修改密碼
touch /.autorelabel