Replace sfdisk partitioning with parted
A TODO was placed on the partitioning section of the vm element to replace sfdisk with a saner (and less arcane) way of partitioning. It suggested parted for replacement. This changeset should reproduce the same disk label and partition layout as sfdisk, but with less ioctl errors and version dependency. It will also ensure partition alignment. Change-Id: I5d8d75131458b73bfb05f80f1bfa7e2970e004b3
This commit is contained in:
parent
9618974f92
commit
41f503fef3
@ -11,36 +11,17 @@ source $_LIB/die
|
||||
|
||||
# Create 2 partitions for PPC, one for PReP boot and other for root
|
||||
if [[ "$ARCH" =~ "ppc" ]] ; then
|
||||
sudo sfdisk --force $IMAGE_BLOCK_DEVICE << EOF
|
||||
0,8,41 *
|
||||
,,L
|
||||
;
|
||||
EOF
|
||||
sudo parted -a optimal -s $IMAGE_BLOCK_DEVICE \
|
||||
mklabel msdos \
|
||||
mkpart primary 0 8cyl \
|
||||
set 1 boot on \
|
||||
set 1 prep on \
|
||||
mkpart primary 9cyl 100%
|
||||
else
|
||||
# sfdisk changed around 2.26 and was largely rewritten. The old
|
||||
# version defaults to c/h/s and interprets arguments as cylinders.
|
||||
# The new version defaults to sectors.
|
||||
#
|
||||
# Luckily, the old version has a -uS flag (ignored by the new
|
||||
# version) to interpret arguments as sectors. However, it
|
||||
# incorrectly calculates the c/h/s offset when finding free space,
|
||||
# and gets upset [1], requiring the use of --force.
|
||||
#
|
||||
# TODO: switch this to parted, or something saner (is there such a
|
||||
# thing when talking about partitioning?)
|
||||
#
|
||||
# The below command creates a partition that starts at 1MiB --
|
||||
# which is the standard place to start a partition these days --
|
||||
# and fills up the disk. The zeros are to ignore the other 3
|
||||
# primary partitions (probably not needed, but left for safety).
|
||||
#
|
||||
# [1] https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/1481158
|
||||
sudo sfdisk -uS --force $IMAGE_BLOCK_DEVICE << EOF
|
||||
2048 + L *
|
||||
0 0;
|
||||
0 0;
|
||||
0 0;
|
||||
EOF
|
||||
sudo parted -a optimal -s $IMAGE_BLOCK_DEVICE \
|
||||
mklabel msdos \
|
||||
mkpart primary 1MiB 100% \
|
||||
set 1 boot on
|
||||
fi
|
||||
|
||||
sudo partprobe $IMAGE_BLOCK_DEVICE
|
||||
|
Loading…
Reference in New Issue
Block a user