Linux MBR扇区误删恢复
如果MBR分区表没了,你有备份的话直接恢复就好。如果没有...恭喜你。。。
如果是前446字节的引导记录丢了,你有备份的话,直接恢复就好。如果没有,那就从另一台相同的主机上cp一份就好了。
我这里使用虚拟机进行测试。
1. 引导记录误删恢复
我这里用CentOS7系统操作(一块硬盘)
1.1 备份引导记录
[root@www ~]# dd if=/dev/sda of=/loader.back bs=446 count=1
1+0 records in
1+0 records out
446 bytes (446 B) copied, 0.00021032 s, 2.1 MB/s
[root@www ~]# ls -lh /loader.back
-rw-r--r-- 1 root root 446 Apr 8 21:07 /loader.back
1.2 误删引导记录
[root@www ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1
1+0 records in
1+0 records out
446 bytes (446 B) copied, 0.000247003 s, 1.8 MB/s
# 然后重启
[root@www ~]$ reboot
1.3 恢复引导记录
哟,进不去了。

(1)关闭主机,然后挂载光盘

(2)进入BIOS,反正不是f2就是f12,或者Delete,设置优先级,然后f10保存

记得这个是亮的啊。。。不是就右键连接

(3)进入修复模式


当然选1咯

直接回车

系统已经被挂到/mnt/sysimage/下了,进去把。

如果这一步你chroot进不去...可能是你的分区表坏了,或者其他原因。
(4)恢复mbr引导记录
bash-4.2# dd of=/loader.back of=/dev/sda bs=446 count=1

然后退出(exit),重启(reboot)(记得把BIOS启动顺序改回来,为Hard Drive第一个,这一步我就不截图了)
然后...就没然后了,就好了。

如果啊,你忘记了备份,被担心,你将那块磁盘卸下来,插到另一台之主机上,然后通过
dd if=dev/sda of=/dev/sdb count=1 bs=446进行恢复,但是注意,这里的/dev/sdb是你那块有问题的磁盘。并且你这块/dev/sda硬盘必须是好的,而且与之版本相同。否则可能会出现另外的问题。
2. 分区表误删恢复
我这里用CentOS7系统操作(一块硬盘)。
对于分区表,如果你做了备份,那没问题。如果没有备份...我也不知道咋解决了。。。
2.1 备份分区表
[root@www ~]# dd if=/dev/sda of=/root/partition_table.back skip=446 bs=64 count=1
1+0 records in
1+0 records out
64 bytes (64 B) copied, 0.00020132 s, 318 kB/s
注意了啊,这个备份文件一定是备份在远程服务器的,因为你的分区表已经坏了,找都找不到了。你存在本地有何意义。。。
2.2 误删分区表
[root@www ~]$ dd if=/dev/zero of=/dev/sda skip=446 bs=64 count=1
[root@www ~]$ reboot

哟。。。又坏了。
2.3 恢复分区表
# 1. 将磁盘卸载
# 2. 将磁盘挂载到远程服务器
# 3. 然后用dd恢复
[root@www ~]# ls
partition_table.back
# 我这是远程服务器
[root@www ~]# dd if=./partition_table.back of=/dev/sdb seek=446 bs=64 count=1
1+0 records in
1+0 records out
64 bytes (64 B) copied, 0.00102179 s, 62.6 kB/s
然后,就可以卸载磁盘,放回原来的服务器里。
然后。

这。。。出毛病了。。。
是不是引导记录出毛病了。。。我赶紧将磁盘插回远程服务器,然后dd if=/dev/sda of=/dev/sdb bs=446 count1,将引导记录恢复了以下。然后。。。然后就好了。。。

看了看,原来是命令搞错了。。。再[2.2 误删分区表](# 2.2 误删分区表)这一步命令敲错了。skip是跳过输入文件的block,而seek才是跳过输出文件的block,所以我那一步其实是删除了引导记录。。。
其实把,你以后直接使用dd if=/dev/sda of=~/mbr.back bs=512 count=1就好了,不管是分区表坏了,还是引导记录坏了,使用dd if=~/mbr.back of=/dev/sda bs=512 count1恢复就好了。所以啊。一定要备份,不然就凉凉了。
最后,虽然这是在虚拟机上做的,但在真实环境,确实是这样的。
Linux MBR扇区误删恢复的更多相关文章
- linux 下文件误删恢复
linux 下文件误删恢复 0x01 事件背景 某天晚上写代码的时候,本来想删除当前目录下一个叫xxx的文件夹 rm -rdf ./xxx/*, 结果光顾着和人说话,一不留神手贱把命令敲成了rm -r ...
- Linux修复MBR扇区故障
给虚拟机增加一块硬盘,用于备份mbr的信息 fdisk -l 查看硬盘系统是否认识 fdisk /dev/sdb 进行分区 fdisk -l 查看分区是否出来 mkfs -t ext4 /dev/sb ...
- linux extundelete 删除文件恢复
extundelete是基于Linux的一个数据恢复工具,它通过分析文件系统的日志,解析出所有文件的inode信息,从而可以恢复Linux下主流的ext3,ext4文件系统下被误删除的文件. [问题案 ...
- Linux下文件误删除恢复案例
说明:将/etc/profile文件删除,然后恢复 在linux中为什么讲文件删除还能恢复呢? 详见:文件删除原理 http://blog.csdn.net/grantlee1988/article/ ...
- Linux服务器数据备份恢复策略
一.Linux 备份恢复基础 1.什么是备份 最简单的讲,备份数据的过程就是拷贝重要的数据到其他的介质之上(通常是可移动的),以保证在原始数据丢失的情况下可以恢复数据.一次备份可能是简单的 cp命令, ...
- Linux-系统启动与MBR扇区修复
目录 1.系统启动过程 1.1 MBR扇区 1.2 MBR扇区的备份与还原 1.3 修复MBR 1.3.1 dd备份MBR信息 1.3.2 光驱启动修复 1.4 grub引导代码修复 1.系统启动过程 ...
- linux篇-Linux MBR分区、挂载操作步骤,逻辑卷扩容操作
Linux MBR分区.挂载操作步骤,逻辑卷扩容操作 服务器开机之后,能自动识别出硬盘,但是硬盘不能够存储数据,必须对硬盘进行分区.格式化.挂载后才能使用:linux主分区和拓展分区总数不能超过4个 ...
- 在Linux操作系统下备份恢复技术的应用 转自https://yq.aliyun.com/articles/50205?spm=5176.100239.blogcont24250.9.CfBYE9
摘要: 安全防护:在Linux操作系统下备份恢复技术的应用 原文参见:http://linux.chinaunix.net/techdoc/system/2005/12/19/925898.shtm ...
- 团队项目管理:Github项目误删恢复记录
参考: 准备更换git托管,如何迁移原git仓库 Github项目误删恢复记录 今天正常上线打卡,发现组织的线上Github仓库被误删了..本来是一场悲剧,所幸在本地的垃圾箱中翻出了还没有删除的本地仓 ...
随机推荐
- 一个封存Id与状态对应键值的神器,BigInteger的setBit和testBit用法实例
1,首先描述一下应用场景 比如,我们要对菜单做权限,控制不同角色菜单显示与不显示,角色为经理时,我们需要菜单id为 4,7,13,24的菜单显示,别的菜单不显示. 就是说,这时候我们要把4,7,13, ...
- MySQL连接查询(多表查询)
基本含义 连接就是指两个或两个以上的表(数据源) “连接起来成为一个数据源”. 连接语法的基本形式:from 表1 [连接方式] join 表2 [on 连接条件]; 连接的结果可以当做一个“表”来使 ...
- android 按照拼音模糊查询中如何把字符转换成拼音
http://files.cnblogs.com/liaolandemengxiang/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9.rar 首先转换成的 ...
- redis简单使用
主要参考资料:http://wiki.jikexueyuan.com/project/redis-guide/data-type.html一.redis 安装1.在官网下载安装包2.解压安装包 tar ...
- MCU编程_基础
包含头文件符号的区别 有这样的包含头文件语句 #include <reg52.h> #include"reg52.h" 两者区别在于: <>:编译器先进入软 ...
- cxgrid过滤使用心得
uses cxFilter; cxgrid过滤条件清除:cxgrdbtblvwGrid1DBTableView2.DataController.Filter.AutoDataSetFilter:=Tr ...
- ASP.NET微信公众号用于给指定OpenId用户发送红包
ASP.NET微信公众号用于给指定OpenId用户发送红包 微信公众号要实现对指定用户发送红包,必须指定一个存放兵发放金额的商户号,在微信商户平台里面申请商户号并获取相关参数例如发送红包所要用到的安全 ...
- WPF 分享一种背景动画效果
今天看微软的一个Samples,发现一个蛮好玩的背景样式,如下图所示: 风格比较卡哇伊. <Window x:Class="WPFSamplesTest.MainWindow" ...
- 【vue】项目编译报错‘npm ERR! **@**dev: `webpack-dev-server --inline --progress --config ’’
关于npm ERR! **@**dev: `webpack-dev-server --inline --progress --config‘ 原因:这是新版webpack存在的BUG,卸载现有的新版本 ...
- python中硬要写抽象类和抽象方法
由于python没有抽象类.接口的概念,所以要实现这种功能得abc.py这个类库,具体方式如下: # coding: utf-8import abc #抽象类class StudentBase(obj ...