aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-11-28 00:22:45 +0100
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2018-01-04 00:07:39 +0100
commit5fb0d533c3aa7e26ab1519858918ca4f7df21ce5 (patch)
tree67631f90afcf33a721db197a66c7a649a10b53f9
parent72618c6029969f26b574438f5b07a881b072ee90 (diff)
base image: Explicitly call kpartx
qemu-nbd currently available in CentOS 7 does not add partition mappings automatically for NBD devices, so add explicit `kpartx` calls. Change-Id: Ifa79c89b82024602b782c449dbf4de10899e03b5 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> (cherry picked from commit 5c890d60fff57b624358f4d4be6865862f4f8415)
-rwxr-xr-xci/deploy.sh4
-rw-r--r--mcp/scripts/lib.sh10
2 files changed, 9 insertions, 5 deletions
diff --git a/ci/deploy.sh b/ci/deploy.sh
index 3d2f795b1..c55b4c513 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -272,10 +272,10 @@ pushd "${DEPLOY_DIR}" > /dev/null
# Install required packages
[ -n "$(command -v apt-get)" ] && sudo apt-get install -y \
git make rsync mkisofs curl virtinst cpu-checker qemu-kvm uuid-runtime \
- libvirt-bin cloud-guest-utils e2fsprogs
+ libvirt-bin cloud-guest-utils e2fsprogs kpartx
[ -n "$(command -v yum)" ] && sudo yum install -y --skip-broken \
git make rsync genisoimage curl virt-install qemu-kvm util-linux \
- libvirt cloud-utils-growpart e2fsprogs
+ libvirt cloud-utils-growpart e2fsprogs kpartx
# For baremetal, python is indirectly required for PDF parsing
if [ "${DEPLOY_TYPE}" = 'baremetal' ]; then
diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh
index 0e7ac5809..982cc37fd 100644
--- a/mcp/scripts/lib.sh
+++ b/mcp/scripts/lib.sh
@@ -49,18 +49,21 @@ function mount_image {
fi
done
OPNFV_LOOP_DEV=$(losetup -f)
+ OPNFV_MAP_DEV=/dev/mapper/$(basename "${OPNFV_NBD_DEV}")p1
export OPNFV_MNT_DIR OPNFV_LOOP_DEV
[ -n "${OPNFV_NBD_DEV}" ] && [ -n "${OPNFV_LOOP_DEV}" ] || exit 1
qemu-img resize "${image_dir}/${image}" 3G
sudo qemu-nbd --connect="${OPNFV_NBD_DEV}" --aio=native --cache=none \
"${image_dir}/${image}"
- sleep 5 # /dev/nbdNp1 takes some time to come up
+ sudo kpartx -av "${OPNFV_NBD_DEV}"
# Hardcode partition index to 1, unlikely to change for Ubuntu UCA image
if sudo growpart "${OPNFV_NBD_DEV}" 1; then
- sudo e2fsck -yf "${OPNFV_NBD_DEV}p1" && sudo resize2fs "${OPNFV_NBD_DEV}p1"
+ sudo kpartx -u "${OPNFV_NBD_DEV}"
+ sudo e2fsck -yf "${OPNFV_MAP_DEV}"
+ sudo resize2fs "${OPNFV_MAP_DEV}"
fi
# grub-update does not like /dev/nbd*, so use a loop device to work around it
- sudo losetup "${OPNFV_LOOP_DEV}" "${OPNFV_NBD_DEV}p1"
+ sudo losetup "${OPNFV_LOOP_DEV}" "${OPNFV_MAP_DEV}"
mkdir -p "${OPNFV_MNT_DIR}"
sudo mount "${OPNFV_LOOP_DEV}" "${OPNFV_MNT_DIR}"
sudo mount -t proc proc "${OPNFV_MNT_DIR}/proc"
@@ -141,6 +144,7 @@ function cleanup_mounts {
sudo losetup -d "${OPNFV_LOOP_DEV}"
fi
if [ -n "${OPNFV_NBD_DEV}" ]; then
+ sudo kpartx -d "${OPNFV_NBD_DEV}" || true
sudo qemu-nbd -d "${OPNFV_NBD_DEV}" || true
fi
}