Tentar automatizar fdisk
é possível, mas não é fácil de manter. Como outras respostas, note que se separou ou sfdisk são projetados para fazer o que você quer e são mais fáceis de automatizar.
dividido
Para criar uma partição em uma linha com parted
:
parted -a optimal /dev/usb mkpart primary 0% 4096MB
como visto em este post do UNIX SE . Cada uma das partes é bastante auto-explicativa, mas apenas no caso aqui é como mkpart
é definido:
mkpart
[ tipo de peça fs-type nome ] início final
em que os pontos entre colchetes são opcionais, mas você provavelmente deseja primary
para seu tipo de peça , iniciar em 0%
e terminar em 4096MB
ou por muito grande que seja o seu stick USB.
sfdisk
A entrada para sfdisk
não é muito mais fácil de entender do que a entrada para fdisk
, mas é pretendida para automação.
#!/bin/sh
# Example Usage: create_sd /dev/sdb
DRIVE=$1
dd if=/dev/zero of=$DRIVE bs=1024 count=1024
SIZE='fdisk -l $DRIVE | grep Disk | awk '{print $5}''
echo DISK SIZE - $SIZE bytes
CYLINDERS='echo $SIZE/255/63/512 | bc'
echo CYLINDERS - $CYLINDERS
{
echo ,9,0x0C,*
echo ,,,-
} | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE
mkfs.vfat -F 32 -n "boot" ${DRIVE}1
mke2fs -j -L "rootfs" ${DRIVE}2
vem do The Linux Daily e, apesar de não se encaixar no pedido de uma linha, ele mostra como isso pode ser feito.