import BootAPI
import notify_messages
+import ModelOptions
def Run( vars, log ):
"""
# its ok if this is blank
NODE_SESSION= vars["NODE_SESSION"]
+ NODE_MODEL_OPTIONS= vars["NODE_MODEL_OPTIONS"]
+
except KeyError, var:
raise BootManagerException, "Missing variable in vars: %s\n" % var
except ValueError, var:
utils.sysexec( "mount /dev/planetlab/root %s" % SYSIMG_PATH, log )
utils.sysexec( "mount /dev/planetlab/vservers %s/vservers" %
SYSIMG_PATH, log )
+ utils.sysexec( "mount -t proc none %s/proc" % SYSIMG_PATH, log )
ROOT_MOUNTED= 1
vars['ROOT_MOUNTED']= 1
(network_count,storage_count)= \
InstallWriteConfig.write_modprobeconf_file( vars, log )
+ # get the kernel version
+ option = ''
+ if NODE_MODEL_OPTIONS & ModelOptions.SMP:
+ option = 'smp'
+
log.write( "Copying kernel and initrd for booting.\n" )
- utils.sysexec( "cp %s/boot/kernel-boot /tmp/kernel" % SYSIMG_PATH, log )
- utils.sysexec( "cp %s/boot/initrd-boot /tmp/initrd" % SYSIMG_PATH, log )
+ utils.sysexec( "cp %s/boot/kernel-boot%s /tmp/kernel" % (SYSIMG_PATH,option), log )
+ utils.sysexec( "cp %s/boot/initrd-boot%s /tmp/initrd" % (SYSIMG_PATH,option), log )
log.write( "Unmounting disks.\n" )
try:
utils.sysexec_noerr( "chroot %s umount /rcfs" % SYSIMG_PATH, log )
except OSError, e:
pass
+ utils.sysexec_noerr( "umount %s/proc" % SYSIMG_PATH, log )
utils.sysexec_noerr( "umount -r /dev/planetlab/vservers", log )
utils.sysexec_noerr( "umount -r /dev/planetlab/root", log )
utils.sysexec_noerr( "vgchange -an", log )
log.write( "Couldn't read /proc/modules, continuing.\n" )
- kargs = "ramdisk_size=8192"
+ kargs = "root=/dev/mapper/planetlab-root ramdisk_size=8192"
+ if NODE_MODEL_OPTIONS & ModelOptions.SMP:
+ kargs = kargs + " " + "acpi=off"
try:
kargsfb = open("/kargs.txt","r")
moreargs = kargsfb.readline()