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
|
# Create 2 partitions for PPC, one for PReP boot and other for root
|
||||||
if [[ "$ARCH" =~ "ppc" ]] ; then
|
if [[ "$ARCH" =~ "ppc" ]] ; then
|
||||||
sudo sfdisk --force $IMAGE_BLOCK_DEVICE << EOF
|
sudo parted -a optimal -s $IMAGE_BLOCK_DEVICE \
|
||||||
0,8,41 *
|
mklabel msdos \
|
||||||
,,L
|
mkpart primary 0 8cyl \
|
||||||
;
|
set 1 boot on \
|
||||||
EOF
|
set 1 prep on \
|
||||||
|
mkpart primary 9cyl 100%
|
||||||
else
|
else
|
||||||
# sfdisk changed around 2.26 and was largely rewritten. The old
|
sudo parted -a optimal -s $IMAGE_BLOCK_DEVICE \
|
||||||
# version defaults to c/h/s and interprets arguments as cylinders.
|
mklabel msdos \
|
||||||
# The new version defaults to sectors.
|
mkpart primary 1MiB 100% \
|
||||||
#
|
set 1 boot on
|
||||||
# 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
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sudo partprobe $IMAGE_BLOCK_DEVICE
|
sudo partprobe $IMAGE_BLOCK_DEVICE
|
||||||
|
Loading…
Reference in New Issue
Block a user