X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=source%2Fsteps%2FMakeInitrd.py;h=e40f9fd0a686af06f7166b3adeb01f4b88b0ffa5;hb=a2a9b82d4966aecc2d1aeafc2affdb5bc9726ec6;hp=7fa7178f248b6b002135680e712b9c5bbc3fd226;hpb=a724f7d57976ee741c3bc5c813d734e954fff034;p=bootmanager.git diff --git a/source/steps/MakeInitrd.py b/source/steps/MakeInitrd.py index 7fa7178..e40f9fd 100644 --- a/source/steps/MakeInitrd.py +++ b/source/steps/MakeInitrd.py @@ -6,12 +6,11 @@ # Copyright (c) 2004-2006 The Trustees of Princeton University # All rights reserved. -import os, string +import os from Exceptions import * import utils import systeminfo -import shutil def kernelHasMkinitrd(): # Older bootcds only support LinuxThreads. This hack is to get mkinitrd @@ -63,20 +62,28 @@ def Run( vars, log ): # mkinitrd needs /dev and /proc to do the right thing. # /proc is already mounted, so bind-mount /dev here + # xxx tmp - trying to work around the f14 case: + # check that /dev/ is mounted with devtmpfs + if utils.sysexec_noerr ("grep devtmpfs /proc/mounts") != 0: + utils.sysexec("mount -t devtmpfs none /dev") utils.sysexec("mount -o bind /dev %s/dev" % SYSIMG_PATH) utils.sysexec("mount -t sysfs none %s/sys" % SYSIMG_PATH) initrd, kernel_version= systeminfo.getKernelVersion(vars,log) - utils.removefile( "%s/boot/%s" % (SYSIMG_PATH, initrd) ) + try: + utils.removefile( "%s/boot/%s" % (SYSIMG_PATH, initrd) ) + except: + print "%s/boot/%s is already removed" % (SYSIMG_PATH, initrd) + # hack for CentOS 5.3 bypassRaidIfNeeded(SYSIMG_PATH) if kernelHasMkinitrd() == True: - utils.sysexec( "chroot %s mkinitrd -v /boot/initrd-%s.img %s" % \ - (SYSIMG_PATH, kernel_version, kernel_version), log ) + utils.sysexec_chroot( SYSIMG_PATH, "mkinitrd -v --allow-missing /boot/initrd-%s.img %s" % \ + (kernel_version, kernel_version), log ) else: shutil.copy("./mkinitrd.sh","%s/tmp/mkinitrd.sh" % SYSIMG_PATH) os.chmod("%s/tmp/mkinitrd.sh" % SYSIMG_PATH, 755) - utils.sysexec( "chroot %s /tmp/mkinitrd.sh %s" % (SYSIMG_PATH, kernel_version)) + utils.sysexec_chroot( SYSIMG_PATH, "/tmp/mkinitrd.sh %s" % (kernel_version)) utils.sysexec_noerr("umount %s/sys" % SYSIMG_PATH) utils.sysexec_noerr("umount %s/dev" % SYSIMG_PATH)