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.