1. 程式人生 > >centos6啟動故障及修復

centos6啟動故障及修復

修復

前言

前文中我們熟悉了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應該會有一個更深層次的了解。



centos6啟動故障及修復