1. 程式人生 > >馬哥學習----李洋個人筆記--啟動故障排除

馬哥學習----李洋個人筆記--啟動故障排除

必須 一般來說 開始 word all 情況 grub 鍵盤 但是

故障1 刪除/boot之後的恢復步驟:

1 重啟電源,迅速按esc進去選擇啟動模式,然後選cd-rom這項(從光驅啟動)

2 重啟後進入救援模式(選擇rescue),選擇語言和鍵盤布局後,一路回車到下一步。

3 詢問是否需要網絡選項,一般來說,救援模式不需要網絡,選擇no,回車進入下一步。

4 這一步提示內容大意為:救援系統將嘗試尋找你的linux安裝,並在目錄 mnt/sysimage下安裝它,然後就可以對系統進行任何更改.也可以選擇只讀的方式來裝載文件,如果需要激活高級san設備,選擇高級.(一般不會用只讀方式來掛載文件) 如果由於某種原因這個過程失敗了,可以選擇skip,這個步驟就會被跳過,直接進入到命令shell.下面的四個選擇,分別是

continue==繼續 read-only==只讀 skip==跳過這個步驟 advanced==高級 這裏我們選擇continue.然後下一步.

5 一路回車到這一步,選擇第一個進入shell.

6 在shell命令模式下,首先要敲命令 # chroot /mnt/sysimage 這樣是將救援模式的根,轉移到真正的根目錄下,不加入這一個命令,所有對根的操作,實際上是對救援模式跟的操作.
可以使用df來驗證下,是否是自己的根.如果不是自己的跟,那麽硬盤路徑上顯示有 /mnt/sysimage這個目錄,代表沒在自己的根上。而是在救援模式的根上。

7 在/boot下執行命令 grub-install /dev/sda 創建grub掛載點 創建成功後,我們瀏覽下grub目錄當中內容 可以看出當中缺少了grub.conf文件,我們稍後再手動編輯,先恢復內核。

8 接下來掛載光驅,準備復制boot當中的內核文件。 使用命令: cd /media 到光盤中,尋找到isolinux目錄. 將目錄當中的vmlinux復制到/boot下.內核文件恢復完畢.

9 恢復啟動時候需要的grub及initrd文件 使用命令mkinitrd在/boot下創建initrd文件.命令如下

mkinitrd /boot/initramfs-$(uname -r).img vmlinuz

創建成功後,會在boot下生成以當前內核版本號為名字的文件

使用vim來編輯目錄grub下的grub.conf文件,內容如下:
default =5
timeout=5
title redhat

root(hd0,0)
kernel /vmlinuz(這個名字是跟復制過來的內核名字一致) ro root=uuid=(掛在根的分區編號) rhgb quiet
initrd /使用命令生成的內核名.img文件名字
其中,uuid硬盤ID號,是在命令模式下輸入 :.! blkid |grep /dev/sd2 來實現的。通過之前的df命令可以看出根目錄是掛載sd2分區上的,所以取出sd2的uuid號。

10 以上步驟完成後,先輸入exit退出救援,再輸入reboot重啟,成功恢復。

故障2:刪除/etc/fstab,刪除/etc/init/rcS.conf,刪除/etc/rc.d/rc.sysinit,刪除/boot下的所有文件,然後恢復正常。

進入救援模式使用df命令,可以看到沒有任何掛載,但是使用fdisk –l 可以看出當前硬盤分區情況。

做一個簡單的判斷,只有編號為83的分區才有可能是掛載根的,所以排除不是83以及swap後,剩余的分區嘗試掛載即可,直到能看到真正的根下的內容。假設為/dev/sda2

手動掛載:執行命令mount /dev/sda2 /mnt/sysimage 切記:現在我們還是在救援模式的根下,別忘了切換根,可以用df命令來驗證下:

需要使用命令: chroot /mntsysimage 將根切換自己的根上.

使用 vim /etc/fstab 命令來編輯分區配置文件,但是這時候我們缺失了很多信息,無法使用blkid來獲取分區的ID號,所以還需要退出去,在救援模式下,使用blkid將分區id號導入到/etc/fstab當中.
首先回到救援模式 # exit
接下來是導入:blkid >> (/mnt/sysimage/etc/fstab),紅色部分很重要,因為我們現在還是救援模式的根上,必須加上才有效。

接下來,使用 vim /etc/fstab 來查看,已經有了分區的id號,手動編輯下,變為:
UUID=bd127449-c4cc-4a56-8f94-e44ceca55970 / ext4 defaults 1 1
這裏的 / 表示 根在這個分區上掛載 將所有分區都按此格式編輯完後保存.然後退回到救援模式,重啟,讓系統自動識別分區.

重啟後,進入救援模式,使用df可以查看系統已經自動掛載分區了。

開始恢復 /etc/init/rcS.conf和/etc/rc.d/rc.sysinit兩個文件了.

使用rpm -qf /etc/init/rcS.conf 和 /etc/rc.d/rc.sysinit,可以查詢出,這兩個文件都出自一個安裝包內,:
initscripts-9.03.58-1.e16.centos.x86_64

從光盤當中,復制這個包到/app下,使用命令 rpm2cpio initscripts-9.03.58-1.e16.centos.x86_64 |cpio -id 解壓後
然後從這裏的etc當中分別將這兩個文件放入根下面的etc內,分別復制對應文件到對應目錄下

剩余恢復grub步驟和上例一樣,不在多做贅述。恢復好grub後,退會到救援模式,將內存信息保存起來,使用命令 sync 後重啟。

另吐槽 博客不能使用word當中,使用QQ截圖下來的圖片!!!

馬哥學習----李洋個人筆記--啟動故障排除