如何理解这个 sfdisk 命令的作用

如何理解这个 sfdisk 命令的作用

在这个命令中发生了什么?我试图知道,但这些数字和参数是什么2048,,0x0C,-

sfdisk -u S -L -q ${RAW_FILE} 2>/dev/null << EOF
2048,,0x0C,-
EOF

答案1

sfdisk 有一个手册页,你甚至可以找到在线的。它告诉你:

启动大小类型可启动

此外,当字段为空时,将采用默认值。因此,echo , | sfdisk /dev/sdx创建一个跨越整个磁盘的单一、不可引导的 Linux 文件系统类型 (0x83) 分区。

在您的例子中,分区从扇区 2048(即 1Mb)开始,到磁盘末尾结束。分区类型为 0xC,表示 FAT 文件系统。

答案2

ExplainShell.com

-u- 单元

    解释输入并以指定的单位显示输出。 这可以是 S、C、B 或 M 之一,分别表示扇区、柱面、块和兆字节。默认值是柱面,至少在几何形状已知的情况下。

-L--Linux

    不要抱怨与Linux无关的事情。

-q- 安静的

    抑制警告信息。

本质上“以部门为单位,不要抱怨”。

至于输入格式,man sfdisk

磁盘管理有四个(主要)用途:列出分区的大小、列出设备上的分区、检查设备上的分区以及 - 非常危险 - 对设备进行重新分区。[...]

列表大小
sfdisk -s partition给出的大小分割以块为单位。

您的命令不使用-s。模式 2:

列出分区
第二种调用: 将列出指定设备上的分区。sfdisk -l device

您的命令不使用-l。模式 3:

检查分区
第三种调用: 将对分区表应用各种一致性检查sfdisk -V device设备

您的命令没有使用-V,所以我们只剩下第四种模式:

创建分区
第四种调用方式: 会导致sfdisk device磁盘管理阅读规范或所需的分区设备从标准输入,然后更改该磁盘上的分区表。 [...]

一定要非常小心——一次输入错误就会导致所有数据丢失

[...]

输入格式

磁盘管理读取以下形式的行

<start> <size> <id> <bootable> <c,h,s> <c,h,s>

每行填充一个分区描述符。

字段以空格分隔,或者以逗号或分号分隔,后跟空格;[...] 当字段不存在或为空时,将使用默认值。[...]

可启动指定为 [ *| -],默认情况下不可启动。[...]

大小的默认值尽可能大(直到下一个分区或磁盘末尾)。

因此您的输入:

2048,,0x0C,-

将创建一个偏移量为 2048 个扇区的分区,尽可能大,ID 为0C十六进制(FAT32)以及可启动未设置标志。

确切的偏移量取决于目标驱动器的扇区大小。对于更常见的 512 字节扇区,偏移量为 1 MiB。

该分区不会自动格式化为 FAT32。它只会被标记为预期为 FAT32 格式。


TL;DR:一切内容都在手册中。

相关内容