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

最新文章

  1. 基于DDDLite的权限管理OpenAuth.net 1.0版正式发布
  2. BZOJ1192 [HNOI2006]鬼谷子的钱袋
  3. ASP.Net开发基础温故知新学习笔记
  4. Oozie调度报错——ORA-00918:未明确定义列
  5. Unsplash.it - 实用的图片占位符,支持个性化设置
  6. iOS.StaticLibrary.1-avoid-duplicate-symbol-in-static-library[draft]
  7. 【字体区别】Serif和Sans Serif
  8. qu
  9. 所有 HTTP 状态代码及其定义
  10. notepad++汉字突然横过来了
  11. WEB服务器、应用程序服务器、HTTP服务器区别(转)
  12. apache也可以做负载均衡,跟nignx的区别是什么?
  13. 手把手教你使用startuml画用例图
  14. java中难度大一点的面试题
  15. 博客已转移至 http://blog.yemou.net/
  16. 配置NFS固定端口
  17. asp.net core 系列 9 环境(Development、Staging 、Production)
  18. Java_Object_Date_System等常用类
  19. Mockito框架入门教程(一)
  20. java 读取文件乱码

热门文章

  1. java多线程---------java.util.concurrent并发包----------等待多线程完成
  2. UVM_INFO
  3. Delphi下OpenGL2d绘图(06)-画图(多窗口、多视图、多个DC)
  4. [转]IIS的各种身份验证详细测试
  5. GraphQL介绍&使用nestjs构建GraphQL查询服务
  6. 八、阻塞等待异步结果FutureTask
  7. 轻松学习java可重入锁(ReentrantLock)的实现原理(转 图解)
  8. 《JavaWeb从入门到改行》fileupload,没毛病
  9. html5 转义实体字符 元数据 跳转 全局属性 id class lang style
  10. react项目跨域问题