sfdisk 中文手册

发布于 2021-10-25 11:09:37 字数 5007 浏览 1361 评论 0

原文:http://www.jinbuguo.com/man/sfdisk.html

名称

sfdisk - 分区表操作工具

语法

sfdisk [options] command

描述

sfdisk 是一个专用于脚本环境的分区表操作工具。

从 2.26 版本开始,sfdisk 可以正确处理 MBR 与 GPT 格式的分区表,但是不再提供 CHS(Cylinder-Head-Sector) 功能。

从 2.26 版本开始,sfdisk 可以自动对齐分区。

命令(COMMANDS)

[-N partition-number] device

按照从标准输入读取的分区表,在指定的块设备上创建分区表。
这是 sfdisk 的默认命令。具体的输入格式见下文。
如果标准输入是一个终端,那么将开启一个交互式会话。

可以使用 -N 参数表示仅修改指定编号的分区(其他编号的分区保持不变)。
注意,可以在 -N 后面指定一个当前块设备上并不存在的分区编号,
这常用于添加一个新分区,参见 --append 选项。

-A, --activate device [partition-number...]

打开指定分区的启动标记(仅可用于MBR分区表)。
若未指定任何分区,则列出所有已开启此标记的分区。

--delete device [partition-number...]

删除指定/全部的分区。

-d, --dump device

按照 sfdisk 的输入格式导出指定块设备的现有分区表。参见下面的"分区表备份"小节。

-J, --json device

按照 JSON 格式导出指定块设备的现有分区表。注意,sfdisk 不能将此格式作为输入格式。

-l, --list [device...]

列出指定/全部块设备的分区表。

-F, --list-free [device...]

列出指定/全部块设备上尚未被分区的剩余空间。

--part-attrs device partition-number [attributes]

修改指定GPT分区的属性。如果未指定"attributes"参数,那么表示显示指定GPT分区的属性。
"attributes"是一个逗号或空格分隔的属性/bit列表。
可以使用的属性如下:RequiredPartition, NoBlockIOProtocol, LegacyBIOSBootable
可以使用的bit如下:48~63
例如"RequiredPartition,50,51"表示设置了3个属性位。

--part-label device partition-number [label]

修改指定GPT分区的名称(标签)。如果未指定"label"参数,那么表示显示指定GPT分区的名称(标签)。

--part-type device partition-number [type]

修改指定分区的类型。如果未指定"type"参数,那么表示显示指定分区的类型。
对于MBR分区表来说,"type"是一个十六进制数;
对于GPT分区表来说,"type"是一个 GUID 。

--part-uuid device partition-number [uuid]

修改指定GPT分区的 UUID 。如果未指定"uuid"参数,那么表示显示指定GPT分区的 UUID 。

-r, --reorder device

按照各分区的起始扇区,对现有分区进行重新编号。

-s, --show-size [device...]

列出指定/全部块设备的大小。

-T, --list-types

列出所有支持的分区类型。建议与 --label 选项一起使用(默认为"dos")。

-V, --verify [device...]

校验指定/全部块设备的分区表正确性。

选项(OPTIONS)

-a, --append

仅在现有的分区表上添加新分区,而不是创建一个全新的分区表。

-f, --force

禁用所有一致性检查。强制执行看上去明显的错误动作。

-n, --no-act

模拟操作(并不真正写入块设备)。

--no-reread

当被操作的块设备正在被使用的时候,不在操作完成后重新读取它的新分区表。

--no-tell-kernel

不通知内核分区表的变化。常与 --no-reread 选项一起使用,以修改正在使用中的块设备。
注意,这种情况下不应该挂载被修改的分区。

-o, --output list

仅输出指定的字段。可以使用 --help 选项查看所有可用字段。

对于GPT分区表来说可以使用的字段如下:
Device Start End Sectors Size Type Type-UUID Attrs Name UUID

对于MBR分区表来说可以使用的字段如下:
Device Start End Sectors Cylinders Size Type Id Attrs Boot End-C/H/S Start-C/H/S

注意,"+"前缀表示在默认字段上添加一个新字段。例如"+UUID"。

-q, --quiet

不显示所有多余的信息

-X, --label {dos|gpt}

指定分区表的类型。如果未明确指定此选项,那么表示使用块设备上的现有类型。
如果现有块设备上不存在分区表,那么默认为 dos 类型(MBR)。

-v, --version

打印版本信息并立即退出

-h, --help

打印帮助信息并立即退出

输入格式

sfdisk 的输入格式由可选的"头行"与必须存在的"分区行"两部分组成。
"头行"与"分区行"之间必须使用一个空行分隔。
一个典型的例子如下:

label: gpt
label-id: 77326B6F-4C53-47F2-B919-0A2FC12DB829
device: /dev/sda
unit: sectors
first-lba: 2048
last-lba: 41943006

/dev/sda1 : start= 2048, size= 1046528, type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B, uuid=697765CD-6A84-44BA-8507-2492614F9CE4, name="boot", attrs="RequiredPartiton NoBlockIOProtocol LegacyBIOSBootable GUID:60,62,63"
/dev/sda2 : start=1048576, size= 1048576, type=933AC7E1-2EB4-4F13-B844-0E14E2AEF915, uuid=3442AB51-6E59-4DD1-96F3-B0592E6A0562, name="home"
/dev/sda3 : start=2097152, size=39845855, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=8CBB6FEF-E1CB-431D-AFB5-E46BA2A24B1C, name="gentoo"

头行

头行用于指定分区表的全局信息。
头行部分是可选的,但必须位于所有分区行之前。
每一个头行都必须符合如下格式:

name: value

头行中所有可识别的字段名如下:
unit 指定分区起点与大小时所使用的单元,仅可设为 sectors
label 指定分区表的类型,可设为 dos 或 gpt 之一。
label-id 指定磁盘的唯一标识符。
对于MBR分区表来说,必须是一个类似"0x1a2b3c4d"这样的格式的16进制数。
对于GPT分区表来说,必须是一个UUID值。

分区行

分区行用于指定每个分区的信息。
分区行部分是必须存在的,且必须位于所有头行之后。
每一个分区行都必须符合如下格式:

[device :] name[=value], ...

[device :] 部分是可选的,sfdisk 仅从该字段中提取分区编号。
仅在你确实想要明确指定分区编号的时候才需要使用此字段,否则建议省略它。

如果 name[=value] 中的 value 是字符串值的话,可以使用双引号界定。
例如 name="This is partition name"

可以识别的字段如下(若省略某字段,则表示使用那个字段的默认值/不做修改):

start=number

指定分区的起点(会被自动对齐)。
可以设为一个无后缀的纯整数,表示扇区编号;
也可以使用带有 KiB, MiB, GiB, TiB, PiB, EiB, ZiB 后缀的整数,
表示距离磁盘起点(LBA0)的偏移量(字节)。
默认值是当前块设备上的第一个可用扇区。

size=number

指定分区的大小(会被自动对齐)。
可以设为一个无后缀的纯整数,表示扇区数量;
也可以使用带有 KiB, MiB, GiB, TiB, PiB, EiB, ZiB 后缀的整数,
表示分区的绝对大小(字节)。
默认值是该分区所能获得的最大空间。

bootable

打开MBR分区的启动标记。
默认值为"未开启"。

attrs=string

设置GPT分区的属性。
详见 --part-attrs 命令。
默认值为空。

uuid=string

设置GPT分区的 UUID 。
默认值为自动生成的随机值。

name=string

设置GPT分区的名称。
默认值为空。

type=code

设置分区类型。
对于MBR分区来说,必须设为一个十六进制数(无"0x"前缀)。
对于GPT分区来说,必须设为一个 GUID 值。
默认值是"Linux数据分区":对MBR来说是"83",
对GPT来说是"0FC63DAF-8483-4772-8E79-3D69D8477DE4"。

分区表备份

可以使用 --dump 命令将现有的分区表备份到一个文本文件中:

sfdisk --dump /dev/sda > sda.dump

然后可以使用下面的命令,从备份文件中恢复分区表:

sfdisk /dev/sda < sda.dump

注意

从 2.26 版本开始,sfdisk 不再提供强制内核重新读取分区表的 --re-read 选项,
应该使用 blockdev --rereadpt 命令实现这个功能。

参见

fdisk(8), cfdisk(8), parted(8), partprobe(8), partx(8)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

文章
评论
84963 人气
更多

推荐作者

微信用户

文章 0 评论 0

小情绪

文章 0 评论 0

ゞ记忆︶ㄣ

文章 0 评论 0

笨死的猪

文章 0 评论 0

彭明超

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文