首先我們先破壞一下grub文件
這里我們先查看一下電腦是哪塊硬盤啟動的
這里我們就直接破壞硬盤的二進(jìn)制數(shù)據(jù)哀卫,以達(dá)到grub的破壞。
要記住我們只能破壞前446字節(jié),也就是bootloader。后面64字節(jié)是分區(qū)表。
我們可以查看一下前512字節(jié)的二進(jìn)制文件
hexdump -C -n 512 /dev/sda
先破壞/boot/grub/stage1的前446字節(jié)也就是啟動硬盤的前446字節(jié)
dd if=/dev/zero of=/dev/sda bs=1 count=446
破壞后再查看一下二進(jìn)制文件
由圖中可以看出前面的字節(jié)已經(jīng)全部變?yōu)?了炸宵,也就意味著grub已經(jīng)被破壞了。
然后我們重啟
reboot
如果mbr(系統(tǒng)的前512字節(jié)主引導(dǎo)記錄 )出故障狐树,系統(tǒng)啟動的表現(xiàn)形態(tài)看不見焙压。
如果能看的見啟動 那就不是grub的問題。
啟動后直接回自動進(jìn)入光盤模式 然后進(jìn)入救援模式
然后會出現(xiàn)好多讓選擇的界面抑钟。針對這個問題涯曲,那些選擇可以不用管,一直默認(rèn)就行在塔。
然后就會進(jìn)入救援模式中幻件,這里是關(guān)盤啟動。
我們可以查看出系統(tǒng)有的現(xiàn)在的救援模式也都有蛔溃。
但是現(xiàn)在還不是自己系統(tǒng)真正的根绰沥,所以我么你要先切換到我們系統(tǒng)的根去。
我們系統(tǒng)真正的根再/mnt/sysimage/
chroot /mnt/sysimage/
然后修復(fù)grub
grub-install /dev/sda
然后手動吧緩存寫進(jìn)磁盤里
sync
然后exit退出
重新啟動贺待。
這時就意味著啟動了
如果1階段好好的 那就不會直接讓光盤啟動 1.5階段弄出故障不提示光盤系啟動 有一瞬間開機界面 但是系統(tǒng)一樣起不來
破壞1.5階段
這時我們用光盤啟動進(jìn)行修復(fù)徽曲。
重啟
然后選擇光盤啟動更1階段壞一樣。
進(jìn)入救援模式后先切根
chroot /mnt/sysimage/
然后再對gurb進(jìn)行修復(fù)麸塞。
grub-install /dev/sda
然后手動吧緩存寫進(jìn)磁盤里
sync
然后exit退出
重新啟動秃臣。
啟動看到這時就說明已經(jīng)修復(fù)成功了。
缺失grub.conf文件
制作gurb文件 直接寫出kernrl 三行就行 可以補全
啟動
也可以直接創(chuàng)建grub.conf文件
缺失/sbin/init文件
錯誤顯示
e d編輯
kernrl 那一行最后
init=/bin/bash
用bash啟動 然后進(jìn)行恢復(fù)
先把根重掛
munt -o remount , root /
把移動的文件移動回去 重啟
但是會出現(xiàn)錯誤
原因:文件移動之后會發(fā)把標(biāo)簽屬性發(fā)生變變
解決方法就繞過標(biāo)簽
啟動時輸入a
末尾加 selinux=0
然后ctrl+x重啟
/boot/grub刪除如何修復(fù)
這里我們直接把grub.文件全部刪除
然后查看一下哪工,確認(rèn)刪除后重啟電腦
啟動界面
這時說明系統(tǒng)已經(jīng)起不來了奥此。
我們只能進(jìn)入救援模式進(jìn)行啟動。
我們產(chǎn)考前面的環(huán)節(jié)進(jìn)入救援模式雁比。
先切根
chroot /mnt/sysimage/
然后可以查看一下/boot/grub/文件是否已經(jīng)被刪除
然后再
grub-install
生成后gurb文件
我們先查看問價是否已經(jīng)生成
由查詢可以看出文件已經(jīng)生成了稚虎,但是還缺少/grub/grun.conf文件
最后生成grub.conf文件夾
完成后退出 重啟完成
/boot刪除如何修復(fù)
剛剛嘗試了/boot/grub的修復(fù),現(xiàn)在試一下/boot文件的修復(fù)
首先我們先刪除/boot文件
rm-rf /boot
/boot的文件刪不掉偎捎,但是/boot里面的文件已經(jīng)全部都刪除了
掛載光盤
mount /dev/sr0 /mnt
然后進(jìn)入光盤查看一下
把光盤中的/isolinux/vmlinuz文件copy到/boot
cp vmlinuz /boot/
內(nèi)核文件復(fù)制到/boot 中
把其他的文件生成
生成intramfs.img文件
mkinitrd /boot/initramfs.img ua=name -r
生成這個文件是掛驅(qū)動的蠢终,如果沒有這個文件根就掛不上去。
生成之后可以查看一下/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梦染、
發(fā)現(xiàn)下面分好多赡麦。這時我們把每個都掛一遍看看哪個是根
我們先在/mnt下創(chuàng)建一個文件夾/tmp
mkdir /mnt/tmp
這樣我們可以把這些分區(qū)都掛到這個文件查看朴皆。
先掛/sda1然后查看一下
mount /dev/sda1 /mnt/tmp/
那我們再掛載sda2試一下
首先把剛剛的取消掛載才能掛載新的
umount /mnt/tmpmount /dev/sda2 /mnt/tmp/
可以sda2就是根分區(qū)
那我們就把根掛載上去。
既然sda2是根文件那么sda1就是/boot
這兩個是開機啟動的主要文件泛粹,這兩個掛上機器基本就能啟動遂铡。
等系統(tǒng)啟動后再去修復(fù)其他的錯誤。
所以一起掛載
編輯/fstab
vi /mnt/tmp/etc/fstab
先把掛件的掛載把系統(tǒng)修復(fù)起來晶姊。
完成后重啟扒接,重新進(jìn)救援模式,先讓光盤啟動找到根再進(jìn)行修復(fù)们衙。
進(jìn)入救援模式后先切根
chroot /mnt/sysimage/
然后掛載光盤
mount /dev/sr0 /mnt
這里可以像上一個實驗一樣去復(fù)制vmlinuz這個文件钾怔。
當(dāng)然也可以去安裝kernel.
裝載kernel
也可以 通過文件復(fù)制到/boot但是安裝的更完善
然后再寫gurb,conf文件
然后重啟
即使gurb,conf文件寫錯了,也可以在啟動界面中輸入c手動添加更改
進(jìn)入系統(tǒng)后 把其他的都掛載上
然后swapon -s啟動 swapon空間