I'm no expert in this area but LVM may be the answer to the 'restore to a known state' problem
The key paragraph from that page I saw was this:-
In LVM2, snapshots are read/write by default. Read/write snapshots work like read-only snapshots, with the additional feature that if data is written to the snapshot, that block is marked in the exception table as used, and never gets copied from the original volume. This opens up many new possibilities that were not possible with LVM1's read-only snapshots. One example is to snapshot a volume, mount the snapshot, and try an experimental program that change files on that volume. If you don't like what it did, you can unmount the snapshot, remove it, and mount the original filesystem in its place.
just replace the words "experimental program" with "classroom work"
anyone care to comment? do we have LVM2 on any of the raspi distro builds?