Skip to content

paulnice/cirrosip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a project to build a small cloud image that has useful tools and
function for debugging or developing cloud infrastructure.

The following works on Ubuntu 14.04 LTS.

To use it, you would do something like:
 * get some build dependencies:
   $ sudo apt-get -y install bison flex texinfo build-essential gettext ncurses-dev unzip bzr qemu-kvm quilt wget rsync

 * bzr branch lp:cirros
 * cd cirros

 * download buildroot and setup environment
   $ br_ver="2015.05"
   $ mkdir -p ../download
   $ ln -snf ../download download
   $ ( cd download && wget http://buildroot.uclibc.org/downloads/buildroot-${br_ver}.tar.gz )
   $ tar -xvf download/buildroot-${br_ver}.tar.gz
   $ ln -snf buildroot-${br_ver} buildroot

 * optionally update src/etc/ssl/certs/ca-certificates.crt
   This is not required, but can be done to make sure its up to date.
   Doing so requires cvs.
   # ./bin/mkcabundle > src/etc/ssl/certs/ca-certificates.crt

 * apply any local cirros patches to buildroot
   ( cd buildroot && QUILT_PATCHES=$PWD/../patches-buildroot quilt push -a )

 * download the buildroot sources
   $ make ARCH=i386 br-source

 * Build buildroot for a given arch
   # ARCH should be set to 'i386', 'x86_64' or 'arm'
   $ make ARCH=i386 OUT_D=$PWD/output/i386

   This will do a full buildroot build, which will take a while. The output
   that CirrOS is interested in is output/i386/rootfs.tar.
   That file is the full buildroot filesystem, and is used as input for
   subsequent steps here.

 * Download a kernel to use.
   The kernel input to bundle must be in deb format. The ubuntu '-virtual'
   kernel is used as a starting point.

   # kver is newest -updates kernel from https://launchpad.net/ubuntu/+source/linux
   $ kver="3.19.0-20.20~14.04.1"
   $ ./bin/grab-kernels "$kver"

 * build disk images using bin/bundle
   $ sudo ./bin/bundle -v --arch=$ARCH output/$ARCH/rootfs.tar \
      download/kernel-$ARCH.deb output/$ARCH/images

 * Then, test using the images
   $ kvm -drive file=disk.img,if=virtio -curses
   $ kvm file=blank.img,if=virtio -curses \
      -kernel kernel -initrd initrd -drive -append "debug-initrd"

About

Make cirros image with ip settings from kernel cmdline

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published