Linux 系统下使用dd命令备份还原MBR主引导记录
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主引导记录的更多相关文章
- 【转载】在Linux系统下用dd命令制作ISO镜像U盘启动盘
#### 将U盘插入USB接口 #umount /dev/sdb* #dd if=/iso存放路径/XXX.iso of=/dev/sdb bs=1M ##### [转载]在Linux系统下用dd命令 ...
- 在Linux系统下用dd命令制作ISO镜像U盘启动盘
http://os.51cto.com/art/201510/494762.htm 首先在 Linux 系统中打开终端,确认 U 盘路径: sudo fdisk -l 使用 dd 命令,格式如下: s ...
- Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程
Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程 二 18 奶牛 Linux, Ubuntu, Windows 1,885 views查看评论 最近奶牛一直在折腾linux下的gru ...
- Linux系统下利用wget命令把整站下载做镜像网站
Linux系统下利用wget命令把整站下载做镜像网站 2011-05-28 18:13:01 | 1次阅读 | 评论:0 条 | itokit 在linux下完整的用wget命令整站采集网站做镜像 ...
- Linux系统下的shutdown命令用于安全的关闭/重启计算机
Linux系统下的shutdown命令用于安全的关闭/重启计算机,它不仅可以方便的实现定时关机,还可以由用户决定关机时的相关参数.在执行shutdown命令时,系统会给每个终端(用户)发送一条屏显,提 ...
- 【Linux】---Linux系统下各种常用命令总结
在Linux系统下,“万物皆文件”,之所以强调在强调这个概念,是因为很多人已经习惯了win系统下找找点点得那种方式和思维,因此总是会觉得linux系统下很多指令既复杂又难记.其实都是一样得东西,只是w ...
- 在Mac OS X系统下 用dd命令将iso镜像写入u盘
一. Mac下将ISO写入U盘可使用命令行工具dd,操作如下: 1.找出U盘挂载的路径,使用如下命令:diskutil list2.将U盘unmount(将N替换为挂载路径):diskutil unm ...
- 电源管理ACPI、及APM、GNU/Linux系统下的相应命令使用
/********************************************************************* * Author : Samson * Date ...
- 云服务器 ECS Linux 系统下使用 dig 命令查询域名解析
云服务器 ECS Linux 系统可以使用通常自带的 dig 命令来查询域名解析情况.本文对此进行简要说明. 查询域名 A 记录 命令格式: dig <域名> 比如,查询域名 www.al ...
随机推荐
- leetcode 编译问题:Line x: member access within null pointer of type 'struct TreeNode'
参考: LEETCODE 中的member access within null pointer of type 'struct ListNode' 解决 leetcode 编译问题:Line x: ...
- .NET Core 配置GC工作模式与内存的影响
.NET Core 配置GC工作模式与内存的影响 .NET Core GC 原文:https://blog.markvincze.com/troubleshooting-high-memory-usa ...
- JxBrowser之五:清除cache和cookie以及SSL证书处理
1.清除cache和cookie //清除cache browser.getCacheStorage().clearCache(); browser.getLocalWebStorage().clea ...
- 【转】 C++析构函数的作用和用法
转自:https://www.cnblogs.com/puyangsky/p/5319470.html 一.定义1. 作用:对象消亡时,自动被调用,用来释放对象占用的空间2.特点: (1) 名字与 ...
- 【警告】WARN: Establishing SSL connection without server's identity verification is not recommended.
1.Java访问Mysql时出现如下警告: 2019-04-02 10:30:50.545 INFO 1290 --- [nio-8080-exec-1] com.zaxxer.hikari.Hika ...
- Linux下执行.sh命令出现-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory
原因是 文件的格式是dos,修改为unix 就OK了 查看文件格式 用vim 打开出错的文件 按 ESC键 再按shift+冒号 输入 set ff 回车 可以看见 该文件 ...
- 中国历史人物传记数据库 CBDB 若干表简介
''' 推荐使用SQLite版本的CBDB数据库 推荐使用SQlite Studio进行数据库的操作 免费,可视化操作,轻量级应用,无需配置,学习扩展性好,非常适合广大历史系学生. ''' 一 人物基 ...
- iOS分类底层实现原理小记
摘要:iOS分类底层是怎么实现的?本文将分如下四个模块进行探究分类的结构体编译时的分类分类的加载总结本文使用的runtime源码版本是objc4-680文中类与分类代码如下//类@interfaceP ...
- maven--插件篇(assembly插件)
maven-assembly可以通过dependencySets将依赖的jar包打到特定目录. 1. 简介 简单的说,maven-assembly-plugin 就是用来帮助打包用的,比如说打出一个什 ...
- Java线程池ThreadPoolExecutor&&Executors
一.先看看传统的开启线程. new Thread(new Runnable() { @Override public void run() { } }).start(); 缺点: 1.每次new Th ...