一行命令分区,100%非交互式

时间:2018-04-19 11:44:27

标签: bash automation disk-partitioning

我想让一些磁盘分区自动化, 我只想拿一个磁盘并在所有磁盘上只创建一个分区。

我意识到:

sdd="/dev/sdb /dev/sdc /dev/sdd"
for i in $sdd
do
echo "n
p
1


w
"|fdisk $i
done

会奏效。 我也知道

echo 'start=2048, type=83' | sudo sfdisk /dev/sdX

也可以。

但今天,我真的需要一些完全没有互动,没有管道,重定向或其他东西的东西,但我找不到合适的东西:

./perfectbinary -np1w /dev/sda

2 个答案:

答案 0 :(得分:1)

它不是"完美"无论如何,但也许parted /dev/sdX mktable gpt parted /dev/sdX mkpart primary 0% 100% 可以提供基于对话框的fdisk的交互式替代方案。它有一个交互式命令行,但您也可以使用相同的命令编写批处理程序,如下所示:

{{1}}

享受您的磁盘空间,请小心

答案 1 :(得分:0)

对于GPT表,您可以使用sgdisk

sgdisk -n 0:0:0 /dev/sde
  

-n,--new = partnum:start:end                 创建一个新分区。您输入分区号,开始扇区和结束扇区。既开始又                 终端扇区可以绝对值指定为扇区号或以千字节(K)为单位的位置,                 兆字节(M),千兆字节(G),兆字节(T)或PB(P);例如40M指定位置40MiB                 从磁盘开始。您可以指定相对于指定默认值的开始或结束的位置                 通过在数字前加'+'或'-'符号来进行范围调整,例如+ 2G,以指定默认值之后的2GiB点                 起始扇区,或-200M以指定最后一个可用扇区之前的200MiB点。起始或结束值为0                 指定默认值,该默认值是起始扇区和                 结束扇区在同一块的末尾。 partnum值为0会使程序使用第一个可用的                 分区号。