+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" )
+
+
+