sfdisk 分区命令

84 篇文章 4 订阅
3 篇文章 0 订阅

SFDISK(8) System Administration SFDISK(8)

名称
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)

util-linux June 2015 SFDISK(8)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值