一、故障問題
MBR損壞是一種非常常見的錯誤,兩種情況:1.MBR文件損壞 2.grub目錄被誤刪除
1.首先,MBR是安裝在硬盤的第一個扇區(qū)上占用了512個字節(jié),其中前446字節(jié)是bootloader用于引導(dǎo)操作系統(tǒng)(中間的64個自己用來指定分區(qū),每個分區(qū)為16個字節(jié),所以一個操作系統(tǒng)最多有四個主分區(qū),最后兩個字節(jié)是標(biāo)志位,用于表示OK或者not ok),它不在分區(qū)上,而是位于分區(qū)之外,因為分區(qū)是對于操作系統(tǒng)而言的,而MBR是用于引導(dǎo)操作系統(tǒng)的,因此現(xiàn)在模擬MBR損壞只要把磁盤上第一個扇區(qū)的錢446個字節(jié)破壞掉即可。
###########模擬故障命令#######
# dd if=/dev/zero of=/dev/sda bs=400 count=1
# sync
命令含義:從dev目錄下取得任意個字符串,去替換/dev/sda中一定數(shù)量的字符,這個數(shù)量是根據(jù)bs和count來計算的,本條命令為取大小為400字節(jié)的塊,一共取1個,注意bs單位還可以是M和G。這樣就破壞掉了MBR分區(qū),現(xiàn)在重新啟動系統(tǒng),如下(破壞的字節(jié)數(shù)不同所報的錯誤也是不同的)。
裝有Red Hat Enterprise Linux 操作系統(tǒng)的服務(wù)器,系統(tǒng)無法啟動,只顯示光標(biāo),如下圖所示:
?二、問題修復(fù)
1、準(zhǔn)備引導(dǎo)掛盤鏡像,調(diào)整服務(wù)器BIOS啟動項,使用系統(tǒng)從光驅(qū)啟動,插入系統(tǒng)光盤,進(jìn)入救援模式。(掛盤鏡像建議和損壞系統(tǒng)版本一致)
?2.如圖操作:
?
?
進(jìn)入shell后,執(zhí)行chroot /mnt/sysp_w_picpath命令,掛載到系統(tǒng)目錄,查看/boot目錄的文件,/boot下面主要是grub和kernel,如果沒有需要先安裝這兩個。
3. 進(jìn)入系統(tǒng)掛載的目錄
# chroot /mnt/sysimage
一般把處于resuce模式的系統(tǒng)稱為偽系統(tǒng),把#chroot/mnt/sysimage后看到的稱為真正的系統(tǒng)。
修復(fù)內(nèi)核文件:
# exit ---退回到resecu模式下
# mount /dev/hdc /mnt/source ---掛載光驅(qū)cdrom到/mnt/source目錄
# rpm -ivh /mnt/source/Server/kernel-2.6.18-164.e15.i686.rpm--root=/mnt/sysimage/ --force
安裝完成后可以到/mnt/sysimage/boot目錄下查看。
注:需要修復(fù)的三個內(nèi)核文件在系統(tǒng)盤server目錄下kernel-2.6.18.rpm軟件包里,所以要掛載光盤之后并安裝kernel軟件包。
此時,內(nèi)核已修復(fù)完成!再繼續(xù)修復(fù)grub程序
# chroot /mnt/sysimage 進(jìn)入到已損壞的linux系統(tǒng)中
# grub-install /dev/sda 安裝grub程序到/dev/sda
# ls /boot/grub 查看grub目錄下是否存在grub.conf文件。如果沒有就手動編輯一個。
# vim /boot/grub/grub.conf
手動編輯grub.conf文件內(nèi)容
title CentOS (2.6.18-164.e15.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-164.e15.x86_64 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /boot/initrd-2.6.18-164.e15.x86_64.img
注:一些高版本里為:/boot/initramfs-2.6.32-431.29.2.el6.x86_64.img,以實際系統(tǒng)版本為準(zhǔn)。
如果缺少inittab文件先修復(fù)inittab
修復(fù)/etc/inittab等文件
# rpm -qf /etc/inittab 查詢包含inittab文件的軟件包
# rpm -qf /etc/rc.d/rc.sysinit 查詢包含rc.sysinit文件的軟件包
# rpm -qf /etc/rc.d/rc.local 查詢包含rc.local文件的軟件包
經(jīng)過rpm –qf查詢命令可得知,要修復(fù)的文件都包含在initscripts-8.45.rpm這個軟件包里面。下一步,要把文件從這個RPM里面分離出來,并還原到/etc目錄下.
# exit
# cp /mnt/source/Server/initscripts-8.45.30-2.el5.i386.rpm /mnt/sysimage/tmp
# chroot /mnt/sysimage
# cd tmp/
# ls
# rpm2cpio initscripts-8.45.30-2.el5.i386.rpm |cpio -imd 解壓軟件包到當(dāng)前目錄
# cd etc/
# ls
# cp inittab /etc/
# cp rc.sysinit /etc/rc.d/
# cp rc.local /etc/rc.d/
重啟系統(tǒng)即可。
手動編輯配置文件和交互模式二選一,
grub交互模式,修復(fù)MBR文件。
# grub
grub> root (hd0,0)<span style="white-space:pre"> </span>//設(shè)定內(nèi)核的根分區(qū)(只能是hd開頭的,無論你是scsi或者ide等其他格式硬盤),注意這個不是我們啟動操作系統(tǒng)后的根分區(qū)(啟動后是位于/boot下,但這只是一個單獨分區(qū)的掛載點而已,它其實比操作系統(tǒng)更早讀入內(nèi)存之中,因為是它來引導(dǎo)硬盤上的驅(qū)動和操作系統(tǒng)) hd(0,0) 即表示hd|(device#,partion#)
grub>setup (hd0)<span style="white-space:pre"> </span>//設(shè)定MBR安裝分區(qū),只要知道硬盤就可以了,不需要指定分區(qū)
grub>quit<span style="white-space:pre"> </span>//退出grub分區(qū)
# reboot<span style="white-space:pre"> </span>//重啟操作系統(tǒng)
參考:
redhat修復(fù)模式安裝丟失的包及grub引導(dǎo)修復(fù) – 云原生之路
MBR損壞修復(fù)(一)_虛擬機mbr損壞_Brad_Chen的博客-CSDN博客文章來源:http://www.zghlxwxcb.cn/news/detail-847131.html
RedHat Linux系統(tǒng)修復(fù)—— grub引導(dǎo)、MBR損壞修復(fù)過程_51CTO博客_修復(fù)硬盤引導(dǎo)mbr文章來源地址http://www.zghlxwxcb.cn/news/detail-847131.html
到了這里,關(guān)于RedHat Linux系統(tǒng)故障修復(fù)—— grub引導(dǎo)、MBR損壞修復(fù)過程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!