dd 备份分区表与引导扇区
用 dd 把磁盘开头的一小段数据单独备份成文件,里面包含 MBR 引导代码与分区表。磁盘被误操作(分区工具误删、重装系统写坏引导)后,可以先把磁盘结构信息恢复回来,再处理数据。GPT 磁盘除头部外还有一份备份分区表,用 sgdisk 这类工具做结构化备份比手工 dd 更稳妥。
基本信息
| 适用平台 | Linux(dd 来自 coreutils,sgdisk 来自 gdisk 包) |
|---|---|
| 权限要求 | root,直接读写块设备 |
| MBR 大小 | 前 512 字节(含引导代码与分区表),有扩展分区时需额外备份 |
| GPT 备份 | sgdisk --backup 同时保存主分区表与备份分区表 |
典型使用场景
- 重装或迁移前留一份磁盘结构,出问题时快速恢复分区布局
- 磁盘出现分区表异常时的应急修复,避免整盘重建
- 批量装机前的模板盘结构留档,便于核对分区起点与对齐
- 故障分析:确认分区表的实际内容是否与文档一致
- 恢复演练中的一环:分区结构恢复与数据恢复要分别验证
备份与恢复示例
备份与恢复示例
# MBR:前 512 字节,含引导代码与分区表
dd if=/dev/sda of=/backup/sda-mbr.img bs=512 count=1
ls -l /backup/sda-mbr.img && sha256sum /backup/sda-mbr.img > /backup/sda-mbr.sha256
# GPT:结构化备份主表与备份表(推荐)
sgdisk --backup=/backup/sda-gpt.bin /dev/sda
sgdisk -p /dev/sda > /backup/sda-partitions.txt # 同时留一份可读的分区清单
# 恢复(危险操作,务必反复确认设备名)
# dd if=/backup/sda-mbr.img of=/dev/sda bs=512 count=1
# sgdisk --load-backup=/backup/sda-gpt.bin /dev/sda对象与手段对照
| 对象 | 备份手段 | 恢复后果 |
|---|---|---|
| MBR 引导代码 | dd 前 446 字节 | 只恢复引导代码,分区表不动 |
| MBR 分区表 | dd 前 512 字节 | 分区布局回到备份时点 |
| GPT 分区表 | sgdisk --backup | 主备双表一并恢复 |
| 文件系统数据 | 不在此范围内 | 分区表恢复不等于数据恢复 |
dd 写块设备是不可撤销的破坏性操作:写错设备名会直接覆盖另一块盘的开头。执行前用 lsblk 反复确认设备名,恢复前先对目标盘做一次完整快照或镜像。
备份内容要与文档分开保存:分区结构与实际设备清单(设备名、容量、分区起点)一并留档,恢复前先核对容量与扇区大小是否一致,避免把为 512 字节扇区盘准备的分区表恢复到 4K 扇区盘上。