为什么这个 sfdisk 脚本不起作用?

为什么这个 sfdisk 脚本不起作用?

我带来了来自 StackOverflow 的问候!:D

https://stackoverflow.com/questions/43109790/bash-how-do-i-use-sfdisk

这是一个痛苦的过程。也许我忽略了一些简单的事情……?

我正在尝试创建一个脚本,以自动对具有 gpt 表和 1 个占用所有空间的分区的磁盘进行分区。应该非常简单直接。

我发现该sfdisk命令是(据称)脚本友好版本fdisk

到目前为止我得到的最好的结果是:

sfdisk --color=always --wipe always --no-reread --no-act --label gpt /dev/sdc

分区类型是Linux Filesystem(对于数据驱动器来说,这是一个好的选择吗?)。它的 GUID 是0FC63DAF-8483-4772-8E79-3D69D8477DE4

当我运行上述命令时,我得到了一个交互式提示。这对我的脚本来说有点问题 ;)

手册页中描述的输入/输出格式是什么?

<name>: <value>, <name>: <value>, ...

这似乎建议我做类似的事情:

echo 'label: gpt' | --color=always --wipe always --no-reread --no-act /dev/sdc

但遗憾的是,这比上面的更失败::(

Partitioning /dev/sdc...

Disk /dev/sdc: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes

>>> line 1: unsupported command

New situation: Leaving.

然后是我从手册页深处发现的转储文件。它似乎暗示我可以创建这些该死的东西,对其进行 cat 处理,然后通过管道传输到 sfdisk。(嗯?)幸运的是,我无法对其中的大部分进行硬编码,因此该解决方案对我来说不起作用:

label: gpt
label-id: 236AEC41-D407-4FE5-94FA-8550C2CA10B5
device: /dev/sdc
unit: sectors
first-lba: 2048
last-lba: 5860533134

/dev/sdc1 : start=        2048, size=  5860531087, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4,uuid=8D7D48B0-8BF5-4383-B0EC-615C0E8AF4B4

我做错了什么!?谢谢 :)

答案1

我找到了一个更好的方法:sgdisk

sgdisk --clear $blkdev
sgdisk --new=0:0:0 --typecode=0:0FC63DAF-8483-4772-8E79-3D69D8477DE4 $blkdev

相关内容