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 各种启动文件损坏及修复的更多相关文章

  1. Centos 7服务启动文件

    在Centos 7中,如果要编辑一个脚本服务文件,并使用systemd进行管理,则必须将服务文件命名为/etc/systemd/system/*.service. service unit文件中的选项 ...

  2. ORA-01578 data block corrupted 数据文件损坏 与 修复 (多为借鉴 linux)

    好吧,先说说造成崩溃的原因: 使用redhat 5.9 Linux 作为数据库服务器, 周五数据库正在使用中,硬关机造成数据库文件部分损坏(周一上班时,应用程序启动不起来,查看日志文件时,发现一个数据 ...

  3. MS Sql Server 数据库或表修复(Log日志文件损坏的修复方法)

    ----------------- [1] use master go sp_configure reconfigure with override go ----------------- [2] ...

  4. Linux服务器断电导致挂载及xfs文件损坏的修复方法

    系统文件损坏后进入紧急修复模式,无法进行维护工作 welcome to emergency mode!after logging in ,type "journalctl -xb" ...

  5. 由于OCR文件损坏造成Oracle RAC不能启动的现象和处理方法

    v$cluster_interconnects 集群节点间通信使用的IP地址 错误信息 使用了公网进行连接 SQL> select * from v$cluster_interconnects; ...

  6. mysql启动后随即关闭问题解决(ibdata1文件损坏导致)

    机房一台服务器上的mysql运行一段时间了,突然出现了一个很奇怪的现象:重启后无法恢复了!准确情况是:启动mysql后随即就又关闭了. 查看mysql错误日志如下: 160920 22:41:41 m ...

  7. 【教程】教你解决“Windows 资源保护找到了损坏文件但无法修复其中某些文件”的问题【转载】

    转载:http://www.cystc.org/?p=2827 很多人都会用sfc /scannow来解决系统文件损坏的问题,但有时也会遇到连sfc都无法修复的情况,最常见的就是出现“Windows ...

  8. Oracle备份恢复之断电导致控制文件和日志文件损坏修复

    Oracle数据库遭遇断电遭遇ora-00214.ora-00314.ora-00312错误恢复案例一枚 1.数据库在17日21:19启动开始报错ora-214错误: Tue Jan 17 21:19 ...

  9. centos 中 mongodb 启动失败的修复

    mongodb是使用centos的yum命令安装的,整个的安装过程如下: 1. 运行 yum info mongo-10gen查看是否有mongodb源,如有跳至第3步. 2. 运行 vim /etc ...

随机推荐

  1. Callable和Future详解

    Java程序员必须掌握的线程知识-Callable和Future Callable和Future出现的原因 创建线程的两种方式:继承Thread类和实现Runnable接口 这两种方式都有一种缺陷,执 ...

  2. 动画性能优化-requestAnimationFrame、GPU等

    最近在做一个场景动画,有一个欢迎界面和一个主动画界面,两个界面之间的连接通过一个进度条来完成,当进度条完成,提供通往主动画的按钮. 画面会从一个个的场景移动过去,用户可通过点击抽奖.查看气泡商铺等进行 ...

  3. 搭建Eclipse和MyEclipse的开发环境

    主要步骤: 下载并配置Eclipse 建立并运行一个简单的javaSE项目 下载并破解MyEclipse 整合Eclipse和MyEclipse 开发环境和Tomcat结合 关于这个配置也可以参考:h ...

  4. 对datatable添加数据

    DataTable dt = new DataTable(); dt.Columns.Clear(); dt.Columns.Add("事故发生时间"); dt.Columns.A ...

  5. Rest架构下的增删改查

    首先还是要连接一下什么是Rest, REST是英文representational state transfer(表象性状态转变)或者表述性状态转移;Rest是web服务的一种架构风格;使用HTTP, ...

  6. request发送json-rpc请求

    直接贴代码吧: let url = '/rest/2.0/res/auth_token?session=' + session url += getUrlTokenQuery() const meth ...

  7. [javaSE] 数据结构(二叉查找树-插入节点)

    二叉查找树(Binary Search Tree),又被称为二叉搜索树,它是特殊的二叉树,左子树的节点值小于右子树的节点值. 定义二叉查找树 定义二叉树BSTree,它保护了二叉树的根节点BSTNod ...

  8. [javaSE] 异常捕获

    异常:程序在运行时出现的不正常现象 Throwable |——Error |——Exception 严重级别:Error类和Exception类 异常的处理:try{}catch{}finally{} ...

  9. Linux安装之后需要进行的一些步骤

    查看IP 首先安装后需要查看ip用SSH或者XSHELL来连接Linux,查看ip代码 ifconfig 需要执行 sudo yum install net-tools 命令安装之后 就可以看到ip了 ...

  10. js中数组, JSON的与字符串的处理

    1. JSON转字符串 var jsonStr = {"name": "xiaoming", "sex": "男"} J ...