Using systemimager to create VMs quickly and easily

The master machine

Add the public key for the SystemImager download repository to your system:

# wget http://systemimager.org/pub/brian@thefinleys.com.gpg.key -O - | apt-key add -

Add the repository itself to your system:

/etc/apt/sources.list.d/systemimager.list
deb http://download.systemimager.org/debian stable main

And then install SystemImager:

aptitude update && aptitude install systemimager-server

The machine will install more packages than you might have expected:

The following NEW packages will be installed:
  binutils{a} dosfstools{a} genisoimage{a} isc-dhcp-server{a} libappconfig-perl{a}
  libcrypt-passwdmd5-perl{a} libencode-locale-perl{a} libfile-copy-recursive-perl{a}
  libfile-listing-perl{a} libfont-afm-perl{a} libhtml-form-perl{a} libhtml-format-perl{a}
  libhtml-parser-perl{a} libhtml-tagset-perl{a} libhtml-tree-perl{a} libhttp-cookies-perl{a}
  libhttp-daemon-perl{a} libhttp-date-perl{a} libhttp-message-perl{a} libhttp-negotiate-perl{a}
  libio-socket-ip-perl{a} libio-socket-ssl-perl{a} liblwp-mediatypes-perl{a} liblwp-protocol-https-perl{a}
  libmailtools-perl{a} libnet-http-perl{a} libnet-ssleay-perl{a} libsocket-perl{a} libtimedate-perl{a}
  liburi-perl{a} libwww-perl{a} libwww-robotrules-perl{a} libxml-namespacesupport-perl{a}
  libxml-parser-perl{a} libxml-sax-base-perl{a} libxml-sax-expat-perl{a} libxml-sax-perl{a}
  libxml-simple-perl{a} mtools{a} openbsd-inetd{a} syslinux{a} syslinux-common{a} systemconfigurator{a}
  systemimager-boot-amd64-standard{a} systemimager-common{a} systemimager-server tftp-hpa{a} tftpd-hpa{a}
  update-inetd{a} 
0 packages upgraded, 49 newly installed, 0 to remove and 0 not upgraded.

Personally I don't see why systemimager should automatically install (for example) a TFTP server unless you say that you want to use one, but there you go…

At this point the caveat shown in https://www.howtoforge.com/howto_linux_systemimager regarding "prefix all commands with si_" becomes important, so find out the IP address of your client, make sure you've run the "si_prepareclient" command on it, and then on the master type:

si_getimage --golden-client IP.address.of.client --image name.of.image.file --ip-assignment dynamic_dhcp

The choices for --ip-assignment are stated at https://www.howtoforge.com/howto_linux_systemimager as being:

  • replicant
  • static
  • dynamic_dhcp
  • static_dhcp

however apparently only "replicant", "static" and "dhcp" are supported by the current stable version of SystemImager.

The command

si_getimage --golden-client IP.address.of.client --image name.of.image.file --ip-assignment dhcp

will then fail with the error:

rsync: failed to connect to IP.address.of.client (IP.address.of.client): Connection refused (111)

because it's not possible to run si_prepareclient on Debian 7 Wheezy :(

Update

The problem with running si_prepareclient on Debian 7 Wheezy is the standard 3.2 Linux kernel - SystemImager only recognises 2.4 or 2.6 series kernels. I managed to persuade the Perl scripts to accept that 3.2 is a perfectly reasonable Linux kernel version, ran si_prepareclient on the Golden Client, and got si_getimage to run on the server.

I then used si_mkautoinstallcd to create a CD image, which doesn't boot.

I give up. This is not a useful tool. Nice idea, but it just doesn't work.


Go up
Return to main index.