CentOS 6 各種啟動文件損壞及修復
stage1 mbr的破壞和恢復
清空mbr 前446字節
dd if=/dev/zero of=/dev/sda bs=1 count=446
如果沒有掛載啟動光盤,會顯示這樣
如果啟動前掛載了光盤,則重啟之後自動從光驅啟動了
此時選擇救援模式,Rescue installed system
按照提示操作最後進入到shell
修復mbr需要用到grub去修復磁盤,所以要先把根切到硬盤上
chroot /mnt/sysimage
運行grub-install進行修復
grub-install /dev/sda
查看一下
hexdump -C -n 512 /dev/sda
exit
reboot
stage1.5 數據破壞與修復
1.5階段的數據存放在mbr之後的27個扇區內,也就是13824個字節
破壞掉1.5階段的數據,無需全部破壞,我們用5120個字節試試.
dd if=/dev/zero of=/dev/sda bs=1 count=5120 skip=512 seek=512
修復方法同樣可以用grub-install
重啟進入救援模式
chroot /mnt/sysimage
grub-install /dev/sda
reboot
stage2 grub目錄的破壞與修復
刪除文件但保留grub.conf
重啟,提示error 15 ,
因為之前用grub-install修復過.所以之後啟動系統都需要讀取這些文件.
除了grub.conf文件,其他文件依然使用grub-install來修復.
進入救援模式
chroot /mnt/sysimage/
grub-install /dev/sda
sync
恢復grub.conf文件
cd /boot/grub/
可以使用scp命令通過網絡其他主機copy一個過來
也可以手動編輯一個grub.conf,內容格式如下
如果 /boot文件夾丟失
進入救援模式
切換根,掛載光驅
chroot /mnt/sysimage/
mount /dev/cdrom /mnt
安裝內核
rpm -ivh /mnt/Packages/kernerl.... --force
如果沒切根 要加 --root=/mnt/sysimage/
修復grub
grub-install /dev/sda
編輯恢復 grub.conf
丟失/boot/ 和 /etc/fstab
先修復 fstab
執行mount 按照內容來猜測每一個設備分區對應的掛載點
也可以 fdisk -l 按照分區大小來區分
或者創建臨時文件夾,掛載分區,查看其內容來確定
mkdir /mnt /tmp
mount /dev/sda1 /mnt/tmp;ls /mnt/tmp
mount /dev/sda2 /mnt/tmp;ls /mnt/tmp
...
按照上面得到的信息編輯fstab文件.
vi /mnt/tmp/etc/fstab
reboot
此時已可以加載分區,但還需要恢復/boot文件夾.
進入救援模式
掛載光盤/mnt/cdrom
安裝內核
rpm -ivh /mnt/cdrom/.... kernel.....rpm --root=/mnt/sysimage/ --force
修復grub
grub-install /dev/sda
sync
編寫grub.conf
vi /boot/grub/grub.conf
reboot
丟失/sbin/init
用bash代替init
救援模式
讀寫方式重新掛載根
mount -o remount.rw /
如果之前在/dev/sda3有init的備份,則掛載/dev/sda3.並恢復備份
mount /dev/sda3 /app
mv /app/init /sbin
如果沒有備份,可以直接重裝upstart.
掛載光盤/mnt/cdrom
安裝
rpm ivh /mnt/cdrom/CentOS_6.9_Final/Packages/upstart.xxxxxxxx.rpm –force
邏輯卷被破壞
通常centos默認安裝分區是會使用邏輯卷的,但/boot一定會使用普通分區.
假設破壞導致/etc/fstab和/boot丟失
刪除 /etc/fstab和/boot
reboot
修復:
1) 恢復邏輯卷
進入救援模式
使用命令查看磁盤和邏輯卷信息
blkid
lvs
pvs
掛載lv
mkdir /mnt/root
vgchange -ay 激活卷組
mount /dev/VolGroup/Lv_root /mnt/root
掛載boot分區
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
編輯fstab內容,把主要磁盤掛載記錄添加即可
vi /mnt/root/etc/fstab
其中UUID可以通過blkid獲得
reboot
2)恢復/boot
進入救援模式
切換根
chroot /mnt/sysimage/
掛載光盤
mkdir /mnt/cdrom
安裝內核
rpm -ivh /mnt/cdrom/....kernel.....rpm –force
修復grub
grub-install
啟用swap
blkid | tail -n1 >> /etc/fstab
swapon -a
swapon –s
查看內存狀態
free
reboot
CentOS 6 各種啟動文件損壞及修復