Non-interactively create one partition with all available disk size

This is disgusting to me, but it works:

echo -e "n\np\n1\n\n\nt\nc\na\n1\nw" | fdisk /dev/sdb

I would like to know a more prudent or elegant way to accomplish this. The entire boot record and partition table is being zeroed prior to this task, so we can trust that partition 1 is available.


Take a look at parted which can be used in command line mode for scripting. sfdisk can also be scripted but note the caveats about GPTs and partition sizes.


sfdisk

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

should fill a disk with a single partition.

See: https://superuser.com/questions/332252/creating-and-formating-a-partition-using-a-bash-script/1132834#1132834 for a detailed explanation of the command syntax, including the type=83 part and more.