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 各种启动文件损坏及修复的更多相关文章
- Centos 7服务启动文件
在Centos 7中,如果要编辑一个脚本服务文件,并使用systemd进行管理,则必须将服务文件命名为/etc/systemd/system/*.service. service unit文件中的选项 ...
- ORA-01578 data block corrupted 数据文件损坏 与 修复 (多为借鉴 linux)
好吧,先说说造成崩溃的原因: 使用redhat 5.9 Linux 作为数据库服务器, 周五数据库正在使用中,硬关机造成数据库文件部分损坏(周一上班时,应用程序启动不起来,查看日志文件时,发现一个数据 ...
- MS Sql Server 数据库或表修复(Log日志文件损坏的修复方法)
----------------- [1] use master go sp_configure reconfigure with override go ----------------- [2] ...
- Linux服务器断电导致挂载及xfs文件损坏的修复方法
系统文件损坏后进入紧急修复模式,无法进行维护工作 welcome to emergency mode!after logging in ,type "journalctl -xb" ...
- 由于OCR文件损坏造成Oracle RAC不能启动的现象和处理方法
v$cluster_interconnects 集群节点间通信使用的IP地址 错误信息 使用了公网进行连接 SQL> select * from v$cluster_interconnects; ...
- mysql启动后随即关闭问题解决(ibdata1文件损坏导致)
机房一台服务器上的mysql运行一段时间了,突然出现了一个很奇怪的现象:重启后无法恢复了!准确情况是:启动mysql后随即就又关闭了. 查看mysql错误日志如下: 160920 22:41:41 m ...
- 【教程】教你解决“Windows 资源保护找到了损坏文件但无法修复其中某些文件”的问题【转载】
转载:http://www.cystc.org/?p=2827 很多人都会用sfc /scannow来解决系统文件损坏的问题,但有时也会遇到连sfc都无法修复的情况,最常见的就是出现“Windows ...
- Oracle备份恢复之断电导致控制文件和日志文件损坏修复
Oracle数据库遭遇断电遭遇ora-00214.ora-00314.ora-00312错误恢复案例一枚 1.数据库在17日21:19启动开始报错ora-214错误: Tue Jan 17 21:19 ...
- centos 中 mongodb 启动失败的修复
mongodb是使用centos的yum命令安装的,整个的安装过程如下: 1. 运行 yum info mongo-10gen查看是否有mongodb源,如有跳至第3步. 2. 运行 vim /etc ...
随机推荐
- 微服务Kong(五)——添加一个用户(Consumer)
在本节中,我们将学习如何添加一个用户(consumer)到KONG实例中.用户是与使用您的API的个人相关联,可用于跟踪,访问管理等. NOTE:本节假设您已经正确启用了密钥验证插件.如果没有,请参考 ...
- Struts dispatchAction
在Struts中定义动态Action,不用定义多个Action,可以实现一个action,多个跳转. 在定义时,继承DispatchAction,并定义parameter的名字 在jsp页面选择act ...
- 设置主外键时 ORA-02298: 无法验证 - 未找到父项关键字 --NOVALIDATE;
主要原因是: 在添加CONSTRAINT的时候,默认是需要VALIDATE表中的已有数据的. 你要插入的表A里,有外键连接到另一个表B的主键,你在表A的外键列插入的值,在表B的主键列找不到就不能插入. ...
- 【angular5项目积累总结】遇到的一些问题以及解决办法
1.项目中字符串特别是\r\n,替换成br之后,在页面换行无法生效? 答:绑定元素 innerHTML. <div class="panel-body" [innerHTML ...
- jsonp全国天气案例
案例1: 1.获取跨域数据 2.将数据按照下面的效果放到body里面 key: f49570d39b02b3c203526b5d8255aa61 079179afb105ce2bae9f5d0 ...
- Eclipse常用快捷键之代码编辑篇
Eclipse是Java开发常用的IDE工具,熟练使用快捷键可以提高开发效率,使得编码工作事半功倍,下面介绍几种常用的代码编辑和补全工具 重命名快捷键:Alt+Shift+R 可用于类名,方法名,属性 ...
- Linq学习以及简单用法
Linq学习 Linq(language Intergrated Query)即语言集成查询 LINQ是一组语言特性和API,使得你可以使用统一的方式编写各种查询.用于保存和检索来自不同数据源的数据, ...
- MYSQL登录错误:mysqladmin: connect to server at ‘localhost’ failed
一.mysql登录错误 mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user ...
- JS 教程
1简介 1.JavaScript 是脚本语言 1.1轻量级的编程语言 1.2可插入 HTML 页面的编程代码 1.3可由所有的现代浏览器执行 2.您将学到什么 2.1JavaScript:写入 HTM ...
- Java - 枚举与注解
Enumeration 于Java 1.5增加的enum type... enum type是由一组固定的常量组成的类型,比如四个季节.扑克花色. 在出现enum type之前,通常用一组int常量表 ...