Re: Win2k nie znajduje samego siebie

Autor: Michal Kawecki <kkwinto_at_o2.px>
Data: Fri 25 May 2007 - 10:51:17 MET DST
Message-ID: <1moast6erciqh.dlg@kwinto.prv>
Content-Type: text/plain; charset="iso-8859-2"

Dnia Fri, 25 May 2007 07:50:25 +0000 (UTC), Tomasz Minkiewicz
napisał(a):

> Witam,
>
> Dość poważny problem mi właśnie powstał w komputerze.
>
> Stał sobie spokojnie Windows 2000 na dysku 40GiB i było wszystko dobrze.
> Niestety dysk zaczął padać, więc podpiąłem nowy 320GiB i przerzuciłem nań
> Windowsa - najpierw normalnie stworzyłem partycję, potem brutalnie
> (linuksowym dd) przelałem zawartość partycji na starym dysku do partycji
> na nowym (na obu dyskach partycje windowsowe zaczynają się od początku
> dysku).
> Troszeczkę straciłem, bo badsectorów się błyskawicznie pojawiło
> kilkadziesiąt, ale po przejechaniu systemu (tego na nowym dysku)
> chkdskiem w konsoli ratunkowej, system działał stabilnie (przestał
> widzieć kartę dźwiękową, ale to najmniejszy problem - przy sposobności
> bym go przekonał).
>
> Windows więc działał jakby nic się nie stało, tyle, że miałem na nowym
> dysku niewykorzystane ponad 250GiB. Założyłem więc tam jeszcze jedną
> partycję - linuksową. Na początek małą - ok. 50GiB, bo chwilowo
> potrzebowałem tylko jedną rzecz tam zrzucić (oryginalny obraz partycji
> windowsowej ze starego dysku - ot tak, na wszelki wypadek), a instalacja
> Linuksa miała poczekać do wyjścia Fedory 7.
> Niestety wczoraj znajomemu też zaczął padać dysk. Podpiąłem go u siebie
> żeby zrobić szybką kopię zawartości, ale ponieważ na partycyjce
> linuksowej miejsca nie było, założyłem jeszcze jedną - też linusową, ale
> dużą (ponad 50% dysku, do samego końca) i zrzuciłem tam dane znajomego.
>
> Po restarcie, Windows przywitał mnie radosnym niebieskim ekranem i
> poinformował że jego boot device jest unaccessible. Już kiedyś miałem
> problemy wynikające stąd, że Windows jakoś magicznie liczy partycje, więc
> pomyślałem, że w sumie żaden problem - trzeba pewnie usunąć jedną z
> linuksowych i wszystko wróci do normy. Przerzuciłem więc dane z małej
> linuksowej na dużą linuksową, usunąłem małą, restart i... bez zmian!
> Windows nadal nie wie gdzie stoi.

Nie, to nie była dobra analiza... po pierwsze były to partycje
linuksowe, których Windows i tak nie rozpoznaje, a po drugie po tych
operacjach Windows dalej startował z pierwszej partycji. Czyli dla niego
nic się nie zmieniło. Stawiam raczej albo na zmianę geometrii dysku,
albo już w tym momencie na uszkodzenie partycji z Windows. Czy BIOS tego
komputera poprawnie rozpoznaje dysk twardy pokazując go jako 320 GB?
 
> Tu mi brakło pomysłów i zrobiłem niestety błąd - odpaliłem z płyty
> konsolę ratunkową i wykonałem fixboot (nie pytajcie dlaczego - ot,
> uznałem, że na pewno nie zaszkodzi).

A sprawdziłeś spod tej Konsoli, czy da się wylistować pliki na partycji
C? Wykonałeś chkdsk? Od tego trzeba było zacząć...

> Po restarcie - nie ma niebieskiego
> ekranu, ale nie ma też windowsa. Jest tylko komunikat o zaginionym NTLDR.
> Na razie się nie przejąłem - w ostateczności mam z czego odtworzyć
> nie-bardzo-nieaktualny stan partycji windowsowej. Opaliłem znów linuksa
> z płyty i dopiero wtedy się naprawdę zdenerwowałem - tablicy partycji nie
> ma! Jest jakaś bzdurna sieczka!

Teraz zastanów się na spokojnie - jak to możliwe, że masz sieczkę w
tabeli partycji, a mimo to Windows ładuje kod bootloadera z aktywnej
partycji i komunikuje o braku NTLDR... sorry, ale to się nie trzyma
kupy.
 
> Odpaliłem jeszcze raz Windowsa z płyty, tylko tym razem dokładniej
> przyglądając się, co też on tam pisze i okazało się, że dysk 320GiB widzi
> jako bodaj 128GiB - nie wiem, czy to nie może być przyczyną mojej małej
> katastrofy (ale przy adresowaniu LBA - w jaki sposób?).

No właśnie - też nie sądzę. Fixboot nie adresuje obszaru powyżej 128 GB.
A Konsola Odzyskiwania pracuje w trybie read-only, więc samo jej
uruchomienie też nic nie mogło napsuć.

> Wyguglałem, że
> Win2k aż do SP3 miał problemy z dużymi dyskami, o czym wcześniej nic nie
> wiedziałem. Mam wprawdzie SP4, ale tylko w zainstalowanym systemie -
> płytka jest bez servicepacków.
>
> Mam zatem na razie dwa pytania:
>
> 1. Co dokładnie zniszczył fixboot?

On tylko zapisuje nowy kod startowy do bootsektora tej partycji, którą
mu wskażesz jako parametr. Domyślnie jest to partycja aktywna. Trzeba
się jednak zawsze co do tego upewnić, bo aktywną mogła być także
partycja linuksowa na przykład... Ja przed wykonaniem fixboot zawsze
listuję literki poleceniem MAP, upewniam się czy C to na pewno literka
partycji systemowej, a dopiero potem wykonuję fixboot c:.

> Powinien chyba ograniczyć swój zakres
> działania do partycji windowsowej, ale skoro pojechał po tablicy
> partycji, to najwyraźniej tego nie wiedział, a teraz ja nie wiem, co
> dokładnie odeszło w niepamięć.

A ja sądzę, że uszkodzenie tabeli partycji powstało w wyniku działania
innych narzędzi. Jakich - tylko Ty to możesz wiedzieć.

> Jak sądzicie - czy jeśli po prostu założę
> nowe partycje (pamiętam od którego cylindra zaczynała się linuksowa,
> a windowsowa była od początku dysku - wprawdzie nie wiem do którego
> cylindra, ale to mało przeszkadza, bo między nimi jest dziura na
> kilkadziesiąt giga, więc chyba bezpiecznie mogę zaokrąglić w górę -
> windowsowi nie przeszkadza, jeśli system plików nie zajmuje całej
> partycji, prawda?).

Nie, nie przeszkadza. Ze swojej strony proponuję odbudowanie tabeli
partycji na podstawie istniejących jeszcze bootsektorów partycji.
Doskonale sobie z tym radzi Testdisk http://www.cgsecurity.org/. Tu leżą
przykłady zastosowań:
http://www.cgsecurity.org/phpwiki/index.php/examples . Jeśli była to
partycja NTFS, to do odczytania niezbędnych informacji można wykorzystać
zarówno jej bootsektor, jak i jego kopię (ostatni sektor partycji).
Partycja FAT32 ma kopię swego bootsektora w 6. sektorze.
 
> 2. Zakładając optymistycznie, że po doprowadzeniu tablicy partycji do
> porządku Windows wróci do etapu niebieskiego ekranu, jak go przekonać,
> żeby jednak działał? _Coś_ bardzo dawno temu wymuszałem w rejestrze, bo
> ta instalacja Windows miała już kiedyś problemy z tożsamością po tym, jak
> jako drugi podpiąłem dysk zawierający aktywną partycję z zainstalowanym
> windowsem. Nie bardzo pamiętam, co wtedy robiłem, ale sprawa jest dość
> znana, bo na guglu od razu znalazłem wtedy opis jak sobie poradzić, więc
> pewnie się domyślacie co mogłem zmienić.

Możliwe, że to problem ze zmianą literki partycji systemowej (link
poniżej). Spróbuj wymusić na Windows przydział nowych literek usuwając z
MBR dysku tzw. podpis dysku (nt-signature). Najprościej osiąga się to
jako efekt uboczny wykonania DOS-owego polecenia fdisk /mbr, ale są też
narzędzia manipulujące nim bezpośrednio. Na przykład Bootit, MBRTool,
Savepart, Drive Snapshot. Inny możliwy powód to wspomniana wcześniej
zmiana geometrii dysku. Przyjrzyj się uważnie spod Testdisk, czy
wszystkie partycje zostały założone przy _tej_samej_ geometrii. Moim
zdaniem to tu trzeba szukać. ZTCP BIOS przyjmuje domyślną geometrię dla
całego dysku na podstawie geometrii pierwszej partycji, w tym wypadku
partycji z Windows. A Ty zakładałeś później inne partycje, narzędziami,
które mogły mieć inne zdanie na ten temat.

249321 - Nie można się zalogować, jeżeli zmieniła się litera dysku
partycji rozruchowej
http://support.microsoft.com/default.aspx?scid=kb;pl;249321

-- 
M.   [Windows - Shell/User MVP]
/odpowiadając na priv zmień px na pl/
https://mvp.support.microsoft.com/profile/Michal.Kawecki
Received on Fri May 25 11:00:06 2007

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Fri 25 May 2007 - 11:42:03 MET DST