CentOS 6 各种启动文件损坏及修复

stage1 mbr的破坏和恢复

清空mbr 前446字节

dd if=/dev/zero of=/dev/sda bs=1 count=446

如果没有挂载启动光盘,会显示这样

clip_image001

如果启动前挂载了光盘,则重启之后自动从光驱启动了

clip_image002

此时选择救援模式,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,内容格式如下

clip_image003



如果 /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一定会使用普通分区.

clip_image004

假设破坏导致/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

posted @ 2018-01-01 16:52  QuintinX  阅读(9959)  评论(0编辑  收藏  举报