Change mkimage to use two disks

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
This commit is contained in:
Justin Cormack 2017-06-01 14:29:26 +01:00
parent 583c5755fa
commit ad1d33255d
2 changed files with 16 additions and 4 deletions

View File

@ -20,4 +20,4 @@ WORKDIR /
COPY --from=mirror /out/ / COPY --from=mirror /out/ /
COPY mkimage.sh /usr/bin/ COPY mkimage.sh /usr/bin/
CMD ["mkimage.sh"] 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"]}'

View File

@ -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 )" 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 "${DEV}" ] && exit 1
[ -z "${DEV2}" ] && exit 1
DRIVE="/dev/${DEV}" DRIVE="/dev/${DEV}"
DRIVE2="/dev/${DEV2}"
# format # format
do_mkfs "$DRIVE" do_mkfs "$DRIVE"
@ -40,11 +43,20 @@ PARTITION="${DRIVE}1"
# mount # mount
mount "$PARTITION" /mnt mount "$PARTITION" /mnt
# copy kernel, initrd # copy kernel, initrd from tarball on second disk
cp -a /data/kernel /data/initrd.img /mnt/ 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 # create syslinux.cfg
CMDLINE="$(cat /data/cmdline)" CMDLINE="$(cat /mnt/cmdline)"
rm -f /mnt/cmdline
CFG="DEFAULT linux CFG="DEFAULT linux
LABEL linux LABEL linux