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. Java基础学习-常用的dos命令

    打开控制台(win+R,然后cmd回车)   常用命令:         d:回车    盘符切换         dir(directory):列出当前目录下的文件以及文件夹         cd( ...

  2. java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory

    运行servler报错 java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory 或 java.lan ...

  3. HDU 5279 YJC plays Minecraft(NTT+分治)

    题意 有 \(n\) 个岛屿,第 \(i\) 个岛屿上有一张 \(a_i\) 的完全图.其中第 \(i\) 张完全图的 \(a_i\) 号节点和 \(i+1\) 号岛屿的 \(1\) 号节点有边相连( ...

  4. js弹出对话框的三种方式(转)

    原文地址:https://www.jb51.net/article/81376.htm javascript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prom ...

  5. [Spring MVC] 取控制器返回的ModelAndView/Map/Model/Request的对象

    ${key }页面可取, <input value="${key}"> 或者<%=request.getParameter("key")%&g ...

  6. fcn+caffe+voc2012实验记录

    参考博客: http://blog.csdn.net/haoji007/article/details/77148374 http://blog.csdn.net/jacke121/article/d ...

  7. ionic3使用cnpm可能会出现的问题

    在跑一个ionic3项目的时候发现,新建的页面无法被识别,总是报错 cannot find modules '../pages/login/login.modules' 在排除多种可能性后,确定了是因 ...

  8. Bilinear CNN与 Randomly Wired Neural Network

    最近主要学习了两篇论文以及相关的代码. 1.Bilinear CNN 这篇论文主要是在细粒度分类上应用的,在全连接层之前,在所有的卷积计算完成之后,进行的Bilinear计算,关键的代码如下: def ...

  9. vscode wechat settings.json

    // { // "window.zoomLevel": 0, // "editor.fontSize": 16, // "files.associat ...

  10. windows下《Go Web编程》之Go环境配置和安装

    <Go Web编程>笔者是基于unix下讲述的,作为入门练手,我选择在windows下开发,全程按照目录进行... 一.安装 windows下需要安装MinGW,通过MinGW安装gcc支 ...