Don't get me wrong, what you see is what you see, and I'm not there.
However, imaging 30 systems with UNDI on a single DS is a performance killer. The Engine has to distribute packets in 30 different streams all at the same time, keeping track of all 30 streams of packets that are never in synch. That's a LOT of work!
If you multicast 30 systems, the engine only has to keep track of a single data stream. True, the speed overall slows as it slows down to keep with the lowest common denominator, but overall, at least the engine only has to track a single data stream. You could use 10 seperate 30system multicasts and have less work for the 30 unicasts. You'd image 300 systems with 1/3 the work on the engine.
So, what you're seeing now is actually what I'd expect to see, if that makes sense. I would expect to see slow imaging in DOS, and with UNDI drivers. Remember, UNDI drivers aren't usualy even rev 1.0, so there's no performance tuning in those or anything. They either work or don't.
Just wait to see what you get in WinPE with Multicast. If the WinPE download is too slow, you can try Linux, but drivers are harder to come by. Speed though in WinPE is amazingly fast.
GL!
PS> Multicast failures do happen. The "lowest common denominator" issue has a limitation to it. Here's how it works, and I should let you know that there's less failure in WinPE than DOS with this due to greater memory access - you'll see.
You have a single multicast master that is streaming data from the DS to it's hard drive, and into RAM. These packets all get spun up into ram, assembled into the correct order, and dumped to the drive. They also get sent on to the multicast clients.
If a client falls behind, it pings the master for the packets it's missing. The master doesn't just supply missing packets, it backs up and starts FROM the missing packet. This is what slows the multicast down as it gets larger and larger. Latency is a huge issue here.
If the master however doesn't HAVE the packet, it kicks the client from the stream, essentially saying "dude - too late - you're out!". It doesn't go back to the DS to request the packet again, it simply moves forward.
Thus, failure in WinPE is less than in DOS, because of greater RAM access. :D