Skip to content

Instantly share code, notes, and snippets.

@mnegi
Forked from nyarla/HOWTO.md
Last active August 29, 2015 14:00
Show Gist options
  • Select an option

  • Save mnegi/1a9f53f34a8ec36138a9 to your computer and use it in GitHub Desktop.

Select an option

Save mnegi/1a9f53f34a8ec36138a9 to your computer and use it in GitHub Desktop.

How to make a CoreOS's ISO file from pxe boot image

  1. SYNOPSIS

This documentation is written about how to make a CoreOS's ISO file from pxe boot image.

  1. REQUIREMENTS

This method is required to mkisofs So, you need an environment that can execute mkisofs. (e.g. on Linux)

  1. HOW TO MAKE ISO

3.1 Copy files

# Make working directory
$ mkdir ~/tmp && cd ~/tmp
$ mkdir -p coreos/{isolinux,syslinux,coreos}

# Download pxe boot files from CoreOS Repository (dev-channel)
$ cd coreos/coreos
$ curl -O http://storage.core-os.net/coreos/amd64-generic/dev-channel/coreos_production_pxe.vmlinuz
$ mv coreos_production_pxe.vmlinuz vmlinuz
$ curl -O http://storage.core-os.net/coreos/amd64-generic/dev-channel/coreos_production_pxe_image.cpio.gz
$ mv coreos_production_pxe_image.cpio.gz cpio.gz
$ cd ~/tmp/coreos/coreos && ls
cpio.gz  vmlinuz

# Download syslinux binaries
$ cd ~/tmp
$ curl -O https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.02.tar.gz
$ tar zxvf syslinux-6.02.tar.gz

# Copy syslinux binaries to work directory
$ cd ~/tmp
$ cp syslinux-6.02/bios/com32/chain/chain.c32 coreos/syslinux/
$ cp syslinux-6.02/bios/com32/lib/libcom32.c32 coreos/syslinux/
$ cp syslinux-6.02/bios/com32/libutil/libutil.c32 coreos/syslinux/
$ cp syslinux-6.02/bios/memdisk/memdisk coreos/syslinux/
$ ls coreos/syslinux
chain.c32  libcom32.c32  libutil.c32  memdisk

$ cp syslinux-6.02/bios/core/isolinux.bin coreos/isolinux/
$ cp syslinux-6.02/bios/com32/elflink/ldlinux/ldlinux.c32 coreos/isolinux/
$ ls coreos/isolinux
isolinux.bin  ldlinux.c32

3.2 Write configuration file

INCLUDE /syslinux/syslinux.cfg
prompt 0
default coreos

LABEL coreos
KERNEL /coreos/vmlinuz
APPEND initrd=/coreos/cpio.gz root=squashfs: state=tmpfs: sshkey="{YOUR SSH PUBLIC KEY} coreos pxe demo"

3.3 Make ISO File !

$ cd ~/tmp/coreos/
$ mkisofs -v -l -r -J -o ../coreos.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .

3.4 Finished the all

Yay !

  1. Author and Copyright

  • Author: Naoki OKAMURA (Nyarla)
  • Unlicense:
    • This documentation is under the public domain.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment