ITE Lab Maintenance Procedure Manual

From CSEE Documentation

This page is available for historical record, but no longer relevant to our environments.

Please Note: Information in this document may be out of date. Please see the CSEEIT (preferably Chaocheng Wu, Geoffrey Weiss, or Daniel Westphal) for more current information.


This document is intended to give the reader a full background on the procedures used for maintaining software for over 80 individual computers in 5 labs. They will also gain an understanding on how to manage and customize software for Windows XP, as well as requesting services from other branches of the OIT hierarchy.

The layout of this document is intended to be procedural, so many subjects are given in the form of instructions or references to instructions.

Terminology Used

noun. a copy. ex."I have an Image of that on my hard drive."
verb. to copy the contents of one hard drive to another storage device bit for bit, or vice versa. ex. "It will take about 40 minutes to image that drive."
noun. a reference image, stored on a remote or removable device (e.g. "" or a USB hard drive). ex. "Use the master on install.cs."
noun. a machine designated to create a master image. ex. "I installed VMWare on the build."
verb. to install software or configure settings on this designated machine. ex. "I'm going to build Wesley.cs with the new Cadence."
verb. like its namesake program, Norton Ghost(c), this term is used to describe a mass-imaging process to multiple machines via multicast. In this document, the free utility udp-cast is used to do this. ex. "I was going to ghost the lab, but then I noticed there was something wrong with the build."

Overview of the Process

More detail on this process will be in the rest of the document, but it is important to know the workflow from start to finish and at which point one has reached.

  • Building the Machine
    • Installing base image
    • Installing software
    • Testing
    • Sysprep
  • Imaging from the machine, or mastering
    • Combining images
    • Create the master image
    • Test master image on a single target
  • Ghosting the lab or imaging to the machine
    • Running UDP-Cast
    • Reboot, test for success
  • Maintaining the lab
    • Network troubleshooting
    • CFEngine customization
    • Updating the image

Workorder Request Procedures

Your effectiveness will depend on the abilities of others to do their jobs. It is best to excercise patience and enter a work order in advance. This section will simply cover how to enter a work order and how to maintain communications, and not how to make a specific request. If it is easier to imagine, this section is very similar to a function, wherein the only input parameters are whom to forward and the description of the problem.

Physical Plant Workorder Request Procedure

The assistant to the chair of CSEE, currently Jane Gethman, handles requests for the Physical Plant on behalf of CSEEIT and the ITE building. While this is a procedure, do keep in mind to be courteous with your co-workers and peers.

  1. On a sheet of paper, outline the following
    1. Which room or rooms the problem is occuring.
      • Like "ITE 375"
    2. A description of the problem,
      • Such as "The following power outlets are out" or "The following network jacks are physically damaged"
    3. Follow up with details, so that the Physical Plant workers know what they are looking for.
      • Serial numbers: "Network Jack 307-11-TC3"
      • Locational references: "The floor outlet located at the second row from the front row, and second column from the left of the classroom"
  2. Provide this information in person so that Jane has enough time to relay the request to the Physical Plant.
  3. If nothing has appeared to happen within a week, contact Jane in person to find out if there is any update with the situation.

OIT Workorder Request Procedure

OIT has a ticket system which is used for all communication. This is used for all network requests, request replacement monitors outside of warranty, AD requests, and other IT functions.

  1. In a web browser, go to:
  2. Enter your full name; first name and last name.
  3. Enter your umbc email address.
  4. Enter daytime (meaning work time) phone number: 4104553423
    • This number goes to the ITE 307 Systems office phone.
  5. Select computer brand from drop-down list. This will almost be certainly a Dell.
    • Will not matter for some tickets, but the form will crash if something is not selected!
  6. Select computer OS from drop-down list. The CSEE Redhat Linux should be considered "UMBC
    • Again, select something or the form will crash.
  7. In the text field, enter "Please CC to Geoff Weiss" (or the appropriate CSEEIT manager) for the first line.
    • Geoff Weiss is the CSEEIT Systems Manager, and he needs to be provided a copy of the email or he will not be able to approve it via Remedy.
  8. Provide the support group who will handle the ticket -- this info is for the Helpdesk who forwards the ticket.
    • Examples include "Forward to OIT Desktop Support" or "Forward to Physnet"
  9. This step is for detailing the request.
    • Examples include "Activate network jack 307-12-TC3 for the classroom network" or "My feet itch". The latter may require medical attention and OIT may not be of good assistance.
  10. In the text field, enter "I can be contacted during my working hours Monday through Friday from 1:30 to 3:00 at 5x3423"
    • Provide information on when and how they can contact you as the ticket is resolved.

Network Procedures

For later procedures in the document, you will need to connect and configure a machine to one of the CSEEIT networks in a Linux LiveCD environment. These configurations would be powerless without the support from the Physnet branch of OIT, who will manage how network jacks are configured and what IP address and hostnames your MAC addresses will be assigned.

Subnet Information Collection

This will define how to get information on the subnet, which is done repeatedly enough to have its own procedure. Input parameter is the name of the subnet. Output parameters are the subnet mask, the gateway, and the host range.

  1. Posted in the ITE Systems office, there is a printout of the ITE and ECS subnets. Look at it.
  2. Find the subnet you are looking for. You are responsible for the CS Departmental Classroom.
  3. Be aware of the subnet mask (, the gateway (, and the host range ( -

Hostname and Network Assignment

To establish a new hostname and/or network assignment:

  1. Aquire the hardware MAC address by booting into a Linux System Rescue CD on the machine.
    1. Run ifconfig eth0 | head -n 1
    2. Extract hardware MAC address from output after "HWaddr"
      • example: 00:0B:DB:47:B9:FC
  2. If the machine needs to be activated for a specific network subnet, follow the Subnet Information Collection Procedure.
  3. Follow the Workorder Request Procedure
    1. Enter "Forward to Physical Networks"
      • also known as PhysNet
    2. Replace "Please replace the following MAC address to this hostname: 00:0B:DB:47:B9:FC in DHCP on CS Departmental Classroom VLAN"
      • PhysNet prefers to perform this task in batches, so list as many machines as possible in one request
    3. If a new machine needs to be added to a specific network, "Please add <host> with MAC ____________, IP ____________ in the CS Departmental Classrom VLAN to DHCP, forward DNS, and reverse DNS."
  4. Tickets take around three days to be completed.
  5. When you receive an email saying the ticket is complete, test to see if the configuration is correct:
    1. Run nslookup and verify the IP address returned is correct.
    2. If it does not return, immediately reply to the email and say nslookup does not resolve the provided hostname
    3. Include the DNS server it used, typically
    4. Compare the returned IP to the list of IP ranges on the subnet.
    5. If the IP address does not correspond, reply to the email and say that the machine ( was not assigned to the correct network (CS Departamental Classroom VLAN).
    6. Provide the desired network subnet (, the gateway (, and the IP range ( that the machine should be connected to.
  6. Done!

Network Jack Activation

To activate a network jack for a specific network:

  1. Record the jack name (307-12-TC3)
  2. Follow the Subnet Information Collection Procedure, and record the network information for the desired network (CS Classroom)
    1. Provide the name (CS Departmental Classroom VLAN).
  3. Follow the Workorder Request Procedure
    1. Input "Forward to Physnet"
    2. Input "Please activate network jack 307-12-TC3 for the CS Departamental Classroom VLAN"
  4. Wait.
  5. When you receive an email saying the ticket is complete, test to see if the configuration is correct:
    1. Connect a machine that is supposed to be on that specific network (
    2. Boot it into a Linux System Rescue CD environment
    3. Make sure DHCP got an IP address by running the ifconfig -a command.
      1. If the machine is correctly connected to the network, you should be able to ping the gateway.
        1. Run: ping
        2. If there is no response, then reply to the ticket and say that it does not appear that the jack was activated for the correct network.
  6. Done.

Network Configuration

This procedure will set up a machine for a DHCP in a Linux environment. Note that this procedure is not recursive. For example, if it is called from the Network Jack Activation Procedure, and it is evident that the network jack is at fault, then this procedure will not call the Network Jack Activation Procedure and instead return as a non-successful test.

  1. Follow the Subnet Information Collection Procedure
  2. On another machine, find the ip address for the hostname you are currently configuring.
    • nslookup
    1. If nslookup does not return an address, follow the Hostname and Network Assignment Procedure.
    2. If nslookup returns an address that does not correspond to the collected subnet IP range, then again follow the Hostname and Network Assignment Procedure.
  3. If it is not already in a Linux environment, boot into a Linux System Rescue CD environment.
  4. Stop the system's attempt to connect to the network
    • /etc/init.d/net.eth0 stop
  5. If the network is DHCP-based, run dhcpcd eth0
  6. Test the configuration
    1. nslookup should resolve, so run nslookup
    2. If it does not return, then the network jack must not be activated for the correct subnet. Follow the Network Jack Activation Procedure.
  7. Done.

General Network Troubleshooting Procedure

This procedure is for determining the source of a general network failure, which will then either be resolved with a trivial solution or a call on a more sophisticated procedure.

The general idea here is "do the easiest thing first," but the steps can be performed in any order, especially is one is highly suspect depending on the scenario.

  • This would be a good place to include a flow chart, as an itemized list can only do so much

Possible Conclusions:

  1. The jack is dirty.
    1. Spray the jack with compressed air using short bursts.
    2. (Optional) Use a q-tip and some cleaning alcohol (not ammonia) and swab the jack.
  2. The jack is inactive or assigned to a different subnet
    1. Follow the OIT Workorder Request Procedure, or Network Jack Activation Procedure
      1. Input "Forward to Physical Networks"
      2. Input "Please confirm the following Jack ID to be active and configured for the CS Departamental Classroom VLAN: 307-12-TC3"
  3. The cable is damaged
    1. Connect the suspect cable from the jack to a known working computer.
      • If this works, then the computer in question has become suspect
    2. Connect the computer in question with a replacment cable to the jack.
    3. If neither works, then
  4. The switch is inactive or damaged
    1. Power-cycle (pull power-cord) the switch and observe which LEDs reactivate
    2. Replace the switch with a known good switch
  5. The computer ethernet device is inactive or damaged
    1. Re-initialize the drivers in Linux (Or reboot Windows)
      1. Find the device using lspci and lsmod
      2. Remove the module, then reinitialize it and watch the output of dmesg
        • rmmod e100; modprobe e100; dmesg | tail
        • If the driver is compiled into the kernel, reboot the system
    2. Test the ethernet device on the dynamic network
    3. If this doens't work, the ethernet device is suspect
    4. Install a second ethernet device and connect it to dynamic
    5. If this succeeds, the suspect ethernet device is likely to be damaged
  6. The computer configuration is incorrect
    1. Follow the Network Configuration Procedure with DHCP
      • If this doesn't work, try manual addressing
    2. Follow the Network Configuration Procedure manual addressing
      • If this doesn't work (and the cable and jack are good) then the jack configuration is incorrect

Routine Procedures

These are very simple procedures that are defined here instead of being continually rewritten.

Device Mounting

In a Linux System Rescue CD environment, do:

  1. Run mkdir /mnt/remote
    • You may skip this step, but later procedures will use /mnt/remote.
  2. If using NFS:
    1. Unless done so by an earlier procedure, follow the Network Configuration Procedure.
    2. Contact the administrator for the install server and request write permissions for the hostname of the machine you are on
    3. Run mount -t nfs /mnt/remote
  3. If using USB, run mount -t xfs /dev/sda1 /mnt/remote

Windows Administrative Login

  1. At the login screen, press "Ctrl-Alt-Del"
  2. Click "Yes" to agree with the Annotated Code of Maryland.
  3. In either password or username, enter 1 letter of your choice.
  4. Press "Shift-Backspace"
    • This unlocks the domain drop-down menu
  5. Select "Rhesus (This Computer)"
    • Where Rhesus is replaced with the hostname of the computer that you are on
  6. Input "Administrator" in the username text field.
    • It can also be Administrative, OIT disables that account for newer Windows Base Images for CSEEIT usage
  7. Input Administrator's or Administrative's) password into the password text field.
  8. Click OK
  9. Wait a moment, then click OK for the "AFS User not found" error message
  10. You have now successfully logged in.

Dell BIOS Update Procedure

  1. Boot into Windows, and follow the Administrative Login Procedure.
    1. Alternatively, if the ITE Lab Image is not installed, either use the default Windows image on the machine or install Windows XP SP2
  2. In a web browser, go to
  3. Locate the service tag number on the computer
    • It should look something like "2LLT0F1"
  4. Input the service tag on the support page, and click "Go"
  5. Click on "Drivers & Downloads" in the box labeled "Helpful Links"
  6. Download the executable to the desktop
  7. Double click. When the application completes, the system will reboot.
  8. Verify the changes are correct by going into system setup. The BIOS version should reflect the update.

Windows Building Procedures

This section will discuss everything that needs to be done for a Windows Build.

Base Image

  1. Follow the Workorder Request Procedure
    1. Enter "Please forward to OIT Desktop Support"
    2. Enter "Requesting an image for a Dell Optiplex 755"
    3. Make sure to provide contact and time information. You will need to make an appointment in some cases.
  2. If OIT does not have the drivers to install one of their images via Norton Ghost
    1. Apply an older, compatible image to the build machine.
    2. Modify the image until it works
    3. Alternatively, wait until OIT develops an image for an equal or equivalent image.
      • OIT may not have full documented procedures for installing all of their software.
  3. Follow the Norton Ghost Imaging Procedure
  4. Wait for the machine to complete SysPrep
  5. Follow Image Creation Procedure to image the entire drive.
    • Even if the drive is very large, the compression will remove a lot of the unused space that comes with a new image.
    • This backup will prove valuable in case the current build is damaged beyond recovery.
    • Name the image along the lines of ite375.sda.oit.xp+tmp.dd.gz
  6. Done! Proceed onto system customization, or go directly to the SysPrep procedure if the base image is sufficient.

Windows Update

Normally, this automatic procedure goes without problems and is generally important. But sometimes it goes horribly wrong. Depending on the error code, try the following:

  1. Error Code # 0x80246008
    1. From Start, select Run
    2. Enter services.msc and press enter
    3. Ensure the RTC and BITS services are running.
  2. Error Code # 0x80080008
    1. Follow procedure for Error Code # 0x80246008.
    2. Select Run from the start menu and enter cmd.exe
    3. Input the following commands into CMD:
      net.exe stop wuauserv
      regsvr32 wuapi.dll
      regsvr32 wuaueng.dll
      regsvr32 wuaueng1.dll
      regsvr32 wucltui.dll
      regsvr32 wups.dll
      regsvr32 wups2.dll
      regsvr32 wuweb.dll
      regsvr32 MSXML3.dll
      net.exe stop wuauserv
  3. Other Error Code
    1. While a solution has not been found:
      1. Input error code into Google or Microsoft Knowledge Base
      2. Try a result from search
      3. If it is a success, the solution has been found
    2. Copy error code and solution into this document.


If anything is changed, reboot the machine 3 times to ensure that it does not generate a message on boot after the image has been ghosted.

Virtual Memory

Virtual memory should be ok. Note that sysprep changes this to the default automatic configuration, so all machines need to be modified manually to use a sufficient amount of virtual memory.

Steps for configuring virtual memory:

  1. Follow the Administrative Login Procedure
  2. Right click on "My Computer" and select "Properties" to bring up the "System Properties" window.
  3. Left click on the "Advanced" tab and Left click on the "settings" button in the "Performance" section to bring up the "Performance Options" window.
  4. Left click on "Change" under the "Virtual Memory" section to bring up the "Virtual Memory" window.
  5. In the "Virtual Memory" window, select drive C from the list of drives.
    1. Left click on the "No paging file" radio button
    2. Left click on "Set"
  6. Select drive C from the list of drives.
    1. Left click on the "Custom size" radio button
    2. In the "Initial" text field, input 2048.
    3. In the "Maximum" text field, input 3072 (or more, this maximum was gauged for a 5GB partition that shares AFS caching and user profiles)
    4. Left click on "Set"
  7. Left click on "OK" until you're prompted to restart, at which point left click on "Yes."
  8. Done.

Networked Printers

Some labs will have a dedicated printer. In this case, these are the steps to install a networked printer on the build machine:

  1. Follow the Administrative Login Procedure
  2. In network places, connect to with your AFS user permissions.
  3. Find the printer that corresponds to the lab, right click on it, and select "add printer."
  4. Have drivers availiable if Windows cannot locate them.
  5. Print a test page to confirm the configuration is correct.


The core of CSEE's purpose is to provide its customer's labs with software for specialized environments that either involves unique hardware or licensed software.

Dr. Chintan Patel has the most control over software aquisition, so most third-party issues end up with him.


  1. Aquire volume ID string for C:
    1. From start menu, select "Run..."
    2. Type in "cmd" into the text field, and click on "OK."
    3. In the console, type in "DIR" and hit the enter key.
    4. The volume ID will be diplayed on the first line of output.
      • example: 3C03-EC11
  2. Provide volume ID string to Dr. Patel, who will send it to National Instruments for a site license.
  3. Wait
  4. Install the LabView Software
    1. Start with the Academic Site License Core DVD labelled "ASL_S07_LVCore-E" first.
    2. Run D:\Setup.exe
      • Ignore the serial key entry, just keep clicking next, then install.
    3. Wait.
    4. On system reboot, it should continue as normal. If it does not, restart D:\Setup.exe
    5. Wait.
    6. When it completes, You will be prompted to input a 20-character code, automatically aquire a code, or go online. Choose to input a 20-charater code, unless you do not have any codes aquired.
      • Keep codes on a text file secured for Administrator's viewing only
      • C:\Documents and Settings\Administrator\Desktop\NI_keys.txt
    7. From NI_keys.txt, apply the "LabView 8.2" code to the blank space.
    8. Repeat for "LabView SignalExpress 2.0", or "LabView SE 2.0" in the text file.
    9. NI Circuit Design Suite will automatically run a Support and Upgrade Utility. Go ahead and perform the upgrade.
      • It may not succeed. Such is life.
    10. The system will again reboot.
    11. Input CD Labelled "ASL_S07_ContEmb" and run D:\Setup.exe
    12. Repeat key activation as normal.
    13. Input CD Labelled "ASL_S07_SigProCo" and run D:\Setup.exe
    14. Repeat key activation as normal.
  5. Install the LabView Drivers if Hardware is Present
  6. Activate the LabView Software
  7. From start menu, select programs, then National Instruments, then NI License Manager
  8. Go through the list of items and confirm that all installed products are under the Academic Site License or under an evaluation version.


During installation, Cadence uses a control file that dictates which parts of cadence are to be installed. The installer also makes use of a licensing server,

  1. Aquire control file from Dr. Patel. Put it under a new folder on Administrator's desktop.
    • C:\Documents and Settings\Administrator\Desktop\cadence\
  2. Input CD labeled "Cadence SPB_157 Base, ISR200609"
  3. right-click on mcaffee shield in status bar, select disable on-access scan
  4. Run D:\SPB_157\Base_SPB157_wint_1of4\SPB157_wint.Base\CDROM1\Setup.exe
  5. Click on "Install Products"
  6. Input 5280 for port number
  7. Input
  8. click next
  9. Navigate to control file on desktop under "cadence"
  10. Click next through all default options
  11. Wait
  12. Input path for Disc 2
    • D:\SPB_157\Base_SPB157_wint_2of4\SPB157_wint.Base\CDROM2
  13. wait
  14. Input path for Disc 3
    • D:\SPB_157\Base_SPB157_wint_3of4\SPB157_wint.Base\CDROM3
  15. wait
  16. System reboots
  17. Run D:\SPB_157\ISR200609081231_SPB157_wint_1of1.exe
  18. Accept license agreement
  19. Specify CDSROOT
    • C:\Cadence\SPB_15.7\
  20. Click next, wait
    • This upgrades Cadence from 15.7 to 15.7.007
  21. Eject disc, insert disc labeled "SPB15_7_ISR_2007"
  22. Run D:\SPB_15.7\ ISR200708090954_SPB157_wint_1of1.exe
    • Ignore the license and control files in D:\
  23. Click next and accept then next a few more times.
  24. Wait.
    • This upgrades Cadence from 15.7 to 15.7046
  25. When completed, request Prof. Patel to confirm installation is functional.
  26. If Patel's not around, try this:
  27. Run "Start," "Programs," "Cadence SPB 15.7," "Design Entry CIS"
  28. Select "Allegro PCB Design CIS L" and click OK.
  29. Click on "Help", then "About..."
  30. Note the serial Number and who the product is registered with.
    • UMBC
    University of Maryland Baltimore County
    Serial Number: 6703188
  31. Done.

VMWare Workstation

VMWare Workstation uses a site license key string that Geoff Weiss possesses.

  1. Go to VMWare's site
  2. Login with exiting username and password, or create your own
  3. Download Evaluation version
  4. On the survey, select "less than 100 employess" and check "Running Multiple Operating Systems" as well as "Classroom and Training."
  5. Check the "I agree to the terms..." box to confirm the End User License Agreement.
  6. Click the Register button
  7. Under "Binaries" click on "Main installation file for Windows 32-bit and 64-bit host"
  8. Save the file to the desktop.
  9. Click on the downloaded file named something like "VMWare-workstation-6.0.3-80004.exe" to install it.
  10. Click Next continuously to accept default values.
  11. When the installation completes, you may input a serial number. Skip this step if you do not already have the serial key on hand.
  12. The system will automatically restart.
  13. Aquire the Site License Key, which Geoff Weiss has.
  14. Run VMWare by clicking on the installed desktop shortcut.
  15. Click Yes to accept the terms of the license agreement.
  16. Click on "Help", then "Enter Serial Number..."
  17. Input Serial Number, "UMBC" for name, and "University of Maryland, Baltimore County" as the organization.
  18. To test the virtual machine, download and run minix3.
    1. Download Minix3 VMWare Player image.
      • It can be dowloaded from here:
    2. Extract the contents of the Zip file into C: Program Files VMWare Images
    3. Run VMWare Workstation from the installed shortcut on the desktop
      • If this is the first time running it, click Yes to accept the terms in the license agreement
    4. Click File, Open and navigate to the location of the MS-DOS.vmx file under the expanded Minix directory.
      • The serial key is needed to operate a virtual machine
  19. Done.


The Xilinx WebPack IDE allows students to program FPGA boards. While the Spartan3 chipset is used by CSEEIT, supporting all chipsets is not a bad idea.

It takes up about 5 GB in all.

  1. Download the Xilinx WebPack from
    • This will require creating an account with Xilinx.
    • Copy the registration key
  2. Run the installer.
    • Input the registration key when prompted
  3. Wait.
    • The installer itself is small because it downloads everything else offline, this will take some time
  4. Done!

OpenChoice Desktop Oscilloscope Capture

  1. Go to Tektronics's site to download the application.
    1. In the search text field, input "OpenChoice Desktop"
    2. Click on the first hit generated
      • Yes, this is the easiest way to find it
    3. Click on "Download"
      • you will be asked to login to myTek. Make a new account if you do not have one
  2. Install OpenDesktop by running the executable.
  3. Done.



Linux Building Procedures

Working with a Linux image is a lot less concrete than Windows. You apply a base image, then run updates on it through the network using CFEngine. While this involves a lot less imaging and ghosting, it does require some attention to detail, especially the CFEngine configuration.

Base Image Procedure

  1. Install RHEL5
    1. Reboot machine with CD labeled "RHEL5 Auto"
    2. The machine will try to gain an IP address from over the network so that it can receive configuration and packages from the KickStart server
      1. If it does not, follow the General Network Troubleshooting Procedure.
    3. This installation will then erase the entire drive and install RHEL5 Linux, customized for CSEE Systems.
  2. On completion of installation, the machine should be able to connect to the network and receive a unique hostname.
    • If it does not, log in with alternate root password.
  3. Allow CFEngine to run, and apply the latest updates and changes to the machine.

SysPrep Procedure

While there is no Sysprep in Linux, its equivalent in Linux is performed using a few commands. This will allow the Linux image, when ghosted to a lab, to generate new keys and aquire a hostname for itself.

  1. Run "rm /etc/ssh/*key*" to delete all SSHD generated keys.
  2. Run "rm /var/cfengine/ppkeys/localhost.*" to cfengine generated keys for this machine.
  3. Delete the line "" from the file /etc/sysconfig/network
  4. Done!

Adding packages to RHEL5 system

For all RHEL5 systems, there is a cron job that will update packages from a repository and remove any other packages from that repository. But sometimes a special tool or package is needed.

  1. On a system on which you have permission to do so, install the desired package file.
    yum install udpcast-20070218-1.i686.rpm
  2. Test to see if the package functions as expected and does not interfere with system operation.
  3. Move target package into CSEE AFS account.
  4. Log into util with ssh
  5. Enter root mode
    • Alternatively, allow an administrator perfom this
  6. With root permissions, goto the repository with cd /var/mrepo/
  7. Select the system you wish to include the package with
    cd rhel5c-csee-i386
  8. Select the system type you wish to include the package with
    cd local
    • Using local will upload to package to all systems in the rhel5c-csee-i386 group
  9. Copy the file from your home directory to the package directory
    cp tmeyer2/udpcast-20070218-1.i686.rpm /var/mrepo/rhel5c-csee-i386/local
  10. Update the repositories with mrepo -gv
  11. Either wait for cron to update or on a desired system run /usr/site/sbin/updaterpm.

CFEngine Procedures

If you are in the cfemaster group on, then you too can make changes to the multitude of systems under it. Most of it takes some intuition, so the procedures here are based on routine.

For the first few times modifying the CFEngine input files, always double check your code. Your fellow co-workers would rather help you figure out your code now rather than find your error when they're trying to figure out why their systems refuse to update.

Local Repository Updating

  1. If one doesn't exit, create a repository directory
    • mkdir /cfemaster/
  2. Then run the svn checkout command:
    svn co svn+ssh:// /home/csee1/tmeyer2/cfemaster
  3. Done! Now memorize everything in cfemaster/inputs/cf.*


  1. cd /cfemaster
  2. svn commit -m 'Changed root password for itelabs group' /cfemaster
  3. If a member of the cfemaster group:
    • ssh /var/cfengine/master/

Root Password Changing

  1. On a cseeit-managed machine, and as root, create a new desired password.
  2. Update the Local Repository
  3. Edit the password config file with nano cfemaster/inputs/cf.passwd
    • itelabs::
    { /etc/shadow
    LocateLineMatching ''^root:.*''
    ReplaceLineWith ''root:$1$PFdCUj/l$kv4kDFPsnRN4bwpKQ9AhX/:13672:0:::::''
    where "$1$..." is replaced with a new md5 hash.

Xen Building Procedures

This section will discuss everything that needs to be done for a build of any OS under Xen Para-Virtualization.

Base Xen Image

This procedure discusses how to create and configure a new image of any OS to run in a Xen domain.

  1. Follow the respective Building Procedure for the desired OS to run in a Xen domain.
  2. Make sure the partitions match with partition codes using fdisk -l
    • This is especially important when converting Windows to a new environment
  3. Image the Build to a remote location.
  4. On the Xen system, mount the remote location and run:
    • zcat /mnt/remote/ite242/20080128/ite242.sda.dd.gz >/var/lib/xen/images/xenimage.img
  5. Follow the Xen Configuration Procedure
  6. If using a Windows image, a repair installation needs to be performed.
    1. Insert a Windows XP Installation CD into the drive.
      • Important: disc must be unmounted in host domain when target guest domain is started.
      • Otherwise, unmount the CD in the host domain and reboot the guest domain.

Xen Configuration Procedure

This is a procedure to adapt an existing windows partition image into a Xen-compatible system.

  1. Prep Xen environment
    1. Run commands /etc/init.d/xendomains stop, and /etc/init.d/xm stop
      • Make sure that /usr/bin is earlier in the PATH environmental variable
      • Test with which python, which should return /usr/bin/python
    2. Follow the Image Application Procedure
      • Output to /var/lib/xen/images/Windows.img
  2. Create config files.
    • Use existing files as a reference, such as /etc/xen/xmexample1 and /etc/xen/xmexample2.
  3. Set domain to run automatically
    • Run ln -sf /etc/xen/WindowsXP /etc/xen/auto/WindowsXP
  4. Run xm create WindowsXP to create the domain
  5. Wait for the VM to load and run
  6. Run xm list to see if it's running or not.
    • The state column should be either 'r' or 'b'
  7. Done.

Remote Windows Desktop

While this can be done on any Windows lab machine, this procedure is essential for the host domain to have user-level access to a guest domain through remote desktop.

  1. Enable Remote Desktop
    1. Enter System Properties
    2. Click on "Remote" tab.
    3. Select "Allow users to connect remotely to this computer".
      • Only the Administrator can login by default.
    4. Click on "Select Remote Users"
    5. Click on "Add..."
    6. Click on "Advanced..."
    7. Find an Adult
      • Failing that, find an administrator with AD priviledges
    8. Click on "Object Types" and deselect everything but "Groups"
    9. Click "Find" to run the a blank search on AD.
    10. Click "OK" until it hurts.
  2. Disable UMBCGina
    1. From the start menu, select "Run..."
    2. Enter "regedit" in the text box and click "OK"
    3. In the left panel, navigate to
      My Computer\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\WinLogin
    4. Locate the key labeled "GinaDLL"
    5. Rename the key to something else, such as "FAILGinaDLL"
      • You can delete it, but that may not be to your advantage later down the line.
  3. Login remotely from a Linux system using rdesktop ite375win26.


Xen can be configured to use either a partition or an image file, so imaging is very simple and for most cases would not require rebooting into a SystemRescueCD environment so long as the udpcast package is installed and multicast broadcasting is not blocked.

  1. Follow Sysprep Procedure on target domain OS
    • Do not allow domain to automatically reboot
  2. Using Virt-Manager, click on the "Shutdown" button as soon as the emulated BIOS status appears.
  3. Reboot into a SystemRescueCD environment
    • Because udp-cast is not blocked, the xen domain services are not running, and XFS file system support is present.
  4. Follow imaging and ghosting procedures as normal.
    • Image files to be copied are located in /var/lib/xen/images, and can be treated as disk images as far as dd and gzip are concerned

Imaging and Ghosting Procedures

Once a build has been completed, it is time to create a master on a remote device. So the first procedure for imaging is to mount that remote device. There are two alternatives for this: NFS and USB. The NFS approach utilizes the install3 share on, where all lab images are contained. It requires that the machines be properly connected to the network, and has a hostname that will resolve to its IP address on that network. Another solution for collecting images is to mount a USB drive formatted with a file system optimal for large file sizes (such as XFS, for example - it has the fastest deletion time of large files for a non-contiguous file system).

After the image has been secured, the next step is to ghost it to a multitude of clients. This has been successfully done with an external hard drive on a UDP-Sender server, and all the clients running UDP-Receiver. Ideally it would be best to have a server running UDP-Cast, but at the moment it has not been sucessfully compiled for a solaris environment. Also, the SystemRescueCDs should be modified to automatically cache, dhcp, and eject themselves to ease the ghosting process.

Image Creation

  1. Follow the Device Mounting Procedure.
  2. To copy the bootsector:
    • dd if=/dev/hda bs=512 count=1 of=/mnt/remote/ITE240/20070821/hda.bootsect.dd
  3. To image the entire drive:
    • dd if=/dev/hda bs=1M | gzip -5 > /mnt/remote/ITE240/20070821/hda.dd.gz
  4. To image by partition:
    1. dd if=/dev/hda1 bs=1M | gzip -5 > /mnt/remote/ite240/20070821/hda1.winxp.dd.gz
    2. dd if=/dev/hda2 bs=1M | gzip -5 > /mnt/remote/ite240/20070821/hda2.tmp.dd.gz
      • And so on for all partitions in /dev/hda
  5. Extract partition data:
    • fdisk -l /dev/hda > /mnt/remote/ite240/20070821/hda.fdisk
    • This tops it off with recording readable partition data (note the cylinder data, it will be useful later on)

Image Application

  1. Follow the Device Mounting Procedure
  2. Establish or Confirm Partition Table
    1. Either copy the bootsector
      • dd if=/mnt/remote/ite242/20070821/hda.bootsect.dd of=/dev/hda
    2. Or Create a partition using fdisk
      1. Run fdisk -l /dev/hda
      2. Examine the existing partition layout. What is the total number of cylinders?
      3. Run cat /mnt/remote/ite242/20070821/hda.fdisk
      4. Examine the number of cylinders the image takes up.
        • In the case of 242, hda1 should start at cylinder 1 and end at cylinder 4800
      5. Run fdisk /dev/hda
        1. In the interactive mode, delete all existing partitions with the 'd' command.
        2. Create a new partition with 'n'
        3. Input 'p' for a partition number less than 5
        4. Input '1' for partition 1
        5. Enter the first unused cylinder number
          • Cylinder number 1
        6. Enter the second cylinder number
          • 4800 - 1 + N = 4799 + N, where N is the first cylinder number.
        7. Input 't', then '1' for partition, then code '07' to set the partition as NTFS.
        8. Input 'p' to see the new layout, then input 'w' to write and exit.
  3. Apply Image
    1. If a specific partition was to be copied over:
      • zcat /mnt/remote/ite242/20070821/hda1.winxp.dd.gz of=/dev/hda1
    2. Otherwise, copy the whole drive (bootsector included):
      • zcat /mnt/remote/ite242/20070821/hda.dd.gz of=/dev/hda

Image Combination

This is an advanced procedure for two images, but you can use your imagination for more. This is intended to do with two separate machines, but it is also possible to do it with just one. Make backups.

Please note this may be an obsolete procedure in light of virtualization with Xen.

This is an example dual-boot setup, not too unlike ITE240 with the Dell Optiplex 745. This can be adapted to different setups, such as the 3-OS casserole that is ITE375 with the Dell Optiplex 755.

  1. Start with a Windows Build.
    • It cannot be easily resized after this procedure, so make sure everything needed is installed
  2. Boot into SystemRescueCD.
  3. Resize the Windows image using gparted.
    • Allow ample free space beyond the end of the last partition.
  4. Image by partition.
    • This is a precautionary backup
    • If skipped, at least get the cylinder values from fdisk -l /dev/sda
  5. Optimally on a separate machine, create the Linux Build
    • Otherwise, you will have to reapply the Windows image after imaging the resized Linux image.
  6. Boot into SystemRescueCD
  7. Resize the Linux image using gparted.
  8. Image by partition to remote drive
  9. Compare the Windows and Linux fdisk files. If the sum of cylinders is greater than the total on the drive, your options are:
    1. Go back to an earlier step and continue resizing.
    2. Remove unesscessary software from one of the images (more than likely the Windows image).
    3. Inform the system administrator that the requirements exceed the resources availiable.
  10. Create partitions for the second image on the first image's drive.
    1. Calculate the number of blocks each partition for the second image needs.
    2. Apply this number when creating the partition using fdisk.
    3. verify the number of blocks is correct before issuing the write command with fdisk.
  11. Image to the first image's drive using the second image's partitons.
  12. Create secondary partitions (typically ones used by Linux and not imaged by partition) in free space
    1. format swap with label "swap" by using mkswap -L swap /dev/sda5
    2. format tmp with with label "/tmp" by using mke2fs -j -L /tmp /dev/sda6
    3. format afscache with label "/afscache" by using mke2fs -j -L /afscache /dev/sda7
    4. mkdir -p /mnt/linux
    5. mount Linux partiton with mount /dev/sda3 /mnt/linux
    6. edit using nano /mnt/linux/etc/fstab to reflect partition numbers and labels as expressed above
  13. Edit and Refresh GRUB
    1. edit using nano /mnt/linux/boot/grub/grub.conf to add the follwing lines:
      title Windows XP
      root (hd0,0)
      chainloader +1
      • menu.lst is also used as a replacement for grub.conf
    2. grub --no-floppy
    3. root (hd0,N) where N is the grub-equivalent of the Linux image partition
    4. setup (hd0) to establish the installation on the MBR.
  14. Reboot, verify that Windows and Linux work
  15. SysPrep Windows
  16. Reboot into a SystemRescueCD
  17. mount the Linux image and SysPrep Linux.
  18. unmount the Linux image.
  19. mount remote device of choice.
  20. Image the drive by mode of choice to remote device.
  21. Done. You now have a "golden master." Guard it well.


UDP-Cast is a file transfer program that works over multicast.


Setting up the image server

  1. Boot into a SystemRescueCD
    • Use kernel options docache, doeject, dodhcp
  2. Verify network connectivity with ifconfig eth0
  3. If the image file is on a remote device, mount it.
  4. Run udp-sender --full-duplex --file /mnt/remote/ITE242/hda.dd.gz
    • Alternatively, you can image from the hard drive direct with --file /dev/hda


Setting up the client

  1. Set up the server before setting up any clients.
  2. Boot into a SystemRescueCD
    • Use kernel options docache, doeject, dodhcp
  3. Verify network connectivity with ifconfig eth0
  4. If the image file is on a remote device, mount it.
  5. Run udp-receiver --file /dev/hda
    • If using a compressed image file, add --pipe zcat to the arguments
  6. Eject disk, move onto next client.
  7. If all clients are ready, go to server and hit the "any" key.
  8. Wait.
  9. On a successful complete transfer, reboot a client to verify the image was transferred successfully.
    • Alternatively, try to mount the image --- typically, if the transfer was corrupt the image will be unmountable or inaccessible
  10. If a client was corrupt or did not finish the transfer:
    1. Restart udp-sender on the server with the option --fec 8x8/128 to enable forward error checking.
    2. If FEC doesn't solve the problem, repeat as before, but only with one client at a time.
      • To speed things along, use completed clients that pass the mount test as unicast servers
  11. Reboot all remaining clients and server.

Norton Ghost

Sometimes, OIT will setup a Norton Ghost session on their image server. It is advisable to take advantage of this remotely, as their office smells funny.

  1. If the machine uses SATA, ensure that the mode is set to "Legacy" in the BIOS
  2. If the machine has no floppy drive, enable it in the BIOS if possible.
  3. Boot into the BartPE CD.
  4. Select Go, Programs, Symantec Ghost V8, and then Ghost32
  5. In Ghost32, select unicast session.
  6. Enter the name of the session provided by OIT
  7. Enter the server IP address:
  8. Verify that the image being written will fit on the target drive, and click on OK.
  9. Wait. System will reboot after Ghost completes.
  10. Allow system to complete sysprep.
  11. Follow the Windows Administrative Password Clearing Process

BitTorrent (Untested)

Using the core packages from Brian Cohen's python scripts, one should be able to start their own tracker, create a torrent file for it, and distribute that file over the network. While such a procedure would be useful for simultaneous transfer over a sub-optimal network (such as a 50 GB Windows image file for ITE375, which for whatever reason cannot support multicast reliably), complete with error checking. What it probably cannot do "out of the box" is writing to and from block devices (e.g /dev/sda1) directly.

Coincidentially, there is a large project called SystemImager ( that utilizes BitTorrent. This would also be worth a thorough investigation.

Basic Torrent Procedure (via

  1. Download sources
  2. Setup tracker
  3. Create torrent file
  4. Distribute torrent file
  5. Run clients with torrent file
  6. Wait until done, marvel at bandwitdh usage.



This means you!

ITE242 - Engineering Lab

Rewrite this section during or after Summer 2008


System: Dell GX270

Partiton Layout:

Table 1: Partiton Layout for ITE242
Device Start End Blocks ID System Description
/dev/sda3 1 4800 38555968+ 07 HPFS/NTFS Windows C:

Software used:
LabView, Cadence, Xilinx, XESS

Additional customizations:
LabView Drivers


E1GB Ethernet drivers present with Windows
Special private network configuration:
IP Address: Netmask:

ITE210 - Optoelectronics Lab

Rewrite this section during or after Summer 2008


System: Dell GX270

Partition Scheme:

Table 2: Partiton Layout for ITE210
Device Start End Blocks ID System Description
/dev/sda3 1 4800 38555968+ 07 HPFS/NTFS Windows C:

Software used:
LabView, Cadence, Xilinx, XESS

If you haven't noticed, this lab uses the exact same configuration as ITE242 - The only difference is that ITE210 does not use labview drivers.

ITE240 - Operating Systems Lab

Last Updated Summer 2007


System: Dell Optiplex 745

Partition Layout:

Software used:

Dell Optiplex 745

ITE375 - CAD Lab

Last updated Winter 2008

Table 3: Partiton Layout for ITE240
Device Start End Blocks ID System Description
/dev/sda1 1 5100 40965718+ 07 HPFS/NTFS Windows C:
/dev/sda2 5101 19452 115282440 0f W95 Ext'd (LBA) Extended Partiton
/dev/sda5 5101 7798 21671653+ 07 HPFS/NTFS Windows D: Temp
/dev/sda6 7799 10213 19398456 83 Linux RHEL5 /
/dev/sda7 10214 12703 20000893+ 82 Linux swap / Solaris Swap Partition
/dev/sda8 12704 13325 4996183+ 83 Linux /afscache


System: Dell Optiplex 755

Partition Layout:
Negligible, no special multi-boot partitioning required.

RHEL5 KickStart Install
Install option: ks=

Software used:
Xen for RHEL5
Cadence for RHEL4
LabView, Cadence, Xilinx, on Windows XP

Dell Optiplex 755

Due to the newer e1000 hardware, it requires RHEL5.1 and SystemRescueCD 0.4.1. Not only that, but it needs a A04 BIOS update right out of the box just so it can be compatible with OIT's software. Copying an older windows image (say, the 745 image) will result in failure.

As of 11/15/2007, these machines ship with the A03 version of the Dell BIOS. The update to A04 is urgent, so Follow the Dell BIOS Update Procedure.

ITE232 - Senior Design Lab


Dell Optiplex 270

Windows XP SP2 install
Dynamic network, non-OIT Lab image. As easy as it gets.
Do not forget to clear it out after the CMPE451 and CMPE450 courses are done with it.

Software installed:
OpenOffice, Firefox
Student installed software

Created by: Theodore Meyer
Last modified: April 10, 2009
Last modified by: Daniel Westphal

Transcribed to the CSEEIT Wiki on April 9, 2009 by Daniel Westphal.

-Information in this document may be out of date. Please see the CSEEIT (preferably Chaocheng Wu, Geoffrey Weiss, or Daniel Westphal) for more current information.