Re: Ja sklonowac WinXP??

Autor: Michal Kawecki (kwinto_at_2com.pl)
Data: Sat 07 Sep 2002 - 18:42:18 MET DST


Użytkownik "Matti" <deckard_at_box43.pl> napisał w wiadomości
news:ald76m$qh8$1_at_news.tpi.pl
>>
>> Po klonowaniu wykonaj fdisk /mbr spod DOS-a.
>
> MBR nie ma nic do tego. Na dysku sa cztery partycje (FAT32 z W98,
> NTSF z XP i jeszcze dwie FAT32), wszystko jest przeniesione
> poprawnie, dysk sie odpala, Win98 rowniez chodzi cacy, natomiast XP
> uruchamia sie bez problemu (i szybciej :-)) do momentu zalogowania
> uzytkownika. Przy kazdej probie wraca na spowrotem na ekran
> logowania. Co z tym zrobic??

Wiesz co? Nie jest to grupa o XP, ale wytłumaczę ci o co chodzi:

Otóż W2k oznacza każdy dysk unikalnym identyfikatorem (można go nazwać
GUID), zapisywanym w MBR, w czterech bajtach bezpośrednio po głównym
kodzie startowym. Przy pierwszym dostępie systemu do nowego dysku każda
partycja otrzymuje swój własny identyfikator, rozpoczynający się od jego
numeru GUID. Identyfikatory te są zapisywane w rejestrze w kluczu
HKLM\SYSTEM\MountedDevices.

Teraz przy każdym uruchomieniu systemu partycjom są przydzielane
dynamicznie tradycyjne literki: dajmy na to C i D. Informacja o tym,
jaka literka została przypisana jakiej partycji (a raczej jej
identyfikatorowi) też jest zapisywana w rejetrze, w tym samym kluczu.
Przed przydzieleniem literek system sprawdza GUID dysku, na którym jest
uruchamiany: jeśli związane z tym GUID partycje są już zapisane w
rejestrze, to system przydziela im takie literki, jakie były im
przypisane przy ostatnim uruchomieniu.

Jeżeli spartycjonowałeś nowy dysk i choć raz podpiąłeś go do
oryginalnego systemu, na przykład po to aby sformatować partycje, to
przy uruchamianiu system zapisał sobie w bazie danych, jakie literki
zostały zostały przydzielone do partycji na tym dysku. Oczywiście będą
to literki typu E, F itd., czyli kolejne.

Teraz klonujesz partycje, zamieniasz dyski i uruchamiasz nowy system.
Przy starcie sprawdza on, czy w bazie danych w rejestrze jest już numer
GUID aktualnego dysku systemowego (jest). Potem - czy partycje należące
do tego GUID mają w jego bazie danych przydzielone literki (mają - są to
E,F). A następnie je przydziela zgodnie z zapisami w rejestrze. W ten
sposób twoja partycja systemowa otrzymuje literkę E zamiast C.

Na szczęście cały system W2k/XP opiera się na odwołaniach ARC, czyli
typu \\nr_dysku\nr_partycji, a nie na literkach. Dlatego system jako
system da się uruchomić. Wyjątkiem jest niestety jeden zapis: ścieżka do
Userinit.exe, chyba przez pomyłkę pozostawiona w rejestrze z pełnym
odwołaniem do pliku. I to jest przyczyna, dla której nie możesz się
zalogować.

Rozwiązania problemów powstających po klonowaniu partycji są dwa:
1. Wyzerowanie bazy danych o literkach partycji (czyli usunięcie wpisów
typu \DosDevices\C:). System przydzieli je na nowo według kolejności
partycji w MBR, zaczynając od pierwszego napędu dyskowego. Zamiast
usuwania można te wpisy przeedytować bezpośrednio w rejestrze,
zamieniając ze sobą identyfikatory napędów. Jednak ten sposób wymaga
dostępu do rejestru systemu, a więc dla osób, które nie mogą się
zalogować jest bezużyteczny.
2. Zmiana GUID napędu dyskowego. System przydzieli partycjom z takiego
dysku nowe identyfikatory, a następnie usunie stare powiązania
literka-identyfikator partycji i utworzy te powiązania na nowo, już z
użyciem nowych identyfikatorów.

A GUID dysku możesz zmienić właśnie DOS-owym poleceniem fdisk /mbr.
Spowoduje ono odświeżenie głównego kodu startowego w MBR oraz
wyzerowanie zapisanego zaraz po nim GUID.

Dla porządku odsyłam cię jeszcze do przeczytania
http://www.faq.net.pl/TopFaq.asp?id=66
http://www.faq.net.pl/TopFaq.asp?id=67
i do zastosowania się do porady dotyczącej Userinit.exe, żeby uniknąć
problemów z logowaniem przy następnej takiej niemiłej przygodzie.

M.



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 01:28:27 MET DST