podczas MTS jedna z osób zapytała się, czy to prawda, że kiedy wykona się backup Windows 7, można z tego backupu uruchomić komputer? dla niewtajemniczonych [są tacy?] jest to złożenie dwóch funkcjonalności, które pojawiły się odpowiednio w Vista i w7:

  • Windows Backup w postaci image’u robiony do pliq VHD
  • możliwość bootowania w7 z vhd

mówiąc bardzo w skrócie: tak, da się zbootować system z backupu [w7].

rzeczywistość jest mniej przyjemna i walczyłem 3 dni, żeby to udowodnić – przebijanie się głową przez kolejne ściany praw Murphiego jest bolesne. w efekcie osiągnąłem 95% sukcesu.

warunki początkowe
warunkiem aby taka operacja zadziałała jest bootowanie dysq vhd na takim samym [bardzo zbliżonym] kompie. testowałem na maszynie nieco odbiegającej od oryginału, ale w zasadzie ten sam model. z ciekawości odpaliłem ten sam image na sprzęcie w żadnym stopniu nie przypominającym oryginalnego i…. *wstał bez problemów* (SIC!). to pozytywna wiadomość, bo to otwiera drogę do dość prostej migracji komputerów – backup > kopia pliq na drugi komp > odpalanie systemu z vhd > instalacja nowych sterowników.
w końcu znalazłem zastosowanie dla Windows Backup – którego osobiście bardzo nie lubię, i do tej pory wieszałem na nim psy. jak się okazuje – są scenariusze, do których się przydaje [szkoda, że nie jest to po prostu backup (; ].

dla czego 3 dni?
podstawowym problemem zabierający godziny jest czas operacji wykonywanych na dyskach vhd i kopiowania via USB – nie ma to takiego znaczenia, kiedy się bawi 8-1oGB plikami, ale backupowany dysk miał 16oGB. dysk, z którego uruchamia się system musi być typu „FIXED”, backup oczywiście robi „DYNAMIC”. konwersja następuje podczas uruchomienia systemu, a więc trzeba mieć odpowiednią ilość miejsca – w innym wypadq jedyne co się zobaczy to bluescreen.
no i zaczyna się zabawa… w jaki sposób zmniejszyć dysk vhd? zadanie w zasadzie trywialne:

  • należy podmountować vhd
  • zmniejszyć partycję [shrink]
  • użyć vhd resize do zmniejszenia dysq i konwersji na FIXED

każdy z kroków okazał się zabójczo czasochłonny i niósł ze sobą ograniczenia… a każda pomyłka to kilka h w plecy.
punkty 1 i 2 należy wykonać z w7 – vhd mount z virtual servera nie rozumie vhd z w7. nie ma problemu – wystarczy płyta instalacyjna w7. tutaj pojawia się jednak następne ograniczenie – pomimo dużej ilości wolnego miejsca w vhd, dysk da się zmniejszyć tylko o kilka procent… dla czego? pliki są sfragmentowane, a WBackup robi image dysq – a więc odzwierciedla fragmentację wewnątrz vhd. należy więc najpierw zrobić defraga. żeby go zrobić trzeba podmountować vhd jako partycja albo pamiętać o tym przed wykonaniem backupu. żeby podmountować vhd i zrobić defrag trzeba już mieć żywy w7 [na płycie instalacyjnej defraga nie ma ): ], do którego możemy go podpiąć. defrag wykonuje się kolejne kilka h…
zakładając że dysk był zdefragmentowany i możemy pomniejszyć partycję pozostaje zmiana wielkości partycji. być może miałem zbyt mało cierpliwości ale kiedy próbowałem zeshrinkować partycję na dysq dynamicznym – operacja zawieszała się i w efekcie nie dało się potem użyć vhd resize. a więc najpierw trzeba wykonać vhd resize modyfikację do FIXED [ilość miejsca: wielkość backupu + wielkość dysku oryginalnego] – kolejne kilka godzin [zostawiłem na noc q: ]. kiedy miałem już dysk FIXED, bez problemu udało mi się wykonać SHRINK [chociaż też sporo to trwało – koło godziny?]… no i teraz można użyć VHD Resize do zmniejszenia wielkości – znów ładnych parę godzin czekania. fuh.

ale kiedy już po prostu ma się odpowiednie vhd i odpowiednią ilość miejsca cała operacja jest dość prosta q:
a czemu tylko 95% sukcesu? bo dla mnie ostatnia ściana Murphiego okazała się nie do przebicia. całym celem tych wszystkich manewrów było uruchomienie starego lapa, żeby dostać się do książki adresowej outlooka. nie wiedzieć czemu outlook poczęstował mnie komunikatem, że nie ma wszystkich folderów ani połączenia z serwerem i żebym poszedł na szczaw.

na koniec kilka instrukcji

zmniejszenie partycji na dysq vhd
potrzebne: system z w7 lub płyta instalacyjna w7
założenie: vhd jest zdefragmentowany

  • jeśli uruchamia się z płyty, wystarczy na pierwszym ekranie nacisnąć shift-F1o i mamy konsolę. jeśli jesteśmy w żywym systemie – cmd.exe [z trybie administratora]
  • diskpart
  • select vdisk file=”X:DIRmojbackup.vhd” – tutaj dwie uwagi. po pierwsze nazwy plików z backupu sa bardzo nieprzyjemne, więc dobrze sobie taką nazwę zmienić na coś zapamiętywalnego, po drugie jeśli mamy owe vhd na dysq USB, to jaką ma literkę? na szczęście konsola – również z płyty instalacyjnej – ma wmic’a: „wmic logicaldisk get caption,description” pomoże sprawdzić literki dysqw
  • attach vdisk
  • list disk
  • select disk 2 – oczywiście numerek sczytany z poprzedniego listingu
  • list part
  • select partition 1
  • shrink querymax – to trwa kilka minut ale będzie wiadomo o ile można pomniejszyć partycję
  • shrink desired=60000 minimum=60000 – zmniejszenie o 6oGB… no i teraz czekać, czekać, czekać
  • detach vdisk

jak to zrobić spod XP
xp to pasqdztwo. ale cóż – nie miałem wyjścia, więc przy okazji sprawdziłem. podstawowym problemem jest instalacja bootloadera z w7. zastosowałem sposób opisywany tutaj – z żywego w7 skopiowałem katalog WindowsBoot a potem użyłem EasyBCD. ten totalnie rozwala wpisy [bo jest pisany na viste a nie na xp] a więc w pierwszej kolejności trzeba naprawić wpis dotyczący bootowania XP.
podczas zabawy z bcdedit mam wrażenie, że to działa niedeterministycznie – używanie aliasów ID często kończy się w zupełnie nieprzewidywalny sposób. ciekawe jest też to, że niektóre wpisy nie są pokazywane – np. wpis {ntldr}:

  • jeśli wykona się bcdedit /create {ntldr} /d „gowniany XP” – skończy się to komunikatem, że taki wpis już jest – pomimo, że /v go nie pokazuje. no więc najpierw trzeba go usunąć [z opcją force]
  • bcdedit /delete {ntldr} /f
  • bcdedit /create {ntldr} /d „gowniany XP” – teraz zadziała (;
  • bcdedit /set {ntldr} device partition=D: – tutaj to d: jest sporą ciekawostką. w zasadzie to przecież vhd powinno być gdzieś dalej… to jedna z zagadek: ‚czy da się tą wartość deterministycznie wyliczyć?’
  • bcdedit /set {ntldr} path ntldr
  • bcdedit /displayorder {ntldr} /addlast – dopiero po tej komendzie, wpis pokazuje się na liście przy parametrze /v

i tyle. xp się uruchamia. oczywiście trzeba jeszcze dodać samo vhd do listy bootowania ale tutaj już sobie wygooglujcie sami q:

wszystko takie proste… w teorii.

n. [w lekkim pośpiechu. sory za tempo ale cały czas braqje mi czasu… mam nadzieję że *cokolwiek* z tego textu jest zrozumiałe. kiedy czytałem go drugi raz sam niewiele zrozumiałem, więc postanowiłem dodać na końcu tegoż-oto disclaimera (; ]