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. 破解微信防盗链&微信公众号文章爬取方案

    破解微信图文防盗链:https://www.cnblogs.com/xsxshmily/p/8000043.html 图片解除防盗链:https://blog.csdn.net/show_ljw/ar ...

  2. Redis主主复制、主从复制

    Redis主从复制(master-slaves配置)可以更好地读写分离 先关防火墙 主(master)服务器先不做任何操作, 进入从(slave)服务器, redis-3.2.1目录下的redis.c ...

  3. [CodeForces - 463B] Caisa and Pylons

    题目链接:http://codeforces.com/problemset/problem/463/B 求个最大值 AC代码: #include<cstdio> #include<c ...

  4. (转载)Unity UGUI点击不同Button执行不同的方法(无参方法)

      将脚本随意挂在任何位置 但是这个btnParent一定是 按钮的父节点   脚本很简单自己敲一遍就全都明白了 上脚本 OnClickTest using UnityEngine; using Un ...

  5. ado.net 批量添加 更新 删除

    自曾列就别往下看 别折腾了   使用 SqlBulkCopy ,dataTable 必须跟sql里面的表字段完全一样 下面在sqlserver中演示 mysql 请google MySqlBulkLo ...

  6. 简单的class及运算符重载

    #include <iostream> #include <vector> #include <algorithm> using namespace std; cl ...

  7. pipenv使用总结

    一.pipenv默认虚拟环境路径在用户目录下的.\virtualenvs下,不同虚拟环境目录不同,如果要更改为在当前项目根目录下,可以在项目根目录下手动创建.venv目录. 1.linux环境下设置环 ...

  8. leetcode-algorithms 目录

    leetcode算法目录 题号 链接 难度等级 36 leetcode-algorithms-36 Valid Sudoku medium 35 leetcode-algorithms-35 Sear ...

  9. 如何解决ORA-28002 the password will expire within 7 days问题(密码快过期)

    1.问题描述: 今天登陆pl/sql工具时,提示 ORA-28002 the password will expire within 7 days 2.问题原因: oracle11g中默认在defau ...

  10. linux下read命令详解

    要与Linux交互,脚本获取键盘输入的结果是必不可少的,read可以读取键盘输入的字符. read [-rs] [-a ARRAY] [-d delim] [-n nchars] [-N nchars ...