Merge pull request #2339 from justincormack/iso-files

Unpack filesystem for BIOS ISO
This commit is contained in:
Justin Cormack 2017-08-02 15:47:59 +01:00 committed by GitHub
commit 570d706486
2 changed files with 8 additions and 13 deletions

View File

@ -21,7 +21,7 @@ endif
PREFIX?=/usr/local/ PREFIX?=/usr/local/
MOBY_REPO=https://github.com/moby/tool.git MOBY_REPO=https://github.com/moby/tool.git
MOBY_COMMIT=14a4d923aef7cf5a8a6f162b128315d9e0f7884e MOBY_COMMIT=b9de5ff4c64e01d8fbaa495776890a82e9647f20
MOBY_VERSION=0.0 MOBY_VERSION=0.0
bin/moby: tmp_moby_bin.tar | bin bin/moby: tmp_moby_bin.tar | bin
tar xf $< tar xf $<

View File

@ -5,22 +5,17 @@ set -e
mkdir -p /tmp/iso mkdir -p /tmp/iso
cd /tmp/iso cd /tmp/iso
# input is a tarball of kernel and initrd.img on stdin # input is a tarball of filesystem on stdin with kernel in /boot
# output is an iso on stdout # output is an iso on stdout
# extract. BSD tar auto recognises compression, unlike GNU tar # extract. BSD tar auto recognises compression, unlike GNU tar
# only if stdin is a tty, if so need files volume mounted... # only if stdin is a tty, if so need files volume mounted...
[ -t 0 ] || bsdtar xzf - [ -t 0 ] || bsdtar xzf -
INITRD="$(find . -name '*.img')" CMDLINE="$(cat boot/cmdline)"
KERNEL="$(find . -name kernel -or -name '*bzImage')" # if no root= root device specified, assume /dev/sr0 ie first CD drive
CMDLINE="$*" echo "${CMDLINE}" | grep -q 'root=' || CMDLINE="${CMDLINE} root=/dev/sr0"
rm boot/cmdline
[ "$KERNEL" = "kernel" ] || mv "$KERNEL" kernel
[ "$INITRD" = "initrd.img" ] || mv "$INITRD" initrd.img
# clean up subdirectories
find . -mindepth 1 -maxdepth 1 -type d | xargs rm -rf
mkdir -p isolinux mkdir -p isolinux
cp /usr/share/syslinux/isolinux.bin ./isolinux/ cp /usr/share/syslinux/isolinux.bin ./isolinux/
@ -28,8 +23,7 @@ cp /usr/share/syslinux/ldlinux.c32 ./isolinux/
CFG="DEFAULT linux CFG="DEFAULT linux
LABEL linux LABEL linux
KERNEL /kernel KERNEL /boot/kernel
INITRD /initrd.img
APPEND ${CMDLINE} APPEND ${CMDLINE}
" "
@ -39,6 +33,7 @@ genisoimage -o ../linuxkit-bios.iso -l -J -R \
-c isolinux/boot.cat \ -c isolinux/boot.cat \
-b isolinux/isolinux.bin \ -b isolinux/isolinux.bin \
-no-emul-boot -boot-load-size 4 -boot-info-table \ -no-emul-boot -boot-load-size 4 -boot-info-table \
-joliet-long -input-charset utf8 \
-V LinuxKit . -V LinuxKit .
isohybrid ../linuxkit-bios.iso isohybrid ../linuxkit-bios.iso