6 from Exceptions import *
10 # locations of boot os version files
11 BOOT_VERSION_2X_FILE='/usr/bootme/ID'
12 BOOT_VERSION_3X_FILE='/pl_version'
14 # locations of boot server name/certificate files
15 V2X_BOOTCD_SERVER_FILE = "/usr/bootme/BOOTSERVER"
16 V2X_BOOTCD_SERVER_CACERT_DIR = "/usr/bootme/cacert"
17 V2X_CACERT_NAME = "cacert.pem"
19 V3X_BOOTCD_SERVER_FILE = "/usr/boot/boot_server"
20 V3X_BOOTCD_SERVER_CACERT = "/usr/boot/cacert.pem"
22 # minimium version of the boot os we need to run, as a (major,minor) tuple
23 MINIMUM_BOOT_VERSION= (2,0)
25 # minimum version of python required to run the boot manager
26 MINIMUM_PYTHON_VERSION= (2,2,0)
31 Setup the boot manager so it can run, do any extra necessary
32 hardware setup (to fix old cd problems)
34 Sets the following variables:
35 BOOT_CD_VERSION A two number tuple of the boot cd version
36 MA_BOOT_SERVER The boot server we contacted, identified from
38 MA_BOOT_SERVER_CACERT The SSL certificate for the above server
42 log.write( "\n\nStep: Initializing the BootManager.\n" )
45 if not __check_boot_version( vars, log ):
46 raise BootManagerException, \
47 "Boot CD version insufficient to run the Boot Manager"
49 log.write( "Running on boot cd version: %s\n" %
50 str(vars['BOOT_CD_VERSION']) )
52 BOOT_CD_VERSION= vars['BOOT_CD_VERSION']
55 log.write( "Identifying boot server and setting up /etc/planetlab entries" )
57 # need to pull the server name we contacted. 2.x cds will have the
58 # info in /usr/bootme; 3.x cds in /usr/boot
59 if BOOT_CD_VERSION[0] == 2:
61 boot_server= file(V2X_BOOTCD_SERVER_FILE).read().strip()
63 raise BootManagerException, \
64 "It appears we are running on a v2.x boot cd, but could " \
65 "not load contacted boot server from %s" % V2X_BOOTCD_SERVER_FILE
68 raise BootManagerException, \
69 "It appears we are running on a v2.x boot cd, but %s " \
70 "appears to be blank." % V2X_BOOTCD_SERVER_FILE
72 cacert_file= "%s/%s/%s" % (V2X_BOOTCD_SERVER_CACERT_DIR,
73 boot_server, V2X_CACERT_NAME)
75 elif BOOT_CD_VERSION[0] == 3:
77 boot_server= file(V3X_BOOTCD_SERVER_FILE).read().strip()
79 raise BootManagerException, \
80 "It appears we are running on a v3.x boot cd, but could " \
81 "not load contacted boot server from %s" % V3X_BOOTCD_SERVER_FILE
84 raise BootManagerException, \
85 "It appears we are running on a v3.x boot cd, but %s " \
86 "appears to be blank." % V3X_BOOTCD_SERVER_FILE
88 cacert_file= V3X_BOOTCD_SERVER_CACERT
91 raise BootManagerException, "Unknown boot cd version."
93 if not os.access(cacert_file, os.R_OK):
94 raise BootManagerException, \
95 "Could not find the certificate for the " \
96 "specified boot server (at %s)" % cacert_file
98 # tell the log instance about the boot server so it knows
99 # where to upload the logs
101 log.SetUploadServer( self.VARS['MA_BOOT_SERVER'] )
103 log.LogEntry( "configuration does not contain boot server name." )
107 # now that we have the boot server name and the location of its certificate,
108 # write out /etc/planetlab/primary_ma with this info.
110 primary_ma_file= file("/etc/planetlab/primary_ma","w")
111 primary_ma_file.write( "MA_NAME=\"Unknown\"\n" )
112 primary_ma_file.write( "MA_BOOT_SERVER=\"%s\"\n" % boot_server )
113 primary_ma_file.write( "MA_BOOT_SERVER_CACERT=\"%s\"\n" % cacert_file )
114 primary_ma_file.close()
115 primary_ma_file= None
117 raise BootManagerException, "Unable to write out /etc/planetlab/primary_ma"
119 vars['MA_BOOT_SERVER']= boot_server
120 vars['MA_BOOT_SERVER_CACRET']= cacert_file
122 self.Message( "Using boot server %s with certificate" %
123 (boot_server,cacert_file) )
126 log.write( "Opening connection to API server\n" )
127 api_server_url= "https://%s/PLCAPI/" % vars['MA_BOOT_SERVER']
128 api_inst= xmlrpclib.Server( api_server_url, verbose=0 )
129 vars['API_SERVER_INST']= api_inst
132 # old cds need extra modules loaded for compaq smart array
133 if BOOT_CD_VERSION[0] == 2:
135 has_smartarray= utils.sysexec_noerr(
136 'lspci | egrep "0e11:b178|0e11:4070|0e11:4080|0e11:4082|0e11:4083"')
139 log.write( "Loading support for Compaq smart array\n" )
140 utils.sysexec_noerr( "modprobe cciss", log )
141 _create_cciss_dev_entries()
144 has_fusion= utils.sysexec_noerr('lspci | egrep "1000:0030"')
147 log.write( "Loading support for Fusion MPT SCSI controllers\n" )
148 utils.sysexec_noerr( "modprobe mptscsih", log )
150 # for anything that needs to know we are running under the boot cd and
152 os.environ['PL_BOOTCD']= "1"
158 def __check_boot_version( vars, log ):
160 identify which version of the boot os we are running on, and whether
161 or not we can run at all on the given version. later, this will be
162 used to identify extra packages to download to enable the boot manager
163 to run on any supported version.
165 2.x cds have the version file in /usr/bootme/ID, which looked like:
166 'PlanetLab BootCD v2.0.3'
168 3.x cds have the version file in /pl_version, which lookes like:
169 'PlanetLab BootCD 3.0-beta0.3'
171 All current known version strings that we support:
173 PlanetLab BootCD 3.0-beta0.1
174 PlanetLab BootCD 3.0-beta0.3
175 PlanetLab BootCD v2.0
176 PlanetLab BootCD v2.0.1
177 PlanetLab BootCD v2.0.2
178 PlanetLab BootCD v2.0.3
180 Returns 1 if the boot os version is identified and will work
181 to run the boot manager. Two class variables are set:
182 BOOT_OS_MAJOR_VERSION
183 BOOT_OS_MINOR_VERSION
184 version strings with three parts parts to the version ignore the
185 middle number (so 2.0.3 is major 2, minor 3)
187 Returns 0 if the boot os is insufficient to run the boot manager
191 # check for a 3.x version first
192 version_file= file(BOOT_VERSION_3X_FILE,'r')
193 full_version= string.strip(version_file.read())
196 version_parts= string.split(full_version)
197 version= version_parts[-1]
199 version_numbers= string.split(version,".")
200 if len(version_numbers) == 2:
201 BOOT_OS_MAJOR_VERSION= int(version_numbers[0])
202 BOOT_OS_MINOR_VERSION= int(version_numbers[1])
204 # for 3.x cds, if there are more than two parts
205 # separated by a ., its one of the beta cds.
206 # hardcode as a 3.0 cd
207 BOOT_OS_MAJOR_VERSION= 3
208 BOOT_OS_MINOR_VERSION= 0
210 vars['BOOT_CD_VERSION']= (BOOT_OS_MAJOR_VERSION,BOOT_OS_MINOR_VERSION)
212 if (BOOT_OS_MAJOR_VERSION,BOOT_OS_MINOR_VERSION) >= \
213 MINIMUM_BOOT_VERSION:
218 except IndexError, e:
225 # check for a 2.x version first
226 version_file= file(BOOT_VERSION_2X_FILE,'r')
227 full_version= string.strip(version_file.read())
230 version_parts= string.split(full_version)
231 version= version_parts[-1]
232 if version[0] == 'v':
235 version_numbers= string.split(version,".")
236 if len(version_numbers) == 2:
237 BOOT_OS_MAJOR_VERSION= int(version_numbers[0])
238 BOOT_OS_MINOR_VERSION= int(version_numbers[1])
240 BOOT_OS_MAJOR_VERSION= int(version_numbers[0])
241 BOOT_OS_MINOR_VERSION= int(version_numbers[2])
243 vars['BOOT_CD_VERSION']= (BOOT_OS_MAJOR_VERSION,BOOT_OS_MINOR_VERSION)
245 if (BOOT_OS_MAJOR_VERSION,BOOT_OS_MINOR_VERSION) >= \
246 MINIMUM_BOOT_VERSION:
251 except IndexError, e:
261 def _create_cciss_dev_entries():
262 utils.sysexec_noerr( "mknod /dev/cciss/c0d0 b 104 0" )
263 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p1 b 104 1" )
264 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p2 b 104 2" )
265 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p3 b 104 3" )
266 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p4 b 104 4" )
267 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p5 b 104 5" )
268 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p6 b 104 6" )
269 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p7 b 104 7" )
270 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p8 b 104 8" )
271 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p9 b 104 9" )
272 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p10 b 104 10" )
273 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p11 b 104 11" )
274 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p12 b 104 12" )
275 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p13 b 104 13" )
276 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p14 b 104 14" )
277 utils.sysexec_noerr( "mknod /dev/cciss/c0d0p15 b 104 15" )
278 utils.sysexec_noerr( "mknod /dev/cciss/c0d1 b 104 16" )
279 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p1 b 104 17" )
280 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p2 b 104 18" )
281 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p3 b 104 19" )
282 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p4 b 104 20" )
283 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p5 b 104 21" )
284 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p6 b 104 22" )
285 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p7 b 104 23" )
286 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p8 b 104 24" )
287 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p9 b 104 25" )
288 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p10 b 104 26" )
289 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p11 b 104 27" )
290 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p12 b 104 28" )
291 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p13 b 104 29" )
292 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p14 b 104 30" )
293 utils.sysexec_noerr( "mknod /dev/cciss/c0d1p15 b 104 31" )
294 utils.sysexec_noerr( "mknod /dev/cciss/c0d2 b 104 32" )
295 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p1 b 104 33" )
296 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p2 b 104 34" )
297 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p3 b 104 35" )
298 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p4 b 104 36" )
299 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p5 b 104 37" )
300 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p6 b 104 38" )
301 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p7 b 104 39" )
302 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p8 b 104 40" )
303 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p9 b 104 41" )
304 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p10 b 104 42" )
305 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p11 b 104 43" )
306 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p12 b 104 44" )
307 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p13 b 104 45" )
308 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p14 b 104 46" )
309 utils.sysexec_noerr( "mknod /dev/cciss/c0d2p15 b 104 47" )
310 utils.sysexec_noerr( "mknod /dev/cciss/c0d3 b 104 48" )
311 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p1 b 104 49" )
312 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p2 b 104 50" )
313 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p3 b 104 51" )
314 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p4 b 104 52" )
315 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p5 b 104 53" )
316 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p6 b 104 54" )
317 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p7 b 104 55" )
318 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p8 b 104 56" )
319 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p9 b 104 57" )
320 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p10 b 104 58" )
321 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p11 b 104 59" )
322 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p12 b 104 60" )
323 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p13 b 104 61" )
324 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p14 b 104 62" )
325 utils.sysexec_noerr( "mknod /dev/cciss/c0d3p15 b 104 63" )
326 utils.sysexec_noerr( "mknod /dev/cciss/c0d4 b 104 64" )
327 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p1 b 104 65" )
328 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p2 b 104 66" )
329 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p3 b 104 67" )
330 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p4 b 104 68" )
331 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p5 b 104 69" )
332 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p6 b 104 70" )
333 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p7 b 104 71" )
334 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p8 b 104 72" )
335 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p9 b 104 73" )
336 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p10 b 104 74" )
337 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p11 b 104 75" )
338 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p12 b 104 76" )
339 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p13 b 104 77" )
340 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p14 b 104 78" )
341 utils.sysexec_noerr( "mknod /dev/cciss/c0d4p15 b 104 79" )
342 utils.sysexec_noerr( "mknod /dev/cciss/c0d5 b 104 80" )
343 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p1 b 104 81" )
344 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p2 b 104 82" )
345 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p3 b 104 83" )
346 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p4 b 104 84" )
347 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p5 b 104 85" )
348 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p6 b 104 86" )
349 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p7 b 104 87" )
350 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p8 b 104 88" )
351 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p9 b 104 89" )
352 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p10 b 104 90" )
353 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p11 b 104 91" )
354 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p12 b 104 92" )
355 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p13 b 104 93" )
356 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p14 b 104 94" )
357 utils.sysexec_noerr( "mknod /dev/cciss/c0d5p15 b 104 95" )
358 utils.sysexec_noerr( "mknod /dev/cciss/c0d6 b 104 96" )
359 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p1 b 104 97" )
360 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p2 b 104 98" )
361 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p3 b 104 99" )
362 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p4 b 104 100" )
363 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p5 b 104 101" )
364 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p6 b 104 102" )
365 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p7 b 104 103" )
366 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p8 b 104 104" )
367 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p9 b 104 105" )
368 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p10 b 104 106" )
369 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p11 b 104 107" )
370 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p12 b 104 108" )
371 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p13 b 104 109" )
372 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p14 b 104 110" )
373 utils.sysexec_noerr( "mknod /dev/cciss/c0d6p15 b 104 111" )
374 utils.sysexec_noerr( "mknod /dev/cciss/c0d7 b 104 112" )
375 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p1 b 104 113" )
376 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p2 b 104 114" )
377 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p3 b 104 115" )
378 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p4 b 104 116" )
379 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p5 b 104 117" )
380 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p6 b 104 118" )
381 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p7 b 104 119" )
382 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p8 b 104 120" )
383 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p9 b 104 121" )
384 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p10 b 104 122" )
385 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p11 b 104 123" )
386 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p12 b 104 124" )
387 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p13 b 104 125" )
388 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p14 b 104 126" )
389 utils.sysexec_noerr( "mknod /dev/cciss/c0d7p15 b 104 127" )
390 utils.sysexec_noerr( "mknod /dev/cciss/c0d8 b 104 128" )
391 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p1 b 104 129" )
392 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p2 b 104 130" )
393 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p3 b 104 131" )
394 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p4 b 104 132" )
395 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p5 b 104 133" )
396 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p6 b 104 134" )
397 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p7 b 104 135" )
398 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p8 b 104 136" )
399 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p9 b 104 137" )
400 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p10 b 104 138" )
401 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p11 b 104 139" )
402 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p12 b 104 140" )
403 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p13 b 104 141" )
404 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p14 b 104 142" )
405 utils.sysexec_noerr( "mknod /dev/cciss/c0d8p15 b 104 143" )
406 utils.sysexec_noerr( "mknod /dev/cciss/c0d9 b 104 144" )
407 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p1 b 104 145" )
408 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p2 b 104 146" )
409 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p3 b 104 147" )
410 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p4 b 104 148" )
411 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p5 b 104 149" )
412 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p6 b 104 150" )
413 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p7 b 104 151" )
414 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p8 b 104 152" )
415 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p9 b 104 153" )
416 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p10 b 104 154" )
417 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p11 b 104 155" )
418 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p12 b 104 156" )
419 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p13 b 104 157" )
420 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p14 b 104 158" )
421 utils.sysexec_noerr( "mknod /dev/cciss/c0d9p15 b 104 159" )
422 utils.sysexec_noerr( "mknod /dev/cciss/c0d10 b 104 160" )
423 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p1 b 104 161" )
424 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p2 b 104 162" )
425 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p3 b 104 163" )
426 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p4 b 104 164" )
427 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p5 b 104 165" )
428 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p6 b 104 166" )
429 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p7 b 104 167" )
430 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p8 b 104 168" )
431 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p9 b 104 169" )
432 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p10 b 104 170" )
433 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p11 b 104 171" )
434 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p12 b 104 172" )
435 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p13 b 104 173" )
436 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p14 b 104 174" )
437 utils.sysexec_noerr( "mknod /dev/cciss/c0d10p15 b 104 175" )
438 utils.sysexec_noerr( "mknod /dev/cciss/c0d11 b 104 176" )
439 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p1 b 104 177" )
440 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p2 b 104 178" )
441 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p3 b 104 179" )
442 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p4 b 104 180" )
443 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p5 b 104 181" )
444 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p6 b 104 182" )
445 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p7 b 104 183" )
446 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p8 b 104 184" )
447 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p9 b 104 185" )
448 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p10 b 104 186" )
449 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p11 b 104 187" )
450 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p12 b 104 188" )
451 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p13 b 104 189" )
452 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p14 b 104 190" )
453 utils.sysexec_noerr( "mknod /dev/cciss/c0d11p15 b 104 191" )
454 utils.sysexec_noerr( "mknod /dev/cciss/c0d12 b 104 192" )
455 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p1 b 104 193" )
456 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p2 b 104 194" )
457 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p3 b 104 195" )
458 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p4 b 104 196" )
459 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p5 b 104 197" )
460 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p6 b 104 198" )
461 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p7 b 104 199" )
462 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p8 b 104 200" )
463 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p9 b 104 201" )
464 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p10 b 104 202" )
465 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p11 b 104 203" )
466 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p12 b 104 204" )
467 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p13 b 104 205" )
468 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p14 b 104 206" )
469 utils.sysexec_noerr( "mknod /dev/cciss/c0d12p15 b 104 207" )
470 utils.sysexec_noerr( "mknod /dev/cciss/c0d13 b 104 208" )
471 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p1 b 104 209" )
472 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p2 b 104 210" )
473 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p3 b 104 211" )
474 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p4 b 104 212" )
475 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p5 b 104 213" )
476 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p6 b 104 214" )
477 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p7 b 104 215" )
478 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p8 b 104 216" )
479 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p9 b 104 217" )
480 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p10 b 104 218" )
481 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p11 b 104 219" )
482 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p12 b 104 220" )
483 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p13 b 104 221" )
484 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p14 b 104 222" )
485 utils.sysexec_noerr( "mknod /dev/cciss/c0d13p15 b 104 223" )
486 utils.sysexec_noerr( "mknod /dev/cciss/c0d14 b 104 224" )
487 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p1 b 104 225" )
488 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p2 b 104 226" )
489 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p3 b 104 227" )
490 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p4 b 104 228" )
491 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p5 b 104 229" )
492 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p6 b 104 230" )
493 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p7 b 104 231" )
494 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p8 b 104 232" )
495 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p9 b 104 233" )
496 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p10 b 104 234" )
497 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p11 b 104 235" )
498 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p12 b 104 236" )
499 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p13 b 104 237" )
500 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p14 b 104 238" )
501 utils.sysexec_noerr( "mknod /dev/cciss/c0d14p15 b 104 239" )
502 utils.sysexec_noerr( "mknod /dev/cciss/c0d15 b 104 240" )
503 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p1 b 104 241" )
504 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p2 b 104 242" )
505 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p3 b 104 243" )
506 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p4 b 104 244" )
507 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p5 b 104 245" )
508 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p6 b 104 246" )
509 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p7 b 104 247" )
510 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p8 b 104 248" )
511 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p9 b 104 249" )
512 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p10 b 104 250" )
513 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p11 b 104 251" )
514 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p12 b 104 252" )
515 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p13 b 104 253" )
516 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p14 b 104 254" )
517 utils.sysexec_noerr( "mknod /dev/cciss/c0d15p15 b 104 255" )