X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=source%2Fsteps%2FChainBootNode.py;h=59d58f904af25535dde70a8fdcf134d85a72e3a0;hb=024a094d4d296bd2b80ab85d253a995055f88c0d;hp=5e7babff6285e370c287aa24b7c64a296f2b8263;hpb=5596c3347951b1da8136989073334b8df05b4d87;p=bootmanager.git diff --git a/source/steps/ChainBootNode.py b/source/steps/ChainBootNode.py index 5e7babf..59d58f9 100644 --- a/source/steps/ChainBootNode.py +++ b/source/steps/ChainBootNode.py @@ -159,13 +159,21 @@ def Run( vars, log ): utils.sysexec( "cp %s/boot/initrd-boot%s /tmp/initrd" % (SYSIMG_PATH,option), log ) else: # Use chroot to call rpm, b/c the bootimage&nodeimage rpm-versions may not work together - kversion = os.popen("chroot %s rpm -qa kernel | tail -1 | cut -c 8-" % SYSIMG_PATH).read().rstrip() + try: + kversion = os.popen("chroot %s rpm -qa kernel | tail -1 | cut -c 8-" % SYSIMG_PATH).read().rstrip() + major_version = int(kversion[0]) # Check if the string looks like a kernel version + except: + # Try a different method for non-rpm-based distributions + kversion = os.popen("ls -lrt /lib/modules | tail -1 | awk '{print $9;}'").read().rstrip() + utils.sysexec( "cp %s/boot/vmlinuz-%s /tmp/kernel" % (SYSIMG_PATH,kversion), log ) candidates=[] # f16/18: expect initramfs image here candidates.append ("/boot/initramfs-%s.img"%(kversion)) # f20: uses a uid of some kind, e.g. /boot/543f88c129de443baaa65800cf3927ce//initrd candidates.append ("/boot/*/%s/initrd"%(kversion)) + # Ubuntu: + candidates.append ("/boot/initrd.img%s"%(kversion)) def find_file_in_sysimg (candidates): import glob for pattern in candidates: