前言
前文中我們熟悉了linux的啟動流程,如果在啟動過程中文件丟失或者損壞了怎么辦呢?難道只有重裝系統這一條路嗎?那我們不是成了普通網管了嗎?作為專業的運維工程師,我們需要掌握如何快速修復系統啟動。
實驗1: 破壞/boot/grup/下的文件——-stage2 階段 不影響啟動
mv /boot/grub /app———-移走左右文件保留grub.conf
實驗2:破壞/dev/sda 前446字節,和啟動相關
查看MBR
破壞grub的第一階段 stage1
重啟后系統會自動直接進光盤界面,進入救援模式切根:chroot /mnt/sysimage
安裝grub:grub-install/dev/sda—–不止修復stage1 1.5、2統統修復。(第一種方法)
實驗3:破壞mbr后續的數據——-stage1.5
用光盤引導,切根(第二種方法恢復)
1、/mnt/sysimage
2、grub
3、root (hd0,0)
4、setup (hd0)——依賴于/boot/grub/下的文件
這個時候重復實驗1這時候已經起不來了,重新安裝grub后第二階段和剛開始的已經不是同一個文件了。
這時候還需要保留stage2這個文件 就可以啟動了
實驗4:制作啟動項/etc/grub.conf -> ../boot/grub/grub.conf
1、default=0
代表默認選擇第一個
2、紅色邊框為復制添加部分
3、可以在title前或者initrd后面加入口令,可以加密
生成方法:
加密算法2:ssha512算法 更安全
4、內核參數 /proc/cmdline,可進行修改quiet是隱藏內核的啟動過程,刪除可以看到內核過程
實驗5:刪除/boot/grub/grub.conf,修復
注意:必須事先知道root在哪,支持tab健補全。
實驗6:刪除/boot/grub目錄
報錯信息
進入光盤救援模式: 1、chroot /mnt/sysimage
2、grub-install /dev/sda
3、sync
4、手動寫一個grub.conf文件
實驗7:刪除/boot
包含內核文件vmlinuz、虛擬文件系統 inittrd、grub
重啟錯誤信息
1、進入光盤模式
chroot
/mnt/sysimage
mount
/dev/sr0 /mnt
2、恢復vmlinuz文件——–光盤復制內核包 在光盤中isolinux文件夾中,不在packages中
(第二種方法rpm -ivh /mnt/packages/kernel… –force—————-安裝內核包)
3、恢復initramfs
mkinitrd /boot/initramfs.img `uname -r`
4、恢復grub—————grub-install /dev/sda
5、編輯grub.conf
實驗8:刪除/sbin/init
1、看到這個界面輸入a
2、添加init=/bin/bash 指定系統不用默認的init啟動 指定bash啟動
3、查詢到文件來自于的包組
4、試圖創建發現是只讀,也無法掛載光盤,需要重新掛載根
重新掛載根
掛載光盤
5、安裝包
綜合實驗9:刪除/etc/fstab和/boot 兩個文件 恢復
1、進入光盤救援模式
這個時候光盤也無法掛載根,找不到分區
2、使用fdisk -l
/dev/sda 、blkid 可以看到磁盤信息
3、創建文件,然后每個分區試圖掛載,找到根和boot
4、創建創建文件,不支持vim,寫完退出重啟一下 重新進救援模式,實現自動掛載,不要手動掛載
5、直接安裝內核包
6、安裝grub
grub-install /dev/sda
編輯grub.conf文件
技巧:可是要vim直接讀入名字,無需手寫”r!”
總結:通過以上實驗,對基本的故障都能恢復,結合啟動過程,對linux應該會有一個更深層次的了解。
原創文章,作者:eleven,如若轉載,請注明出處:http://www.www58058.com/86073