X-Git-Url: https://git.siccegge.de//index.cgi?p=forks%2Fvmdebootstrap.git;a=blobdiff_plain;f=vmdebootstrap;h=a5537b7abd6f6191ddc2cf8704470db9082184f5;hp=f857baca51ea989a09f4a0cd17114173e5d624f1;hb=0bc3dbfc1fc101a372572aab597175aad45c0be7;hpb=aab83d8d7d5aad539444c882c174443b04f7db6a diff --git a/vmdebootstrap b/vmdebootstrap index f857bac..a5537b7 100755 --- a/vmdebootstrap +++ b/vmdebootstrap @@ -25,6 +25,9 @@ import subprocess import tempfile +__version__ = '0.1.0' + + class VmDebootstrap(cliapp.Application): def add_settings(self): @@ -107,6 +110,7 @@ class VmDebootstrap(cliapp.Application): self.set_hostname(rootdir) self.create_fstab(rootdir) self.install_debs(rootdir) + self.cleanup_apt_cache(rootdir) self.set_root_password(rootdir) self.create_users(rootdir) self.remove_udev_persistent_rules(rootdir) @@ -114,6 +118,7 @@ class VmDebootstrap(cliapp.Application): self.customize(rootdir) if self.settings['image']: self.install_extlinux(rootdev, rootdir) + self.optimize_image(rootdir) if self.settings['tarball']: self.create_tarball(rootdir) except BaseException, e: @@ -251,6 +256,10 @@ class VmDebootstrap(cliapp.Application): logging.debug('stdout:\n%s' % out) shutil.rmtree(tmp) + def cleanup_apt_cache(self, rootdir): + out = self.runcmd(['chroot', rootdir, 'apt-get', 'clean']) + logging.debug('stdout:\n%s' % out) + def set_root_password(self, rootdir): if self.settings['root-password']: self.message('Setting root password') @@ -304,7 +313,7 @@ class VmDebootstrap(cliapp.Application): if self.settings['enable-dhcp']: f.write('\n') - f.write('allow-hotplug eth0\n') + f.write('auto eth0\n') f.write('iface eth0 inet dhcp\n') f.close() @@ -359,7 +368,16 @@ append initrd=%(initrd)s root=UUID=%(uuid)s ro %(kserial)s self.runcmd(['extlinux', '--install', rootdir]) self.runcmd(['sync']) import time; time.sleep(2) - + + def optimize_image(self, rootdir): + """ + Filing up the image with zeros will increase its compression rate + """ + zeros = os.path.join(rootdir, 'ZEROS') + self.runcmd_unchecked(['dd', 'if=/dev/zero', 'of=' + zeros, 'bs=1M']) + self.runcmd(['rm', '-f', zeros]) + + def cleanup_system(self): # Clean up after any errors. @@ -389,5 +407,5 @@ append initrd=%(initrd)s root=UUID=%(uuid)s ro %(kserial)s if __name__ == '__main__': - VmDebootstrap().run() + VmDebootstrap(version=__version__).run()