Steady State Disk Protection for Windows 7?


Disk Protection jest jedna z najciekawszych funkcjonalnosci pakietu Steady State. W najwiekszym skrócie, jego dzialanie polega na tym, ze stan dysku zapisywany jest w bezpiecznym (niedostepnym dla uzytkownika) miejscu i przy kazdym restarcie - odtwarzany. W efekcie, niezaleznie od tego co uzytkownik namiesza, zainstaluje albo popsuje, po restarcie systemu wszystko i tak powróci do stanu wyjsciowego. W wielu scenariuszach to bardzo kuszaca funkcjonalnosc. Problem jednak w tym, ze Steady State (niezaleznie od tego, ze i tak nie jest juz wspierany) dziala tylko w Windows XP i w Windows Vista. W Windows 7 zadzialac nie chce. Microsoft mówi, ze czesc funkcjonalnosci mozna zastapic przez mechanizmy Group Policy. Ale Disk Protection jako taki, dla Windows 7 nie istnieje. Dlatego, zainspirowany pytaniami sluchaczy sesji online na temat Steady State zaczalem kombinowac.

Ogólne zalozenie jest proste: skorzystac z faktu, ze Windows 7 moze startowac z dysku VHD i polaczyc to z dobrodziejstwami dysków róznicowych. Recznie sterowany proof of concept zadzialal zgodnie z oczekiwaniami, wiec  spróbowalem z czyms bardziej zautomatyzowanym. Teraz wyglada to mniej wiecej tak:

  • System startuje z czystego (pustego) dysku róznicowego, którego rodzic jest wzorcowym dyskiem z systemem.
  • Odpowiedni skrypt automatycznie uruchamia bcdedit tak, aby po kolejnym restarcie uruchomil sie Windows PE .
  • Uzytkownik pracuje i jak to uzytkownik - cos czasem popsuje.
  • Uzytkownik konczy prace i komputer jest restartowany.
  • Startuje Windows PE a w nim skrypt, który:
  • Uruchamia bcdedit tak, aby po restarcie wstal normalny system Windows
  • Kasuje dysk róznicowy (del)
  • Tworzy nowy dysk róznicowy (diskpart i create vdisk)
  • Restartuje komputer (wpeutil reboot)

I jestesmy w punkcie wyjscia.

Poniewaz przywrócenie wzorcowego systemu sprowadza sie do usuniecia pliku i zalozenia go od nowa, calosc operacji trwa ulamek sekundy. Nawet uwzgledniajac czas potrzebny na uruchomienie Windows PE, wszystko jest znacznie szybsze od operacji polegajacych na odtwarzaniu pelnych backupów.
Poza tym, wszystko daje sie zrobic standardowymi mechanizmami systemu Windows, bez dodatkowych czarów i dziwnych aplikacji. Jezeli ktos chce sam odtworzyc takie srodowisko, powinien miec:

  • System uruchamiany z róznicowego VHD - nalezy zainstalowac system na dysku VHD, potem zmienic nazwe pliku i utworzyc VHD róznicowy. Choc ladniej byloby zmienic nazwe w BCD, to jednak operacja na plikach jest prostsza.
  • Dual boot Windows7 / Windows PE - do zrobienia z wykorzystaniem WAIK, jednak WAIK nie musi byc zainstalowany na gotowym komputerze.
  • Kilka naprawde prostych skryptów (pod Windows PE uruchamia sie je automatycznie przez Startnet.cmd )

I dziala!

Jako samodzielne cwiczenie polecam utworzenie skryptu, który tymczasowo podlacza oryginalny dysk VHD. Bedzie to uzyteczne w sytuacji, gdy administrator zechce zainstalowac poprawki. W takiej sytuacji, automatyczne przywrócenie stanu sprzed zmian moze byc nie miec sensu.

Warto zastanowic sie, czy wirtualny dysk-wzorzec powinien byc dynamiczny czy statyczny. W przypadku dysku dynamicznego, system i tak "udaje", ze jest on statyczny, aby zagwarantowac, ze nie zabraknie mu miejsca. Jezeli w czasie startu systemu taka rezerwacja sie nie uda, to system wyswietli BSOD o kodzie 0x136. Warto wtedy wiedziec w czym problem, poniewaz w dokumentacji dosc trudno o takim bledzie znalezc choc slowo.

Autor: Grzegorz Tworek [MVP]

Comments (5)

  1. ThinPC to raczej celowane w większe firmy rozwiązanie oparte o wirtualizację stacji roboczych, niż prosto "wyrzeźbiony" kiosk internetowy. Ale oczywiście w wielu scenariuszach sprawdzi się idealnie.

  2. Można na wiele sposóbów, choćby przez zautomatyzowanie backup i restore czy innego obrazowania dysku. Mi jednak chodziło o rozwiązanie czysto systemowe. Może to kwestia jakiegoś skrzywienia, ale takie właśnie lubię najbardziej 😉

  3. Anonymous says:

    wedle doqmentacji i doświadczenia praktyczne w w7 embedded jest EWF – Enchanced Write Filter… i działa dobrze.

    embeddedlounge.blogspot.com/…/ewf-in-windows-embedded-standard-7.html

    blogs.msdn.com/…/ewf-overlay-limits-on-windows-embedded-standard-2009-and-2011.aspx

    czy nie o to chodzi?

  4. Peki says:

    Ostatnio to przerabiałem u jednego z klientów, i niestety sposób z vhd ma jedną wadę – działa tylko na wersjach Enterprise i Ultimate. Wersje Pro nie zbutują się z vhd – wyskoczy błąd o niespieraniu uruchamiania przez tę wersję licencyjną. A jednak wersje Pro są większością, szczególnie w edukacji – prościej jest kupić w przetargu.

    Rozwiązania są dwa:

    1. Zwirtualizować desktop – alu tu z powodu licnecji VDA,infrastruktury itd. wychodzi drożej niż wersja enterprise

    2. Zastosować rozwiązanie równoważne steadystate – tu mamy szeroki przegląd rozwiązań firm 3-cich, z średnia ceną licencji na poziomie 30$ za sztukę. (co jest porównywalne z ceną upgradu Windows 7 do wersji SA/Enterprise dla edukacji; ale już nie dla korporacji)

        Oczywiście jak istnieje shareware, to istnieje gdzieś realizujący to freeware – i rzeczywiście, udało mi się znaleźć rozwiązanie Comodo TimeMachine które jest freewarem (nawet do użytku komercyjnego),i taką funkcjonalnośc realizuję

  5. marekku says:

    Jeszcze jedno rozwiązanie czysto systemowe steady state – Windows ThinPC. Steady state ma jedną paskudną wadę – pozostaje aktualny do najbliższej środy… ThinPC ma takie funkcjonalności jak Enhanced Write Filter(EWF), File Based Write Filter(FBWF) – nie spodziewam się cudów, ale brzmi zachęcająco!

Skip to main content