I updated to Ubuntu 15.10 but it causes a huge issue for me: sfdisk doesn't work anymore.

I really need sfdisk to build partitions on SD card for my embedded Linux but it seems that options have changed.

Here is my script:


unset LANG

umount ${CARD_DEV}* >& /dev/null

if [ -b "$CARD_DEV" ] ; then
    echo "*************** Formatting SD card... ***************"
    dd if=/dev/zero of=$CARD_DEV bs=1024 count=1024
    SIZE=`fdisk -l $CARD_DEV | grep Disk | awk '{print $5}'`
    echo DISK SIZE - $SIZE bytes
    CYLINDERS=`echo $SIZE/255/63/512 | bc`
        echo 1,9,0x0C,*
        echo 10,,,-
    } | sfdisk -D -H 255 -S 63 -C $CYLINDERS $CARD_DEV
    mkfs.vfat -F 32 -n "boot" ${CARD_DEV}1
    mke2fs -j -L "filesystem" ${CARD_DEV}2

And the output error:

sfdisk: invalid option -- 'D'

 sfdisk [options] <dev> [[-N] <part>]
 sfdisk [options] <command>

Display or manipulate a disk partition table.

 -A, --activate <dev> [<part> ...] list or set bootable MBR partitions
 -d, --dump <dev>                  dump partition table (usable for later input)
 -g, --show-geometry [<dev> ...]   list geometry of all or specified devices
 -l, --list [<dev> ...]            list partitions of each device
 -s, --show-size [<dev> ...]       list sizes of all or specified devices
 -T, --list-types                  print the recognized types (see -X)
 -V, --verify                      test whether partitions seem correct

 --part-label <dev> <part> [<str>] print or change partition label
 --part-type <dev> <part> [<type>] print or change partition type
 --part-uuid <dev> <part> [<uuid>] print or change partition uuid
 --part-attrs <dev> <part> [<str>] print or change partition attributes

 <dev>                     device (usually disk) path
 <part>                    partition number
 <type>                    partition type, GUID for GPT, hex for MBR

 -a, --append              append partitions to existing partition table
 -b, --backup              backup partition table sectors (see -O)
     --bytes               print SIZE in bytes rather than in human readable format
 -f, --force               disable all consistency checking
     --color[=<when>]      colorize output (auto, always or never)
                             colors disabled by default
 -N, --partno <num>        specify partition number
 -n, --no-act              do everything except write to device
     --no-reread           do not check whether the device is in use
 -O, --backup-file <path>  override default backup file name
 -o, --output <list>       output columns
 -q, --quiet               suppress extra info messages
 -X, --label <name>        specify label type (dos, gpt, ...)
 -Y, --label-nested <name> specify nested label type (dos, bsd)

 -L, --Linux               deprecated, only for backward compatibility
 -u, --unit S              deprecated, only sector unit is supported

 -h, --help     display this help and exit
 -v, --version  output version information and exit

Available columns (for -o):
 gpt: Device Start End Sectors Size Type Type-UUID Attrs Name UUID
 dos: Device Start End Sectors Cylinders Size Type Id Attrs Boot End-C/H/S
 bsd: Slice Start End Sectors Cylinders Size Type Bsize Cpg Fsize
 sgi: Device Start End Sectors Cylinders Size Type Id Attrs
 sun: Device Start End Sectors Cylinders Size Type Id Flags

For more details see sfdisk(8).


sfdisk from util-linux 2.26.2
  • Instead of this: sfdisk -D -H 255 -S 63 -C $CYLINDERS $CARD_DEV | Try this: sfdisk --DOS -H 255 -S 63 -C $CYLINDERS $CARD_DEV
    – Raphael
    Nov 10, 2015 at 14:37
  • I get sfdisk: unrecognized option '--DOS'. It seems that all the options I use were removed :S
    – didil
    Nov 10, 2015 at 14:49
  • 1
    Version 2.26 of sfdisk changed this: Since version 2.26 sfdisk supports MBR (DOS), GPT, SUN and SGI disk labels, but no longer provides any functionality for CHS (Cylinder- Head-Sector)
    – Tobias
    Nov 10, 2015 at 15:10
  • OK. So how to continue to create partitions? Will it works with my embedded system?
    – didil
    Nov 10, 2015 at 15:12
  • The man page is still the old version.
    – didil
    Nov 10, 2015 at 15:58

1 Answer 1


This seems to be a working version of the command that works in both old and new sfdisk versions.

# p1 74MB FAT
# p2 Remainder Linux
sfdisk -u S -L $CARD_DEV << EOF

"-u S" sets the units to sectors which is default in the new version but required to be set in old version

"-L" keeps the old version from erroring out when creating the partitions.

source: https://e2e.ti.com/support/arm/sitara_arm/f/791/t/509510

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .