From ad1d33255d4b8067548cdd7c31d5950d23127ae3 Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Thu, 1 Jun 2017 14:29:26 +0100 Subject: [PATCH 1/2] Change mkimage to use two disks Signed-off-by: Justin Cormack --- pkg/mkimage/Dockerfile | 2 +- pkg/mkimage/mkimage.sh | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/pkg/mkimage/Dockerfile b/pkg/mkimage/Dockerfile index 47f158175..a5fa368d0 100644 --- a/pkg/mkimage/Dockerfile +++ b/pkg/mkimage/Dockerfile @@ -20,4 +20,4 @@ WORKDIR / COPY --from=mirror /out/ / COPY mkimage.sh /usr/bin/ CMD ["mkimage.sh"] -LABEL org.mobyproject.config='{"readonly": true, "capabilities": ["CAP_SYS_ADMIN", "CAP_MKNOD"], "binds": ["/dev:/dev", "/data:/data"]}' +LABEL org.mobyproject.config='{"readonly": true, "capabilities": ["CAP_SYS_ADMIN", "CAP_MKNOD"], "binds": ["/dev:/dev"]}' diff --git a/pkg/mkimage/mkimage.sh b/pkg/mkimage/mkimage.sh index 16d2ed813..140cda4b1 100755 --- a/pkg/mkimage/mkimage.sh +++ b/pkg/mkimage/mkimage.sh @@ -27,10 +27,13 @@ do_mkfs() } DEV="$(find /dev -maxdepth 1 -type b ! -name 'loop*' | grep -v '[0-9]$' | sed 's@.*/dev/@@' | sort | head -1 )" +DEV2="$(find /dev -maxdepth 1 -type b ! -name 'loop*' | grep -v '[0-9]$' | sed 's@.*/dev/@@' | sort | head -2 | tail -1)" [ -z "${DEV}" ] && exit 1 +[ -z "${DEV2}" ] && exit 1 DRIVE="/dev/${DEV}" +DRIVE2="/dev/${DEV2}" # format do_mkfs "$DRIVE" @@ -40,11 +43,20 @@ PARTITION="${DRIVE}1" # mount mount "$PARTITION" /mnt -# copy kernel, initrd -cp -a /data/kernel /data/initrd.img /mnt/ +# copy kernel, initrd from tarball on second disk +tar xf "${DRIVE2}" -C /mnt + +# rename if they do not have canonical names +( + cd /mnt + [ -f kernel ] || mv *-kernel kernel + [ -f initrd.img ] || mv *-initrd.img initrd.img + [ -f cmdline ] || mv *-cmdline cmdline +) # create syslinux.cfg -CMDLINE="$(cat /data/cmdline)" +CMDLINE="$(cat /mnt/cmdline)" +rm -f /mnt/cmdline CFG="DEFAULT linux LABEL linux From 5394ec26f2b302cf529d6184eb7fbf38ee058f55 Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Thu, 1 Jun 2017 14:49:49 +0100 Subject: [PATCH 2/2] Update mkimage tests to match output Signed-off-by: Justin Cormack --- test/cases/040_packages/013_mkimage/mkimage.yml | 9 +-------- test/cases/040_packages/013_mkimage/test.sh | 5 +++-- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/test/cases/040_packages/013_mkimage/mkimage.yml b/test/cases/040_packages/013_mkimage/mkimage.yml index abec2a066..192b2368b 100644 --- a/test/cases/040_packages/013_mkimage/mkimage.yml +++ b/test/cases/040_packages/013_mkimage/mkimage.yml @@ -7,16 +7,9 @@ init: - linuxkit/containerd:deaf5bf838bf7f131c2287ecff3ed9835b0497e2 onboot: - name: mkimage - image: "linuxkit/mkimage:a3fd615543b84733ac8ba6f7e1927727665ef404" + image: "linuxkit/mkimage:f4bf0c24261f7d120c8674892805ab3054eb8ac3" - name: poweroff image: "linuxkit/poweroff:7404cf2295df89ccfa2dda41997a28307a90cf28" -files: - - path: data/kernel - source: run-kernel - - path: data/initrd.img - source: run-initrd.img - - path: data/cmdline - source: run-cmdline trust: org: - linuxkit diff --git a/test/cases/040_packages/013_mkimage/test.sh b/test/cases/040_packages/013_mkimage/test.sh index 7e5539c60..80939d923 100644 --- a/test/cases/040_packages/013_mkimage/test.sh +++ b/test/cases/040_packages/013_mkimage/test.sh @@ -12,14 +12,15 @@ set -e clean_up() { find . -iname "run*" -not -iname "*.yml" -exec rm -rf {} \; find . -iname "mkimage*" -not -iname "*.yml" -exec rm -rf {} \; - rm -f disk.qcow2 + rm -f disk.qcow2 tarball.img } trap clean_up EXIT # Test code goes here moby build -output kernel+initrd run.yml moby build -output kernel+initrd mkimage.yml -linuxkit run qemu -disk disk.qcow2,size=200M,format=qcow2 -kernel mkimage +tar cf tarball.img run-kernel run-initrd.img run-cmdline +linuxkit run qemu -disk disk.qcow2,size=200M,format=qcow2 -disk tarball.img,format=raw -kernel mkimage linuxkit run qemu disk.qcow2 exit 0