1.系統引導過程概述
2. 系統異常及恢復技術
1. bios 初始化
• 基本輸入 / 輸出系統 ( BIOS ) 是內置於標准 x86/x86-64
硬件的固件接口 , 將硬件置於已知狀態並准備好系統以加載
操作系統
• 出現什么情況 ?
– 檢測並初始化硬件
– 確定從中引導的設備
• 可能出現了什么錯誤 ?
– 錯誤或異常 BIOS 設置
– 錯誤引導設備順序
• 可以如何中斷或影響 ?
– 按特定於供應商的鍵
– 使用特定於供應商的配置實用程序
– 通常 , 可以執行一次引導順序覆蓋
2、grub系統引導
grub引導分為兩個階段
階段1: mbr(主引導記錄)主引導記錄在硬盤上的0磁道,一扇區,446個字節
階段2:grub文件引導階段
引導順序:
指定 /boot 分區位置
加載內核
啟動系統初始化進程
引導文件內容:
(1)mbr上446字節丟失
模擬問題:
dd if=/dev/zero of=/dev/vda bs=446 count=1 ##清空mbr
開機提示錯誤界面
問題解決:將虛擬機強制關閉,設置被破壞的虛擬機采用cdrom的方式進行修復
進入挽救模式
chroot /mnt/sysimage ## 切換到真實/環境,
grub2-install /dev/vda ##安裝硬盤
具體過程如下:
進入挽救模式
1)關閉虛擬機(force off)
2)加入鏡像光盤,從光驅啟動
3)在boot options中將IDE CDROM1設置為優先加載顯示
4)選擇 ‘ Troubleshooting ‘
5)選擇 ‘ Rescue a Red Hat Enterprise Linux system ‘
6)切換到真實/環境,進行安裝grub2磁盤引導
7)內核 ‘ disabled ’狀態
8)強制虛擬機關機,在虛擬機設置中將VirtlO Disk1再次設置為優先加載顯示
9)重新開啟虛擬機
(2)引導文件丟失
模擬問題:
rm -fr /boot/grub2/grub.cfg
問題解決
<1>當系統沒有重新啟動
grub2-mkconfig > /boot/grub2/grub.cfg
<2>當系統被重新啟動
grub > set root='hd0,msdos1' ##此位置是不固定的,位置指定/boot所在分區
grub > linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1 ##根分區的設備名
grub > initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img
grub > boot
以上操作可以使系統正常啟動,但是是臨時的,所以進入系統后還是需要執行:
grub2-mkconfig > /boot/grub2/grub.cfg
原因:
grub2-mkconfig ##輸出的就是/boot/grub2/grub.cfg的文件內容
grub2-mkconfig > /boot/grub2/grub.cfg ##將輸出內容全部導入指定的grub2文件引導中,再次開機就不需要手動引導
具體過程如下:
1)開機提示錯誤界面
2)輸入grub2文件引導
3)再次進入系統后執行命令
grub2-mkconfig > /boot/grub2/grub.cfg
3.內核文件丟失
模擬問題:
rm -fr /boot/vmlinuz-3.10.0-123.e17.x86_64 ##刪除內核文件
問題解決:
進入挽救模式
chroot /mnt/sysimage
mkdir /rhel7
mount /dev/sr0 /rhel7
cd /rhel7/Packages
cp kernel-3.10.0-123.e17.x86_64.rpm /mnt
cd /mnt
rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id
cd boot
cp vmlinuz-3.10.0-123.e17.x86_64 /boot
exit
exit
具體過程如下:
1)開機提示錯誤界面
2)進入挽救模式,執行下圖操作
3)重新開啟虛擬機,恢復正常
4.系統初始化鏡像文件丟失
模擬問題:
rm -fr /boot/initramfs-3.10.0-123.e17.x86_64.img
問題解決:
<1>當系統沒有重啟時
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
<2>當系統重啟后
進入挽救模式
chroot /mnt/sysimage ##使用超級用戶
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) ##uname -r 顯示的是系統版本3.10.0-123.el7.x86_64
具體過程如下:
<1>開機提示錯誤界面
<2>進入挽救模式,執行下圖操作
5.當boot分區被刪掉后
模擬問題:
rm -fr /boot/ ##刪除boot分區
問題解決:
進入挽救模式
chroot /mnt/sysimage
mkdir /boot
grub2-install /dev/vda
mount /dev/cdrom /mnt
rpm -ivh /mnt/Packages/kernel-3.10.0-123.e17.x86_64.rpm --force
grub2-mkconfig > /boot/grub2/grub.cfg
6.當開機啟動級別被篡改
模擬問題:
systemctl set-default reboot.target
問題解決:
1.開機按上下鍵停止讀秒
2.按‘E’進入編輯模式
3.選擇內核啟動行
linux16 /vmlinuz-xxxxxx ro xxxxxxxxxxxx
改為:
linux16 /vmlinuz-xxxxxx rw rd.break
4.啟動
ctrl +x ##啟動
5.進入命令行
chroot /sysroot ##超級用戶
rm -fr /etc/systemd/system/default.target ##刪除默認的關機界面顯示的鏈接
ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target ##將圖形界面的界面設為默認界面
exit ##退出
具體過程如下:
<1>開機提示問題界面
<2>重新開機,在下示圖的界面處按鍵e進入界面
<3>修改顯示的文件內容
修改前頁面:
修改后頁面:
<4>進入命令行,執行下圖操作
3.其他問題及解決方案
1.更改超級用戶密碼
1.開機按上下鍵停止讀秒
2.按‘E’進入編輯模式
3.選擇內核啟動行
linux16 /vmlinuz-xxxxxx ro xxxxxxxxxxxx
改為:
linux16 /vmlinuz-xxxxxx rw rd.break
4.啟動
ctrl +x ##啟動
5.進入命令行
chroot /sysroot
passwd
touch /.autorelabel
exit
具體過程如下:
<1>開機輸入密碼,顯示密碼錯誤,無法登錄
<2>重新開機,在下示圖的界面處按鍵e進入界面
<3>修改顯示的文件內容
修改前頁面:
修改后頁面:
<4>進入命令行,執行下圖操作
2.更改開機等待時間和默認系統鏈接
vim /boot/grub2/grub.cfg
<1>設置開機等待頁面時間10s
<2>添加windows頁面選項
<3>默認設置開機系統選擇位於第二個行
<4>執行命令后效果圖