diskimage-builder/elements/vm/block-device.d/10-partition
Ben Nemec 16be6d7ce0 set -u and -o pipefail everywhere
As with the previous similar changes, this is intended to catch
problems as they happen instead of ignoring them and continuing on
to potentially fail later.  Setting this on all existing scripts
will allow us to enforce use via Jenkins.

Change-Id: Iad2d490c86dceab148ea9ab08f457c49a5d5352e
2014-05-06 15:51:07 -05:00

33 lines
721 B
Bash
Executable file

#!/bin/bash
set -eu
set -o pipefail
source $_LIB/die
[ -n "$IMAGE_BLOCK_DEVICE" ] || die "Image block device not set"
# Create 1 partition far enough up the disk to permit grub to be installed on
# the MBR.
sudo sfdisk $IMAGE_BLOCK_DEVICE << EOF
1 - - *
0 0;
0 0;
0 0;
EOF
sudo partprobe $IMAGE_BLOCK_DEVICE
# To ensure no race conditions exist from calling partprobe
sudo udevadm settle
# If the partition isn't under /dev/loop*p1, create it with kpartx
DM=
if [ ! -e "${IMAGE_BLOCK_DEVICE}p1" ]; then
sudo kpartx -asv $TMP_IMAGE_PATH
DM=${IMAGE_BLOCK_DEVICE/#\/dev/\/dev\/mapper}
fi
if [ -n "$DM" ]; then
echo "IMAGE_BLOCK_DEVICE=${DM}p1"
else
echo "IMAGE_BLOCK_DEVICE=${IMAGE_BLOCK_DEVICE}p1"
fi