首先我們先破壞一下grub文件
這里我們先查看一下電腦是哪塊硬盤啟動的
這里我們就直接破壞硬盤的二進制數據,以達到grub的破壞。
要記住我們只能破壞前446字節,也就是bootloader。后面64字節是分區表。
我們可以查看一下前512字節的二進制文件
hexdump -C -n 512 /dev/sda
先破壞
/boot/grub/stage1的前446字節也就是啟動硬盤的前446字節
dd if=/dev/zero of=/dev/sda bs=1 count=446
破壞后再查看一下二進制文件
由圖中可以看出前面的字節已經全部變為0了,也就意味著grub已經被破壞了。
然后我們重啟
reboot
如果mbr(系統的前512字節主引導記錄 )出故障,系統啟動的表現形態看不見。
如果能看的見啟動 那就不是grub的問題。
啟動后直接回自動進入光盤模式 然后進入救援模式
然后會出現好多讓選擇的界面。針對這個問題,那些選擇可以不用管,一直默認就行。
然后就會進入救援模式中,這里是關盤啟動。
我們可以查看出系統有的現在的救援模式也都有。
但是現在還不是自己系統真正的根,所以我么你要先切換到我們系統的根去。
我們系統真正的根再/mnt/sysimage/
chroot /mnt/sysimage/
然后修復grub
grub-install /dev/sda
然后手動吧緩存寫進磁盤里
sync
然后exit退出
重新啟動。
這時就意味著啟動了
如果1階段好好的 那就不會直接讓光盤啟動 1.5階段弄出故障不提示光盤系啟動 有一瞬間開機界面 但是系統一樣起不來
破壞1.5階段
這時我們用光盤啟動進行修復。
重啟
然后選擇光盤啟動更1階段壞一樣。
進入救援模式后先切根
chroot /mnt/sysimage/
然后再對gurb進行修復。
grub-install /dev/sda
然后手動吧緩存寫進磁盤里
sync
然后exit退出
重新啟動。
啟動看到這時就說明已經修復成功了。
缺失grub.conf文件
制作gurb文件 直接寫出kernrl 三行就行 可以補全
啟動
也可以直接創建grub.conf文件
缺失/sbin/init文件
錯誤顯示
e d編輯
kernrl 那一行最后
init=/bin/bash
用bash啟動 然后進行恢復
先把根重掛
munt
-o remount , root /
把移動的文件移動回去 重啟
但是會出現錯誤
原因:文件移動之后會發把標簽屬性發生變變
解決方法就繞過標簽
啟動時輸入a
末尾加 selinux=0
然后ctrl+x重啟
/boot/grub刪除如何修復
這里我們直接把grub.文件全部刪除
然后查看一下,確認刪除后重啟電腦
啟動界面
這時說明系統已經起不來了。
我們只能進入救援模式進行啟動。
我們產考前面的環節進入救援模式。
先切根
chroot /mnt/sysimage/
然后可以查看一下/boot/grub/文件是否已經被刪除
然后再
grub-install
生成后gurb文件
我們先查看問價是否已經生成
由查詢可以看出文件已經生成了,但是還缺少/grub/grun.conf文件
最后生成grub.conf文件夾
完成后退出 重啟完成
/boot刪除如何修復
剛剛嘗試了/boot/grub的修復,現在試一下/boot文件的修復
首先我們先刪除/boot文件
rm-rf /boot
/boot的文件刪不掉,但是/boot里面的文件已經全部都刪除了
掛載光盤
mount /dev/sr0 /mnt
然后進入光盤查看一下
把光盤中的/isolinux/vmlinuz文件copy到/boot
cp vmlinuz /boot/
內核文件復制到/boot 中
把其他的文件生成
生成intramfs.img文件
mkinitrd /boot/initramfs.img `ua=name -r`
生成這個文件是掛驅動的,如果沒有這個文件根就掛不上去。
生成之后可以查看一下/boot文件下就有這兩個文件了。
然后再 生成grub文件
grub-install /dev/sda
最后生成grub.conf文件夾
完成后退出 重啟完成
深入破壞
移走/etc/fstab 文件
mv /etc/fstab /root/
再刪除/boot
rm -rf /boot
/etc/fstab 中寫的根掛載到哪,沒有該文件救援模式無法自動掛載到根。
啟動又是這個界面
所以大家可以看出只要是第二階段出問題頁面都是這個錯誤
救援模式啟動
會顯示沒有掛載根
查看硬盤
嘗試把/sd*也就是硬盤掛載一下,看看哪個是根。
然后常見/fstab文件掛載根
這里我們查看一下sda因為他是啟動盤
fdisk -l /dev/sda、
發現下面分好多。這時我們把每個都掛一遍看看哪個是根
我們先在/mnt下創建一個文件夾/tmp
mkdir /mnt/tmp
這樣我們可以把這些分區都掛到這個文件查看。
先掛/sda1然后查看一下
mount /dev/sda1 /mnt/tmp/
那我們再掛載sda2試一下
首先把剛剛的取消掛載才能掛載新的
umount /mnt/tmp mount /dev/sda2 /mnt/tmp/
可以sda2就是根分區
那我們就把根掛載上去。
既然sda2是根文件那么sda1就是/boot
這兩個是開機啟動的主要文件,這兩個掛上機器基本就能啟動。
等系統啟動后再去修復其他的錯誤。
所以一起掛載
編輯/fstab
vi /mnt/tmp/etc/fstab
先把掛件的掛載把系統修復起來。
完成后重啟,重新進救援模式,先讓光盤啟動找到根再進行修復。
進入救援模式后先切根
chroot /mnt/sysimage/
然后掛載光盤
mount /dev/sr0 /mnt
這里可以像上一個實驗一樣去復制vmlinuz這個文件。
當然也可以去安裝kernel.
裝載kernel
也可以 通過文件復制到/boot但是安裝的更完善
然后再寫gurb,conf文件
然后重啟
即使gurb,conf文件寫錯了,也可以在啟動界面中輸入c手動添加更改
進入系統后 把其他的都掛載上
然后swapon -s啟動 swapon空間
原創文章,作者:phosphor,如若轉載,請注明出處:http://www.www58058.com/82291