import os import xmlrpclib import socket import string from Exceptions import * import utils # locations of boot os version files BOOT_VERSION_2X_FILE='/usr/bootme/ID' BOOT_VERSION_3X_FILE='/pl_version' # minimium version of the boot os we need to run, as a (major,minor) tuple MINIMUM_BOOT_VERSION= (2,0) # minimum version of python required to run the boot manager MINIMUM_PYTHON_VERSION= (2,2,0) def Run( vars, log ): """ Setup the boot manager so it can run, do any extra necessary hardware setup (to fix old cd problems) Sets the following variables: BOOT_CD_VERSION A two number tuple of the boot cd version """ log.write( "\n\nStep: Initializing the BootManager.\n" ) log.write( "Opening connection to API server\n" ) try: api_inst= xmlrpclib.Server( vars['BOOT_API_SERVER'], verbose=0 ) except KeyError, e: raise BootManagerException, \ "configuration file does not specify API server URL" vars['API_SERVER_INST']= api_inst if not __check_boot_version( vars, log ): raise BootManagerException, \ "Boot CD version insufficient to run the Boot Manager" else: log.write( "Running on boot cd version: %s\n" % str(vars['BOOT_CD_VERSION']) ) BOOT_CD_VERSION= vars['BOOT_CD_VERSION'] # old cds need extra modules loaded for compaq smart array if BOOT_CD_VERSION[0] == 2: has_smartarray= utils.sysexec_noerr( 'lspci | egrep "0e11:b178|0e11:4070|0e11:4080|0e11:4082|0e11:4083"') if has_smartarray: log.write( "Loading support for Compaq smart array\n" ) utils.sysexec_noerr( "modprobe cciss", log ) _create_cciss_dev_entries() has_fusion= utils.sysexec_noerr('lspci | egrep "1000:0030"') if has_fusion: log.write( "Loading support for Fusion MPT SCSI controllers\n" ) utils.sysexec_noerr( "modprobe mptscsih", log ) # for anything that needs to know we are running under the boot cd and # not the runtime os os.environ['PL_BOOTCD']= "1" return 1 def __check_boot_version( vars, log ): """ identify which version of the boot os we are running on, and whether or not we can run at all on the given version. later, this will be used to identify extra packages to download to enable the boot manager to run on any supported version. 2.x cds have the version file in /usr/bootme/ID, which looked like: 'PlanetLab BootCD v2.0.3' 3.x cds have the version file in /pl_version, which lookes like: 'PlanetLab BootCD 3.0-beta0.3' All current known version strings that we support: PlanetLab BootCD 3.0 PlanetLab BootCD 3.0-beta0.1 PlanetLab BootCD 3.0-beta0.3 PlanetLab BootCD v2.0 PlanetLab BootCD v2.0.1 PlanetLab BootCD v2.0.2 PlanetLab BootCD v2.0.3 Returns 1 if the boot os version is identified and will work to run the boot manager. Two class variables are set: BOOT_OS_MAJOR_VERSION BOOT_OS_MINOR_VERSION version strings with three parts parts to the version ignore the middle number (so 2.0.3 is major 2, minor 3) Returns 0 if the boot os is insufficient to run the boot manager """ try: # check for a 3.x version first version_file= file(BOOT_VERSION_3X_FILE,'r') full_version= string.strip(version_file.read()) version_file.close() version_parts= string.split(full_version) version= version_parts[-1] version_numbers= string.split(version,".") if len(version_numbers) == 2: BOOT_OS_MAJOR_VERSION= int(version_numbers[0]) BOOT_OS_MINOR_VERSION= int(version_numbers[1]) else: # for 3.x cds, if there are more than two parts # separated by a ., its one of the beta cds. # hardcode as a 3.0 cd BOOT_OS_MAJOR_VERSION= 3 BOOT_OS_MINOR_VERSION= 0 vars['BOOT_CD_VERSION']= (BOOT_OS_MAJOR_VERSION,BOOT_OS_MINOR_VERSION) if (BOOT_OS_MAJOR_VERSION,BOOT_OS_MINOR_VERSION) >= \ MINIMUM_BOOT_VERSION: return 1 except IOError, e: pass except IndexError, e: pass except TypeError, e: pass try: # check for a 2.x version first version_file= file(BOOT_VERSION_2X_FILE,'r') full_version= string.strip(version_file.read()) version_file.close() version_parts= string.split(full_version) version= version_parts[-1] if version[0] == 'v': version= version[1:] version_numbers= string.split(version,".") if len(version_numbers) == 2: BOOT_OS_MAJOR_VERSION= int(version_numbers[0]) BOOT_OS_MINOR_VERSION= int(version_numbers[1]) else: BOOT_OS_MAJOR_VERSION= int(version_numbers[0]) BOOT_OS_MINOR_VERSION= int(version_numbers[2]) vars['BOOT_CD_VERSION']= (BOOT_OS_MAJOR_VERSION,BOOT_OS_MINOR_VERSION) if (BOOT_OS_MAJOR_VERSION,BOOT_OS_MINOR_VERSION) >= \ MINIMUM_BOOT_VERSION: return 1 except IOError, e: pass except IndexError, e: pass except TypeError, e: pass return 0 def _create_cciss_dev_entries(): utils.sysexec_noerr( "mknod /dev/cciss/c0d0 b 104 0" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p1 b 104 1" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p2 b 104 2" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p3 b 104 3" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p4 b 104 4" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p5 b 104 5" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p6 b 104 6" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p7 b 104 7" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p8 b 104 8" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p9 b 104 9" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p10 b 104 10" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p11 b 104 11" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p12 b 104 12" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p13 b 104 13" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p14 b 104 14" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d0p15 b 104 15" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1 b 104 16" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p1 b 104 17" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p2 b 104 18" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p3 b 104 19" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p4 b 104 20" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p5 b 104 21" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p6 b 104 22" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p7 b 104 23" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p8 b 104 24" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p9 b 104 25" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p10 b 104 26" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p11 b 104 27" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p12 b 104 28" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p13 b 104 29" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p14 b 104 30" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d1p15 b 104 31" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2 b 104 32" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p1 b 104 33" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p2 b 104 34" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p3 b 104 35" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p4 b 104 36" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p5 b 104 37" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p6 b 104 38" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p7 b 104 39" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p8 b 104 40" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p9 b 104 41" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p10 b 104 42" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p11 b 104 43" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p12 b 104 44" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p13 b 104 45" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p14 b 104 46" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d2p15 b 104 47" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3 b 104 48" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p1 b 104 49" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p2 b 104 50" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p3 b 104 51" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p4 b 104 52" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p5 b 104 53" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p6 b 104 54" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p7 b 104 55" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p8 b 104 56" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p9 b 104 57" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p10 b 104 58" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p11 b 104 59" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p12 b 104 60" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p13 b 104 61" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p14 b 104 62" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d3p15 b 104 63" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4 b 104 64" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p1 b 104 65" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p2 b 104 66" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p3 b 104 67" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p4 b 104 68" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p5 b 104 69" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p6 b 104 70" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p7 b 104 71" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p8 b 104 72" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p9 b 104 73" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p10 b 104 74" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p11 b 104 75" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p12 b 104 76" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p13 b 104 77" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p14 b 104 78" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d4p15 b 104 79" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5 b 104 80" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p1 b 104 81" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p2 b 104 82" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p3 b 104 83" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p4 b 104 84" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p5 b 104 85" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p6 b 104 86" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p7 b 104 87" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p8 b 104 88" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p9 b 104 89" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p10 b 104 90" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p11 b 104 91" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p12 b 104 92" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p13 b 104 93" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p14 b 104 94" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d5p15 b 104 95" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6 b 104 96" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p1 b 104 97" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p2 b 104 98" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p3 b 104 99" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p4 b 104 100" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p5 b 104 101" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p6 b 104 102" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p7 b 104 103" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p8 b 104 104" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p9 b 104 105" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p10 b 104 106" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p11 b 104 107" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p12 b 104 108" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p13 b 104 109" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p14 b 104 110" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d6p15 b 104 111" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7 b 104 112" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p1 b 104 113" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p2 b 104 114" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p3 b 104 115" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p4 b 104 116" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p5 b 104 117" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p6 b 104 118" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p7 b 104 119" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p8 b 104 120" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p9 b 104 121" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p10 b 104 122" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p11 b 104 123" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p12 b 104 124" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p13 b 104 125" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p14 b 104 126" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d7p15 b 104 127" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8 b 104 128" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p1 b 104 129" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p2 b 104 130" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p3 b 104 131" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p4 b 104 132" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p5 b 104 133" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p6 b 104 134" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p7 b 104 135" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p8 b 104 136" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p9 b 104 137" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p10 b 104 138" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p11 b 104 139" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p12 b 104 140" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p13 b 104 141" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p14 b 104 142" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d8p15 b 104 143" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9 b 104 144" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p1 b 104 145" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p2 b 104 146" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p3 b 104 147" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p4 b 104 148" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p5 b 104 149" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p6 b 104 150" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p7 b 104 151" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p8 b 104 152" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p9 b 104 153" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p10 b 104 154" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p11 b 104 155" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p12 b 104 156" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p13 b 104 157" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p14 b 104 158" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d9p15 b 104 159" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10 b 104 160" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p1 b 104 161" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p2 b 104 162" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p3 b 104 163" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p4 b 104 164" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p5 b 104 165" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p6 b 104 166" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p7 b 104 167" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p8 b 104 168" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p9 b 104 169" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p10 b 104 170" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p11 b 104 171" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p12 b 104 172" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p13 b 104 173" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p14 b 104 174" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d10p15 b 104 175" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11 b 104 176" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p1 b 104 177" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p2 b 104 178" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p3 b 104 179" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p4 b 104 180" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p5 b 104 181" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p6 b 104 182" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p7 b 104 183" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p8 b 104 184" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p9 b 104 185" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p10 b 104 186" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p11 b 104 187" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p12 b 104 188" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p13 b 104 189" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p14 b 104 190" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d11p15 b 104 191" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12 b 104 192" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p1 b 104 193" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p2 b 104 194" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p3 b 104 195" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p4 b 104 196" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p5 b 104 197" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p6 b 104 198" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p7 b 104 199" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p8 b 104 200" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p9 b 104 201" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p10 b 104 202" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p11 b 104 203" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p12 b 104 204" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p13 b 104 205" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p14 b 104 206" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d12p15 b 104 207" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13 b 104 208" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p1 b 104 209" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p2 b 104 210" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p3 b 104 211" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p4 b 104 212" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p5 b 104 213" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p6 b 104 214" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p7 b 104 215" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p8 b 104 216" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p9 b 104 217" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p10 b 104 218" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p11 b 104 219" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p12 b 104 220" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p13 b 104 221" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p14 b 104 222" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d13p15 b 104 223" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14 b 104 224" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p1 b 104 225" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p2 b 104 226" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p3 b 104 227" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p4 b 104 228" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p5 b 104 229" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p6 b 104 230" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p7 b 104 231" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p8 b 104 232" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p9 b 104 233" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p10 b 104 234" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p11 b 104 235" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p12 b 104 236" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p13 b 104 237" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p14 b 104 238" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d14p15 b 104 239" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15 b 104 240" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p1 b 104 241" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p2 b 104 242" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p3 b 104 243" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p4 b 104 244" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p5 b 104 245" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p6 b 104 246" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p7 b 104 247" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p8 b 104 248" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p9 b 104 249" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p10 b 104 250" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p11 b 104 251" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p12 b 104 252" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p13 b 104 253" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p14 b 104 254" ) utils.sysexec_noerr( "mknod /dev/cciss/c0d15p15 b 104 255" )