补充说明
sfdisk 是 util-linux 提供的分区表工具,与交互式的 fdisk 互补:它从标准输入或文件读取分区描述,也支持把整张分区表 dump 成可重新载入的脚本,因此适合批量部署、镜像制作和备份恢复。它同时支持 MBR(dos)和 GPT 分区表。
典型用法是“备份—恢复”分区布局:先用 -d 导出,再把它喂给另一块磁盘。也可以用 label: gpt 之类的脚本从零建立分区表,或用 -l 只做查看。
修改分区表属于高风险操作,务必确认设备名(/dev/sda 与 /dev/sdb 弄反是常见事故),并保证目标磁盘没有被挂载使用。新版 sfdisk(util-linux 2.26 起)的脚本格式与老版本不兼容,旧脚本迁移时需要改写。
语法
sfdisk [选项] 设备
sfdisk [选项] 设备 < 分区脚本
选项
-l, --list:列出指定设备或所有磁盘的分区表-d, --dump:以可重放的脚本格式输出分区表-f, --force:强制执行,忽略一些安全检查-u, --unit 单位:指定显示单位,如sectors、cylinders-J, --json:以 JSON 格式输出-N, --partno 编号:只修改指定分区--no-reread:修改后不请求内核重新读取分区表-o, --output 字段:自定义-l输出的列
实例
# 查看 sda 的分区表
sfdisk -l /dev/sda
# 备份分区表到文件
sfdisk -d /dev/sda > /root/sda-partitions.bak
# 把备份的分区布局恢复到另一块磁盘
sfdisk /dev/sdb < /root/sda-partitions.bak
# 为 sdb 建立 GPT 分区表(脚本从标准输入读取)
echo 'label: gpt' | sfdisk /dev/sdb
# 让内核重新读取 sdb 的分区表
partprobe /dev/sdb