Miałem nieszczęście, że muszę sklonować podwójnie ładujący się system Windows XP / 7, aby wymienić dysk twardy na mniejszy. Miałem wielki problem z uruchomieniem go i chciałbym zrozumieć, co się dzieje i czy mógłbym zrobić coś lepszego.
Tło: maszyna ma napęd 750 GB z 3 partycjami:
- Windows XP
- System Windows 7
- Dane
Oryginalna instalacja została wykonana w taki sposób, że nie ma oddzielnej partycji odzyskiwania systemu Windows 7. Mam nadzieję, że ten fakt nieco to uprości.
Zastępuję go dyskiem 80 Gb. Partycje zostały już zmniejszone z poziomu systemu Windows 7, aby zmieściły się na mniejszym dysku.
Użyłem GParted
(z PartedMagic
Linux LiveCD) do skopiowania partycji. Zaznaczam partycję Windows XP jako partycję aktywną (taką samą jak na oryginalnym dysku).
Nie mogłem użyć CloneZilla
ani skopiować całej płyty z powodu przejścia z większego na mniejszy dysk.
Po skopiowaniu partycji ręcznie skopiowałem program ładujący (uważając, aby nie skopiować tabeli partycji):
$ dd if=/dev/sda of=/dev/sdb bs=446 count=1
Usunąłem oryginalny dysk, ustawiłem nowy tak, aby był fizycznie podłączony tak samo jak oryginalny (IDE kanał 1 master) i spróbowałem uruchomić komputer. To z powodzeniem pokazało menu rozruchu, ale nie powiodło się po wybraniu jednej z opcji (są dwie: jedna dla XP i jedna dla Win7).
Przeprowadziłem sporo badań, które pozwoliły mi stwierdzić, że dane konfiguracji rozruchu systemu Windows 7 nie zawierają wszystkiego, co powinny. Porównałem wyjście BCD z oryginalnych i nowych dysków i zauważyłem, że wpisy urządzeń na tych ostatnich były unknown
. Więc ręcznie zmieniłem je, aby pasowały do oryginału - tak:
$ bcdedit /set {ntldr} device partition=C:
$ bcdedit /set {default} device partition=D:
$ bcdedit /set {default} osdevice partition=D:
i ponownie uruchomiony. Tym razem mogłem uruchomić zarówno XP, jak i Win7. Muszę wykonać więcej testów, ponieważ wydają się istnieć inne różnice między dwoma BCD, ale wprowadzenie powyższych zmian przynajmniej pozwoliło na uruchomienie.
Tak więc moim pytaniem jest naprawdę pytanie, dlaczego BCD na sklonowanej partycji miałby wyglądać inaczej niż oryginał i wystarczająco, aby uniemożliwić uruchomienie?
I następstwem tego byłoby pytanie, czy powinienem robić to w inny sposób?
bcdboot
zapewnia łatwiejszy sposób na odtworzenie wpisu rozruchu, ale nie jestem pewien, czy byłby odpowiedni w scenariuszu podwójnego rozruchu XP / W7.Zgodnie z tą nieoficjalną dokumentacją dotyczącą elementów wewnętrznych BCD , partycje w sklepie BCD są faktycznie identyfikowane przez sygnaturę dysku i przesunięcie partycji. Skopiowałeś sygnaturę dysku (bajty MBR 440–443), ale najprawdopodobniej zmieniłeś przesunięcia partycji podczas umieszczania partycji na mniejszym dysku, dlatego BOOTMGR nie mógł już znaleźć tych partycji.
źródło
bcdedit
). Sam faworyzuję edytor Visual BCD. Jeśli możesz dostać się do środowiska Windows, Visual BCD ułatwia ustawienie urządzenia rozruchowego. Możesz zrobić to samo z rozruchowego dysku DVD, otwierając wiersz polecenia (myślę, że to F11 lub coś takiego) i używając gobcdedit
. Odradzam naprawę systemu, jeśli masz ochotę ręcznie go naprawić, ponieważ wcześniej miałem naprawę systemu usuwania środowiska odzyskiwania na dysku.