CentOS啓動故障排錯

一.MBR破壞

centos 6

  經過dd破壞前512個字節,模擬mbr損壞。(事先要作好備份)linux

dd if=/dev/zero of=/dev/sda bs=1 count=512

  查看破壞狀況shell

hexdump -C -n512 /dev/sda

  破壞前
CentOS啓動故障排錯
  破壞後
CentOS啓動故障排錯
  未重啓的狀況下,僅僅須要將備份的mbr從新讀入便可vim

dd if=/root/mbr of=/dev/sda bs=1 count=512
    #if後是讀取內容的文件或設備 of後是目標設備或者文件
    #這裏再也不截圖,讀取後便可恢復正常

  重啓後的現象(最好是掛載有鏡像文件能夠進入救援模式)
  硬盤沒法引導
CentOS啓動故障排錯centos

解決方案
  進入救援模式(在品牌logo是按相應的鍵進入引導,這裏使用vm的方法)
  1.在logo界面按ESC
CentOS啓動故障排錯
   2.選擇光盤引導
CentOS啓動故障排錯
   3.選擇救援模式啓動
CentOS啓動故障排錯
  .4.等待一段時間後進入以下頁面
CentOS啓動故障排錯
  5.一路回車,到網絡配置選擇no,掛載文件系統選擇跳過,以後開啓shell。
CentOS啓動故障排錯
CentOS啓動故障排錯
CentOS啓動故障排錯
  6.查看磁盤發現,發現能夠識別磁盤,可是沒法識別分區
  7.這裏我將mbr備份到了另外一臺同局域網的主機上,這裏經過ifconfig配置ip,以後使用scp將備份取回網絡

ifconfig
        ifconfig eth0 192.168.242.110
        scp root@192.168.242.100:/root/mbr ./

CentOS啓動故障排錯
  8.經過dd恢復mbr記錄,以後重啓,若是擔憂還沒有寫入可使用sync命令去同步ide

dd if=mbr of=/dev/sda bs=1 count=512

CentOS啓動故障排錯
  重啓後能夠正常引導,同時查看mbr發現已經恢復
CentOS啓動故障排錯ui

centos 7的恢復與6基本相同,僅僅是救援模式的界面略有差異,這裏不過多重複書寫


破壞grub第一階段

  破壞前446個字節,模擬grub第一階段的損壞centos7

dd if=/dev/zero of=/dev/sda bs=1 count=446

centos 6

未重啓
   法一:grub-install能夠實現1 1.5 2的全步驟恢復.net

grub-install /dev/sda

CentOS啓動故障排錯
   法二:grub命令3d

grub
            root (hd0,0) 這裏的root指的是/boot分區
            setup (hd0) 寫入到硬盤
            quit

CentOS啓動故障排錯
grub命令的修復依賴於/boot/grub下的文件,若這些文件被破壞則沒法使用grub命令去修復

重啓(救援模式下)
   沒法引導,現象以下
CentOS啓動故障排錯
   1.進入救援模式
   這裏進入和以前破壞mbr基本相同,可是在下圖所示的地方要選擇continue
CentOS啓動故障排錯
   2.切換根目錄

chroot /mnt/sysimage

CentOS啓動故障排錯
   3.運行grub-install

grub-install /dev/sda

CentOS啓動故障排錯
   4.執行sync以後exit,reboot
CentOS啓動故障排錯
CentOS啓動故障排錯

centos7

  centos7使用的是grub2,取消了正常啓動系統後,經過grub命令進入grub終端的方式,與6相比,7可使用grub2-install命令進行修復,具體過程同6基本相近。
CentOS啓動故障排錯
  重啓後狀態
CentOS啓動故障排錯
  進入救援模式修復
CentOS啓動故障排錯
  grub2-install後執行sync 退出根目錄切換狀態reboot,正常啓動
CentOS啓動故障排錯


破壞grub的1.5階段

centos 6

  使用dd模擬破壞1.5階段

dd if=/dev/zero of=/dev/sda bs=1 count=10000 skip=512 seek=512

  破壞1.5階段能夠上述破壞1階段徹底同樣的解決方案,所以不作重複書寫
  重啓後的現象,硬盤能夠正常引導第一階段,可是會在1.5階段卡死,光標不斷閃爍。

CentOS啓動故障排錯

centos 7也與破壞1階段相同


刪除boot目錄下的全部文件

centos 6

  刪除boot目錄下全部文件

rm -rf /boot

  重啓後現象
CentOS啓動故障排錯
  法一:
     1.進入救援模式
     2.切換根目錄

chroot /mnt/sysimage

    3.掛載光盤

mount /dev/sr0 /media

CentOS啓動故障排錯
     4.複製光盤目錄下的vmlinuz到/boot

cp /media/isolinux/vmlinuz /boot/

CentOS啓動故障排錯
     5.進入/boot目錄而且生成initramfs.img文件

cd /boot
            mkinitrd initramfs.img `uname -r`

CentOS啓動故障排錯
     6.使用grub-install 生成grub目錄

grub-install /dev/sda

CentOS啓動故障排錯
     7.編輯grub.confg配置文件

vim grub/grub.conf
default=0
            timeout=5
            title linux
            kernel /vmlinuz root=/dev/sda2
            initrd /initramfs.img
            #這裏的root指的是根目錄 kernel和initrd 後跟的是/boot目錄下的對應文件
            #若根和boot在同一分區則應當寫成
            kernel /boot/vmlinuz root=/dev/sda2
            initrd /boot/initramfs.img

  這裏的kernel和initrd選項不能互換,kernel必須在文件系統前進行引導。
CentOS啓動故障排錯
     8.配置完成後,sync,退出切換根模式,執行重啓
  法二
     1.進入救援模式
    2.掛載光盤而且rpm -ivh kernel-version.rpm --root=/mnt/sysimage/ --force強制安裝

mkdir /media
                    mount /dev/sr0 /media
                    rpm -ivh /media/Packages/kernel-2.6.32-696.el6.x86_64,rpm --root=/mnt/sysimage/ --force

CentOS啓動故障排錯
     3. 切換根目錄

chroot /mnt/sysimage

     4.生成grub目錄

grub-install /dev/sda

CentOS啓動故障排錯
     5.編輯grub.conf配置文件

vi /boot/grub/grub.conf

CentOS啓動故障排錯
     6.保存,sync 退出根切換以後重啓

sync
    exit
    reboot

CentOS啓動故障排錯

centos7

  centos7系統法恢復方式和6流程基本相同,可是因爲centos7使用了grub2,所以在某些階段會有一些差異
   法一:
     1.進入救援模式
    2.掛載光盤而且rpm -ivh kernel-version.rpm --root=/mnt/sysimage/ --force強制安裝

mkdir /media
                    mount /dev/sr0 /media
                    rpm -ivh /media/Packages/kernel-3.10.0-862.el7.x86_64,rpm --root=/mnt/sysimage/ --force

CentOS啓動故障排錯
    3. 切換根目錄

chroot /mnt/sysimage

    4.生成grub目錄

grub2-install /dev/sda

    5.生成配置文件,grub2增長了一個自動查找文件生成配置文件的選項grub2-mkconfig,同時配置文件的後綴也改成了cfg

cd /boot/grub2
    grub2-mkconfig -o grub.cfg

CentOS啓動故障排錯
     6.保存,sync 退出根切換以後重啓

sync
    exit
    reboot

CentOS啓動故障排錯

  法二:
     1.進入救援模式
     2.切換根目錄

chroot /mnt/sysimage

    3.掛載光盤

mkdir /media
        mount /dev/sr0 /media

    4.複製光盤目錄下的vmlinuz到/boot

cp /media/isolinux/vmlinuz /boot/

CentOS啓動故障排錯
    5.進入/boot目錄而且生成initramfs.img文件

cd /boot
            mkinitrd initramfs.img `uname -r`

    6.使用grub-install 生成grub目錄

grub2-install /dev/sda

CentOS啓動故障排錯
    7.編輯grub.confg配置文件
    這裏配置文件一樣可使用grub2-mkconfig生成,可是卻沒法識別手動拷貝的vmlinuz和initramfs.img文件,所以要手動修改配置文件。
  grub2配置文件的參數能夠參考下面這篇文章:

https://blog.csdn.net/lazyclough/article/details/5790385

CentOS啓動故障排錯
    8.配置完成後,sync,exit退出切換根模式,執行重啓

這裏centos7來講推薦使用方法一,grub2-mkconfig能夠識別對應文件而且生成配置文件。

相關文章
相關標籤/搜索