sfdisk -d 可导出源盘完整分区表为可重放脚本,含标签、类型、扇区位置等;需 root 权限,输出含 label、start、size 等字段,支持 GPT UUID/name 保留;还原时先清空再写入目标盘。

直接用 sfdisk -d 可以把源盘的完整分区表(含标签、类型、起始/结束扇区、大小、对齐等)导出为可重放的文本脚本,这是自动化克隆最可靠的基础。
导出分区结构到文本文件
执行以下命令即可生成标准、可复用的分区描述:
sfdisk -d /dev/sda > sda_partition_layout.txt- 输出内容包含磁盘标签类型(如 gpt 或 dos)、单位声明、每个分区的详细参数(start、size、type、name、uuid 等),且默认以扇区为单位,与底层物理布局严格一致
- 注意:需以 root 权限运行;目标盘无需存在,该命令只读取源盘元数据
验证导出内容是否可用
导出后建议快速检查关键字段是否完整:
- 开头是否有
label: gpt或label: dos行 —— 决定目标盘初始化方式 - 每条分区行是否含
start=和size=(或end=),避免依赖模糊的“+size”语法 - 若含
uuid=或name=,说明支持 GPT 属性保留;MBR 下 name 字段会被忽略,但无害
在克隆脚本中安全还原分区表
将备份文件用于目标盘时,核心是「清空旧表 + 重写新表」,不触碰数据区:
- 先用
sfdisk --delete /dev/sdb清除目标盘现有分区(可选,sfdisk -f 会自动覆盖) - 再执行
sfdisk /dev/sdb —— 此操作仅写入分区表,不格式化也不拷贝数据 - 加
-f参数强制写入(如目标盘已有分区表):sfdisk -f /dev/sdb - 成功后运行
partprobe /dev/sdb或重启内核识别(多数现代系统自动完成)
注意事项与常见避坑点
看似简单,但几个细节决定成败:
- 源盘和目标盘容量必须满足:所有分区
end扇区 ≤ 目标盘总扇区数,否则 sfdisk 会报错退出 - 若目标盘更大,
sfdisk -d导出的脚本仍按原尺寸写入,剩余空间需后续用growpart或resize2fs扩展 - 不要手动编辑导出文件中的
start和size值——除非你精确计算过扇区对齐(如 2048 扇区边界),否则易导致性能下降或启动失败 - 对于 LVM 或加密卷,
sfdisk -d只保存底层物理分区结构,LV/luks 层需单独处理

















