echo -e "label:mbr\nstart=1M" | sfdisk /dev/sdb
создаст таблицу разделов mbr на диске /dev/sdb с одним разделом на весь диск у которого начальное смещение составляет 1M
другой пример
echo -e "label:gpt\nsize=100M\nsize=+" | sfdisk /dev/sdb
здесь мы создаём таблицу разделов gpt и два раздела, один на 100M а второй на всё оставшееся место.
если нужно ресайзить уже готовые разделы то глянь
здесь где всё доходчиво написанно
но а вообще смотри
ман
и кстати у sfdisk, fdisk и cfdisk общая поддержка создания сценария что иногда бывает довольно удобно, смотри
(s)fdisk scripts
п.с.
sfdisk довольно недооценённая утилита в которую если вникнуть позволяет творить чудеса
Диск должен быть разбит на 4 раздела. 3 я создаю из дампа sfdisk. Нужно создать еще один. Последний. На все оставшееся место.
всё очень просто:
echo -e "size=+" | sfdisk -N 4 /dev/sdb
вот небольшой пример
$ truncate -s 1G disk.img
$ echo -e "label:mbr\nsize=100M\nsize=200M\nsize=300M" | sfdisk disk.img
$ sfdisk --dump disk.img
label: dos
label-id: 0x58b01c8a
device: disk.img
unit: sectors
sector-size: 512
disk.img1 : start= 2048, size= 204800, type=83
disk.img2 : start= 206848, size= 409600, type=83
disk.img3 : start= 616448, size= 614400, type=83
$ echo -e "size=+" | sfdisk -N 4 disk.img
$ sfdisk --dump disk.img
label: dos
label-id: 0x58b01c8a
device: disk.img
unit: sectors
sector-size: 512
disk.img1 : start= 2048, size= 204800, type=83
disk.img2 : start= 206848, size= 409600, type=83
disk.img3 : start= 616448, size= 614400, type=83
disk.img4 : start= 1230848, size= 866304, type=83