330 likes | 455 Views
Using BITS to Transfer Ghost Images. Tim Leamy IET – Academic Technology Services UC Davis. Outline. Why? Background & History Win9X WinXP – initial attempts Two partitions BITS Image creation overview Details Windows FreeDOS Initial PC setup. Why?. Ghost works well for imaging
E N D
Using BITS to Transfer Ghost Images Tim Leamy IET – Academic Technology Services UC Davis UCCSC 2009
Outline • Why? • Background & History • Win9X • WinXP – initial attempts • Two partitions • BITS • Image creation overview • Details • Windows • FreeDOS • Initial PC setup UCCSC 2009
Why? • Ghost works well for imaging • But built-in tools have issues moving large image files, especially across multiple subnets • BITS Solution • Single server for all images • Images reliably transferred in the background while PCs are in use • Very short downtime to image • Free – already in Windows • Same BITS solution should apply to other imaging packages UCCSC 2009
Background & History • Computer Lab Management • 18 computer rooms • 10 separate networks • 330 PCs • Maintain 12 different images • Ranging from 5–10GB • PCs locked down and profiles deleted nightly UCCSC 2009
Background & HistoryWindows 95 – Windows ME • Win 9X – used PC-Rdist • Worked extremely well • Could rebuild registry in DOS before Windows started • Easy to copy changes from one lab to the next UCCSC 2009
Background & HistoryWindows XP • Win XP • Didn’t work well with PC-Rdist • Needed to use Ghost for initial install • Switched to using Ghost • Testing in the office worked well • Attempted to use one Ghost console for labs on multiple subnets • Attempted to multicast across routers UCCSC 2009
Background & History Ghost network issues • Encountered difficulties with Ghost tools working across different networks • Network connectivity & reliability across routers • Multicast didn’t work across routers • Large images meant long downtime UCCSC 2009
Background & HistoryTwo Partitions • Eureka moment – Ghost uses “virtual partitions” – why not use real ones? • Created two partitions on hard drive • FreeDOS partition • 4GB initially with FreeDOS, Ghost, and image files • Now 40GB • WinXP partition • Rest of disk UCCSC 2009
Background & HistoryTwo Partitions • Used PC-Rdist to copy ghost image files from server to FreeDOS partition • Worked ok • Very fast to ghost from one partition to the other • Simple – put new image on server and it was copied to all clients • Could manage images for all labs from my office • But … UCCSC 2009
Background & HistoryTwo Partitions • Problems • PC-Rdist took a while to copy down image files • Could make a PC unusable for 15 minutes in middle of day • Copying image to entire lab was very slow UCCSC 2009
Background & HistoryBITS • Background Intelligent Transfer Service (BITS) • Used for Windows Automatic Updates • Already Built into XP • Robust • Uses “spare” bandwidth to download files in background • No disruption to student use • Uses standard web protocols UCCSC 2009
Background & HistoryBITS • Switch to BITS • Moved images to web servers • Downloaded bitsadmin.exe • Created bits.pl script • Used cron for automation UCCSC 2009
Background & HistoryBITS • Worked Great! • Images transferred in background • Very reliable – copy image up to server and all PCs restored the next morning • Fast – PC have only ~10 minutes downtime for imaging • Easy to manage images UCCSC 2009
Image Creation Overview Logon as restore • Sets Freedos partition as active • Reboots and reimages itself • Install new software, configure it, etc. • Run freedos.cmd in Windows to reboot to Freedos partition • Prepares the PC for imaging • Clears event logs, set NIC to DHCP, etc • Reboots to FreeDOS partition • Run image.bat to create new image UCCSC 2009
Image Creation Overview continued • Run windows.bat to reboot into Windows • Run upload.cmd to copy new image to server • Move the updated image to the proper directory in the web server • The other PCs will see new image and download it in background with BITS • Takes a few hours to download, but PCs are still in use • PCs are turned off that night. • PC set to boot at 4:00am everyday • Boot to FreeDOS partition • Installs new image • Reboots to Windows UCCSC 2009
The Details • Windows side • FreeDOS side • Circular – so some things won’t make sense until the end UCCSC 2009
The Details – Windows Side • Utilities • bitsadmin • robocopy • gdisk32 • cron • ActiveState Perl UCCSC 2009
The Details – Windows Side • bits.pl • Runs every half-hour via cron • Checks status of BITS job (lines 39-77) • If a new images has been downloaded it copies new image files to Freedos partition and creates flag file (lines 50 – 61) • Checks web server for updated image files (lines 79-99) • Creates BITS jobs to download images with bitsadmin (lines 106-135) UCCSC 2009
The Details – Windows Side • Scripts – Windows Startup script • Sets environment variables used by other scripts from the PC name • LAB, PC_NUMBER • Sets IP address if needed UCCSC 2009
The Details – Windows Side • Scripts – Windows Logon script • If username is restore it sets the restore flags and reboots PC UCCSC 2009
The Details – Windows Side • Scripts – Windows Shutdown script • If flag file exists it uses gdisk32 to make the Freedos partition active • Runs restore.pl to create restore.bat • Clean up before imaging • Clears some log files & event logs • Set NIC to DHCP • Robocopy to make sure Freedos partition has correct files UCCSC 2009
The Details – Windows Side • restore.pl • Runs in shutdown script • Creates restore.bat in the Freedos partition • Uses lab and pc_number environment variables • restore.bat is custom for each PC • PC Name • SID UCCSC 2009
The Details – Windows Side • Scripts - freedos.cmd echo clean > c:\temp\clean gdisk32 1 /act /p:1 /i c:\ucd\sd 4 UCCSC 2009
The Details – Freedos Partiton • Utilities • ghost • gdisk • ghstwalk • wait • reboot UCCSC 2009
The Details – Freedos Partiton • Scripts - autoexec.bat @echo off path=c:\ del *.tmp wait 5 Starting computer.... if errorlevel 1 goto end echo Starting restore c:\restore.bat :end UCCSC 2009
The Details – Freedos Partiton • Scripts - restore.bat rem Setting up to restore PC #00 in 163LIB c:\ghost -clone,mode=pload,src=\images\winxp.gho:1,dst=1:2 -sure -batch -fni -auto c:\ghstwalk /cn=XXXX /bv=1:2 /sid=XXXXXX /ignore_domain /sure /fni c:\gdisk 1 /act /p:2 /i c:\reboot UCCSC 2009
The Details – Freedos Partiton • Scripts – image.bat @echo off rem Make new ghost image in c:\images\winxp.gho rem delete ghost files (.gho & .ghs) but keep readme file echo y | del c:\images\*.gh? > nul: ghost -clone,mode=pdump,src=1:2,dst=c:\images\winxp.gho -z2 -fni -span -auto -sure dir c:\images UCCSC 2009
The Details – Freedos Partiton • Scripts – windows.bat gdisk 1 /act /p:2 /i reboot UCCSC 2009
The Details – Windows Side • Scripts - upload.cmd • Updates readme.txt in FreeDOS partition • Copies the updated image files to sever as LABNAME.new UCCSC 2009
Initial PC Setup • USB Hard Drive • FreeDOS • Uses ghost to install image with FreeDOS partition and empty 2nd partition to HD • Creates restore.bat • Copies image files to FreeDOS partition • Reboots to FreeDOS partition and ghosts itself UCCSC 2009
Initial PC Setup • Linux Flash Drive • Also working on bootable flash drive with Linux • Connects to network and downloads image files from web server • Partition table differences – so there are some difficulties • Initially used floppies with DOS networking. But trying to move away from them. UCCSC 2009
What do you need? • Web server for images • 2nd partition on hard drive • Determine what restore.bat should contain for your setup • Script to create restore.bat if needed UCCSC 2009
For More Info • UC Davis BITS Website • http://lm.ucdavis.edu/people/tim/lab/winxp/ • Tim Leamy • tcleamy@ucdavis.edu • Q&A UCCSC 2009