Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程

二 18

奶牛 Linux, Ubuntu, Windows 1,885 views查看评论

最近奶牛一直在折腾linux下的grub跟grub2,因为前阵子用ghost恢复windows的时候出现错误,导致分区表被破坏,无法进入系统。今天给大家介绍下如何备份跟还原我们的硬盘主引导扇区。首先我来介绍下这个硬盘主引导扇区,因为对于这个主引导记录MBR跟这个硬盘分区表DPT的关系,可能有的朋友还不是那么清晰。

硬盘主引导扇区(硬盘的前512字节) = 硬盘主引导记录(MBR,硬盘的前446字节)+ 硬盘分区表(DPT,MBR后面的66字节)

MBR 446字节(0000–01BD),DPT 64字节(01BE–01FD),结束标志2字节(55 AA)

其中的这个结束标志很重要,如果缺失的话会导致系统无限次重启。

这个主引导记录MBR呢就是我们通常所说的引导程序的一部分,不管是windows还是linux系统,都要在这里写入一部分引导程序。但是这部分引导程序仅仅只是引导程序的一部分,就拿grub的最新版本grub2来说吧,通过mbr引导grub2,然后grub2的引导程序会通过引导来继续到硬盘上的/boot/grub/目录下继续进行引导,这里奶牛会在硬盘或者U盘安装grub的时候说明。

说过MBR,我们再来说说分区表,分区表DPT是在MBR之后的66个字节,最多可以有四个主分区或者三个主分区加一个逻辑分区。而逻辑分区的信息会写在扩展分区开始扇区上。所以,一般只要分区表DPT没出问题,逻辑分区一般不会出问题。

硬盘的主引导扇区都介绍过了,下面说说具体的备份与还原的方法。

这里奶牛是用ubuntu linux下的dd命令来完成的。

备份硬盘的主引导扇区:

dd if=/dev/sda of=./mbr.bak bs=512 count=1

说明if是输入设备,我们这里把第一块硬盘作为输入设备,这里大家需要注意下,有些硬盘不是sda而是hda,大家可以通过

sudo fdisk -l

来查看自己是sd的硬盘还是hd的硬盘。

of为输出的文件名,这里我们输出到了当前目录下的mbr.bak文件中了,大家可以通过pwd命令来查看当前目录的位置。

我们也可以规定它的输出位置为/boot/下,命令为

dd if=/dev/sda of=/boot/mbr.bak bs=512 count=1

还原也用同样的方法

dd if=/boot/mbr.bak of=/dev/sda bs=512 count=1

如果你仅仅要恢复分区表DPT

dd if=/boot/mbr.bak of=/dev/sda bs=1 skip=446 count=66

判断我们备份是否正确的方法是查看备份文件mbr.bak是否为512字节,且结束字节为55 AA。

这里奶牛建议各位经常用ghost还原的朋友,最好将备份文件多存几处备份,因为想一下,如果分区表错误了,我们的分区信息可能都无法读出,所以存在硬盘内的分区表备份可能也就无法拿来还原了。所以嘛,多存网上或者U盘内一份备份奶牛觉得是有必要的。希望本文对大家有所帮助。

Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程的更多相关文章

  1. 【转载】 硬盘主引导记录(MBR)及其结构详解

    硬盘的0柱面.0磁头.1扇区称为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录(MBR).该记录占用512个字节,它用于硬盘启动时将系统控制权交给用户指定的,并在分区表中登记了的某个操作系统 ...

  2. (转)硬盘结构,主引导记录MBR,硬盘分区表DPT,主分区、扩展分区和逻辑分区,电脑启动过程

    硬盘结构硬盘有很多盘片组成,每个盘片的每个面都有一个读写磁头.如果有N个盘片.就有2N个面,对应2N个磁头(Heads),从0.1.2开始编号.每个盘片的半径均为固定值R的同心圆再逻辑上形成了一个以电 ...

  3. 主引导记录MBR/硬盘分区表DPT/主分区、扩展分区和逻辑分区/电脑启动过程

    主引导扇区主引导扇区位于整个硬盘的0柱面0磁头1扇区{(柱面,磁头,扇区)|(0,0,1)},bios在执行自己固有的程序以后就会jump到MBR中的第一 条指令.将系统的控制权交由mbr来执行.主引 ...

  4. Linux下远程备份、上传工程,重启服务器

    Linux下远程备份.上传工程,重启服务器 Linux服务器实现远程,原项目的备份.删除,新项目上传,以及远程重启服务器!分成一个主shell调用三个shell文件步骤完成.mainsh.sh一次按顺 ...

  5. Linux下自动备份MySQL数据库并上传到远程FTP服务器

    Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明:  1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...

  6. 在linux下手动安装 apache, php, mysql--终极版

    在linux下手动安装 apache, php, mysql: 参考: http://www.cnblogs.com/lufangtao/archive/2012/12/30/2839679.html ...

  7. Linux下定时备份MySQL数据库的Shell脚本

    Linux下定时备份MySQL数据库的Shell脚本   对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间 ...

  8. Linux下自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...

  9. 主引导记录MBR

    作者:马 岩(Furzoom) (http://www.cnblogs.com/furzoom/)版权声明:本文的版权归作者与博客园共同所有.转载时请在明显地方注明本文的详细链接,未经作者同意请不要删 ...

随机推荐

  1. 原生js 的ajax封装

    /** * 封装ajax函数(包括跨域) * @method ajax * @param option :{type:"post" or "get" 请求方式, ...

  2. django 数据库建表流程,与表结构

    目录 配置数据库 创建表结构 多表关连的设置 自创建关联表方法 自建表 和 ManyToManyField 联合使用 配置数据库 在Django项目的settings.py文件中,配置数据库连接信息: ...

  3. DOM事件-冒泡、捕获、传播、委托

    事件捕获 以点击事件为例事,同类型事件会由根元素开始触发,向内传播,一直到目标元素.从外到内依次触发:根—目标的祖先素—目标的父元素—目标元素. 事件冒泡 根事件捕获截然相反.发生点击事件时,事件会从 ...

  4. link-1-STL 标准模板库

    STL(Standard Template Library,标准模版库)是C++语⾔言标准中的重要组成部分.STL以模板类和模版函数的形式为程序员提供了了各种数据结构和算法的实现,程序员吐过能够充分的 ...

  5. 类variant解剖

    说明:由于代码较为庞大,类variant源码请参考\eos\libraries\fc\src中的variant.hpp与variant.cpp文件^_^.     首先概览一下这个庞大的类,细数一下, ...

  6. 递归遍历树形json

    前置知识: 1.首先 js里面“万物皆对象” 2.递归:自己调用自己(递归的优缺点:https://www.cnblogs.com/tchjs/p/4428153.html  https://www. ...

  7. shell编程 条件判断式----利用 if .... then ----多重

    条件判断式----利用 if .... then ----多重 在同一个数据的判断中,如果该数据需要进行多种不同的判断时,应该怎么作?举例来说,上面的 sh06.sh 脚本中,我们只要进行一次 $yn ...

  8. bzoj1095: [ZJOI2007]Hide 捉迷藏 动态点分治学习

    好迷啊...感觉动态点分治就是个玄学,蜜汁把树的深度缩到logn (静态)点分治大概是递归的时候分类讨论: 1.答案经过当前点,暴力(雾)算 2.答案不经过当前点,继续递归 由于原树可以长的奇形怪状( ...

  9. oracle rollback 观察时间

    ###########issue 0: db alert 有如下提示, thread 1 cannot allocatete new log, sequenec 1111 通过检查v$log ,发现1 ...

  10. .net C#实现 中文转Unicode、Unicode转中文 及与js对应关系

    中文转Unicode:HttpUtility.UrlEncodeUnicode(string str); 转换后中文格式:"%uxxxx"  举例:"柳_abc123&q ...