I discovered sfdisk a few years ago (part of util-linux) and have been using it in automation scripts ever since. sfdisk is like fdisk, but is scriptable. So for example, to list the partitions on a disk:
[root@host]# sfdisk -l /dev/sdc Disk /dev/sdc: 121601 cylinders, 255 heads, 63 sectors/track Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdc1 0+ 121600 121601- 976760001 83 Linux /dev/sdc2 0 - 0 0 0 Empty /dev/sdc3 0 - 0 0 0 Empty /dev/sdc4 0 - 0 0 0 Empty
To list them in a dump format, suitable as input to sfdisk (for cloning, saving or for some wacky awesome script):
[root@host ]# sfdisk -d /dev/sdc# partition table of /dev/sdc unit: sectors /dev/sdc1 : start= 63, size=1953520002, Id=83 /dev/sdc2 : start= 0, size= 0, Id= 0 /dev/sdc3 : start= 0, size= 0, Id= 0 /dev/sdc4 : start= 0, size= 0, Id= 0
You can use that dump in a fashion like this to clone a disks’s partition map:
sfdisk -d /dev/sdc | sfdisk /dev/sdd
Or for saving it and using it later:
sfdisk -d /dev/sdc > partition.sfdisk ... sfdisk /dev/sdc < partition.sfdisk
Yeah sfdisk is pretty trick! I actually used it back in the day @ mp3 for flipping our file system partition type from ext2 to reiserfs in our kickstart scripts.
Could it be that the last line of your posting is missing the input redirection of the previously generated partition file?
So this erroneous line:
sfdisk /dev/sdc
should better read:
sfdisk /dev/sdc < partition.sfdisk
Nevertheless, thanks a lot for your blog!
Cheers,
Gerhard
Good catch, updated!
Thanks, this will come in handy.