https://en.wikipedia.org/wiki/Master_boot_record
https://www.cyberciti.biz/faq/howto-copy-mbr/
https://www.cyberciti.biz/faq/linux-clearing-out-master-boot-record-dd-command/
https://wiki.archlinux.org/index.php/Partitioning

要复制MBR,只需使用dd命令。dd命令也适用于所有Linux发行版和其他类UNIX操作系统。
主引导记录(MBR)是512字节的引导扇区,它是硬盘的分区数据存储设备的第一扇区。
MBR总大小: 446 + 64 + 2 = 512

  • 446 bytes - Bootstrap(446 or ...)
  • 64 bytes - 分区表(4 x 16)
  • 2 bytes - 签名(2)

使用$ mbr.backup.file的446字节仅覆盖或恢复/dev/XYZ MBR的引导代码。
使用$ mbr.backup.file的512字节会覆盖或恢复/dev/XYZ 完整MBR(包含引导代码和驱动器的分区表)。

=============
==== dd 命令备份磁盘MBR
$ sudo dd if=/dev/sda of=/tmp/bksdambr.bak bs=512 count=1
dd命令备份恢复MBR;
$ sudo dd if=/tmp/bksdambr.bak of=/dev/sda bs=512 count=1

将备份恢复到任何sdb:命令将保留分区模式,仅恢复446字节的Bootstrap。
$ sudo dd if=/tmp/bksdambr.bak of=/dev/sdb bs=446 count=1
or 或者使用复制的方式
$ sudo dd if=/dev/sda of=/dev/sdb bs=446 count=1

仅还原分区表,跳过mbr
$ sudo dd if=/tmp/bksdambr.bak of=/dev/sda bs=66 skip=446 count=1

==== sfdisk 命令备份主分区表和扩展分区表
它创建一个可以在文本编辑器中读取的文件,或者sfdisk可以使用此文件来还原主分区表或扩展分区表。
要备份分区表/dev/sda,请输入:
$ sudo sfdisk -d /dev/sda > /tmp/sda.bak

要还原,请输入:命令将还原扩展分区。
$ sudo sfdisk /dev/sda < /tmp/sda.bak

==== 完整的操作,比如双硬盘

通过fdisk -l命令能看到2快硬盘,分别是:
$ sudo fdisk -l
Disk /dev/sdb: 223.6 GiB, 240057409536 bytes, 468862128 sectors
Disk model: OCZ-TRION100 (SSD 240Gb固态硬盘)
...
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: WDC WD10JPVT-60A (HDD 1T机械硬盘)
...
$

分别备份MBR和扩展分区架构
1. 备份 SSD(/dev/sdb) 的 MBR
$ sudo dd if=/dev/sdb of=/tmp/bkSSDmbr.bak bs=512 count=1
$ sudo sfdisk -d /dev/sdb > /tmp/bkSSD.sfdisk
2. 备份 HDD(/dev/sda) 的 MBR
$ sudo dd if=/dev/sda of=/tmp/bkHDDmbr.bak bs=512 count=1
$ sudo sfdisk -d /dev/sda > /tmp/bkHDD.sfdisk
注:这里备份文件没有使用(/dev/sda)这样的设备号,原因是使用不同的系统登录,这2个sda和sdb可能会互换。

恢复MBR和扩展分区架构,比如恢复机械硬盘
$ sudo dd if=bkHDDmbr.bak of=/dev/sda
$ sudo sfdisk /dev/sda < bkHDD.sfdisk

==== 删除 MBR...
Option #1: Command to delete mbr including all partitions
Open a terminal and type the following command command to delete everything:
$ sudo dd if=/dev/zero of=/dev/sdc bs=512 count=1

Option #2: Command to delete mbr only
The following command will erase mbr, but not your partitions:
$ sudo dd if=/dev/zero of=/dev/sdc bs=446 count=1
============

https://wiki.archlinux.org/index.php/Partitioning_(简体中文)
https://wiki.archlinux.org/index.php/Partitioning
https://wiki.archlinux.org/index.php/Partitioning#GUID_Partition_Table
https://en.wikipedia.org/wiki/Master_boot_record

查看提取的引导记录

https://blog.csdn.net/mao0514/article/details/51218522

用dd if=/dev/sdc of=/tmp/mbr.bin bs=446 count=1 提取出。

用hexdump -C /tmp/mbr.bin 查看

Linux 系统下使用dd命令备份还原MBR主引导记录的更多相关文章

  1. 【转载】在Linux系统下用dd命令制作ISO镜像U盘启动盘

    #### 将U盘插入USB接口 #umount /dev/sdb* #dd if=/iso存放路径/XXX.iso of=/dev/sdb bs=1M ##### [转载]在Linux系统下用dd命令 ...

  2. 在Linux系统下用dd命令制作ISO镜像U盘启动盘

    http://os.51cto.com/art/201510/494762.htm 首先在 Linux 系统中打开终端,确认 U 盘路径: sudo fdisk -l 使用 dd 命令,格式如下: s ...

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

    Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程 二 18 奶牛 Linux, Ubuntu, Windows 1,885 views查看评论 最近奶牛一直在折腾linux下的gru ...

  4. Linux系统下利用wget命令把整站下载做镜像网站

    Linux系统下利用wget命令把整站下载做镜像网站 2011-05-28 18:13:01 | 1次阅读 | 评论:0 条 | itokit  在linux下完整的用wget命令整站采集网站做镜像 ...

  5. Linux系统下的shutdown命令用于安全的关闭/重启计算机

    Linux系统下的shutdown命令用于安全的关闭/重启计算机,它不仅可以方便的实现定时关机,还可以由用户决定关机时的相关参数.在执行shutdown命令时,系统会给每个终端(用户)发送一条屏显,提 ...

  6. 【Linux】---Linux系统下各种常用命令总结

    在Linux系统下,“万物皆文件”,之所以强调在强调这个概念,是因为很多人已经习惯了win系统下找找点点得那种方式和思维,因此总是会觉得linux系统下很多指令既复杂又难记.其实都是一样得东西,只是w ...

  7. 在Mac OS X系统下 用dd命令将iso镜像写入u盘

    一. Mac下将ISO写入U盘可使用命令行工具dd,操作如下: 1.找出U盘挂载的路径,使用如下命令:diskutil list2.将U盘unmount(将N替换为挂载路径):diskutil unm ...

  8. 电源管理ACPI、及APM、GNU/Linux系统下的相应命令使用

    /*********************************************************************  * Author  : Samson  * Date   ...

  9. 云服务器 ECS Linux 系统下使用 dig 命令查询域名解析

    云服务器 ECS Linux 系统可以使用通常自带的 dig 命令来查询域名解析情况.本文对此进行简要说明. 查询域名 A 记录 命令格式: dig <域名> 比如,查询域名 www.al ...

随机推荐

  1. win7下Oracle库impdp导入dmp

    第一步:创建备份文件存储目录 create or replace directory back_file as 'D:\app\yangxf\back_or_memery_file'; create ...

  2. java的一些基本概念——java11、jdk、jre、jvm等

    Java字节码 先介绍下c语言的编译过程,写好代码用编译器(比如gcc)编译过后是机器能够直接执行的二进制机器码. java也类似这种情况,但是java代码文件编译过后不是任何机器都能识别的机器码,而 ...

  3. freeswitch编译安装,初探, 以及联合sipgateway, webrtc server的使用场景。

    本文主要记录freeswitch学习过程. 一 安装freeswitch NOTE 以下两种安装方式,再安装的过程中遇到了不少问题,印象比较深刻的就是lua库找到不到这个问题.这个问题发生在make ...

  4. vue进行文件下载

    本文为博主原创,未经允许不得转载: 总结一下,最近在vue中实现一个文件下载的功能,用了vue中ajax的方式请求下载接口, 但是返回报错,在网上查询之后,找到用ajax请求下载文件报错的原因:aja ...

  5. 第 8 章 容器网络 - 065 - 容器在 Weave 中如何通信和隔离?

    首先在host2 执行如下命令: weave launch 10.12.31.22 这里必须指定 host1 的 IP 10.12.31.22,这样 host1 和 host2 才能加入到同一个 we ...

  6. Java原生API访问MongoDB

    1.pom.xml <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java ...

  7. vs环境open读写创建

    vs环境openfd = open(save_as_file, O_RDWR|O_CREAT);//创建文件属性为只读fd = open(save_as_file, O_RDWR|O_CREAT, S ...

  8. 关于var time = +new Date;

    文章地址:https://www.cnblogs.com/Raoh/p/4212075.html

  9. 关于IDEA每次修改HTML,Css等静态资源文件都需要重启的设置修改

    ~ ~ ~ ~ ~ 关于IDEA每次修改HTML,Css等静态资源文件都需要重启的设置修改 最近开始使用IDEA进行项目开发,但是对于每次修改HTML文件中css和js文件之后都必须重启服务这件事表示 ...

  10. 关于wincc与博图的安装问题

    博图软件支持西门子1500CPU,但是在step7中不支持. 关于博图与wincc的安装顺序,在很多人觉得是没有安装顺序的,最好的安装顺序是: 先安装wincc,再安装博图 细节问题: 在安装博图时, ...