在这个命令中发生了什么?我试图知道,但这些数字和参数是什么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
-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:一切内容都在手册中。