[Ovirt-devel] [PATCH] Help reduce size of iso by symlinking initrd's from isolinux/ and EFI/boot if md5's match
Joey Boggs
jboggs at redhat.com
Fri Feb 19 19:25:06 UTC 2010
116M ovirt-node-image/ovirt-node-image.iso
119M ovirt-node-image.iso.edited.iso
---
edit-livecd.py | 24 +++++++++++++++++++++++-
1 files changed, 23 insertions(+), 1 deletions(-)
diff --git a/edit-livecd.py b/edit-livecd.py
index 279b225..ebcb7a6 100644
--- a/edit-livecd.py
+++ b/edit-livecd.py
@@ -26,7 +26,7 @@ import shutil
import subprocess
import optparse
import logging
-
+import hashlib
from imgcreate.debug import *
from imgcreate.fs import *
from imgcreate.live import *
@@ -310,6 +310,28 @@ def main():
print "Launching shell. Exit to continue."
print "----------------------------------"
editor.launch_shell()
+ # reduce iso size by symlinking initrd's if they match
+ efi_initrd = "%s/EFI/boot/initrd0.img" % editor._LiveImageCreatorBase__isodir
+ isolinux_initrd = "%s/isolinux/initrd0.img" % editor._LiveImageCreatorBase__isodir
+
+ def initrd_check(initrd_file):
+ m = hashlib.md5()
+ f = open(initrd_file,"r")
+ while 1:
+ chunk = f.read(65536)
+ if not chunk:
+ break
+ m.update(chunk)
+ checksum = m.hexdigest()
+ return checksum
+ try:
+ efi_initrd_csum = initrd_check(efi_initrd)
+ isolinux_initrd_csum = initrd_check(isolinux_initrd)
+ if efi_initrd_csum == isolinux_initrd_csum:
+ os.remove(efi_initrd)
+ os.symlink(isolinux_initrd,efi_initrd)
+ except:
+ pass
editor.unmount()
editor.package(output)
except CreatorError, e:
--
1.6.6
More information about the ovirt-devel
mailing list