清空 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
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
删除文件但保留 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, 内容格式如下
进入救援模式
切换根, 挂载光驱
chroot /mnt/sysimage/
mount /dev/cdrom /mnt
安装内核
rpm -ivh /mnt/Packages/kernerl.... --force
如果没切根 要加 --root=/mnt/sysimage/
修复 grub
grub-install /dev/sda
编辑恢复 grub.conf
先修复 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
用 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
启用 swapblkid | tail -n1 >> /etc/fstab
swapon -a
swapon –s
查看内存状态
free
reboot
来源: http://www.bubuko.com/infodetail-2447283.html