Autor: Mariusz Kołacz (rokko)
Strona autora: techformator.pl
Kontakt: m.kolacz(at)hotfix.pl
Na pewno nie jeden użytkownik spotkał się z problemem przywrócenia usuniętego lub uszkodzonego pliku systemowego. W systemie Windows XP sprawa jest bardzo prosta, wystarczy płytka instalacyjna i odrobina wiedzy na temat przywracania plików spod konsoli odzyskiwania. Natomiast w przypadku Visty, już tak różowo nie jest. Na płycie instalacyjnej nie znajdziemy plików, które można by wykorzystać, dlatego jesteśmy zmuszeni poszukać alternatywnych rozwiązań.
Jednym z rozwiązań będzie użycie plików zawartych w Service Pack dla Windows Vista. Tylko nasuwa się pytanie, w jaki sposób dostać się do nich oraz jak podmienić pliki? Wszystko zależy od sytuacji. Jeżeli mamy dostęp do innego systemu operacyjnego, będącego na tym samym dysku co uszkodzony system, to nie powinniśmy mieć większych problemów z podmianą plików, natomiast, w przypadku, gdy jesteśmy pozbawieni takiej alternatywy, będziemy musieli poradzić sobie nieco inaczej, a mianowicie wykorzystać systemy operacyjne typu live, na przykład
bootowalny nośnik z Linuksem lub
środowisko WinPE, udostępniane poprzez bootowalną płytkę instalacyjną systemu Windows Vista. W dalszej części artykułu opiszę metody przywracania plików z uwzględnieniem kilku specyficznych sytuacji, w których możemy się znaleźć.
Sytuacja 1
Na dysku jest zainstalowany tylko jeden system operacyjny, pech chciał, iż na skutek uszkodzenia plików systemowych nie można go w żaden sposób uruchomić. Na szczęście posiadamy płytkę instalacyjną Visty, dzięki której będziemy mogli przywrócić uszkodzony plik/pliki.
Dla lepszego zrozumienia cały proces naprawy przedstawię krok po kroku.
Uruchamiamy komputer, wchodzimy do BIOS-u i ustawiamy bootowanie na napęd CD\DVD, wychodzimy z BIOS-u zapisując zmiany.
Wkładamy płytę do napędu, po chwili powinniśmy ujrzeć napis
Dowolny klawisz spowoduje rozruch.... Naciskamy na przykład spację. Rozpocznie się proces ładowania plików niezbędnych do uruchomienia środowiska WinPE.
Na pierwszym ekranie z wyborem języka klikamy
Dalej
Następnie klikamy
Napraw komputer
W oknie opcje odzyskiwania systemu klikamy
Dalej
Otwieramy okno wiersza polecenia.
Jeżeli nie pamiętamy dokładnej lokalizacji pliku instalacyjnego Service Pack, przystępujemy do wyszukiwania, do tego celu użyjemy polecenia
dir, wskazujemy dysk/partycję, na którym podejrzewamy, że znajduje się wspomniany SP, w przykładzie przyjmiemy, iż jest to dysk/partycja oznaczona literą E:\ (Service Pack 1 PL - Windows6.0-KB936330*.exe ; Service Pack 2 PL - Windows6.0-KB948465*.exe).
Gdy już znamy lokalizację pliku przechodzimy do niej, w naszym przykładzie będzie to E:\Instalki, w tym celu wpisujemy:
Tworzymy nowy folder.
Kolejnym etapem będzie rozpakowanie pliku instalacyjnego SP, wpisujemy pełną nazwę naszego SP wraz z przełącznikiem "-x" oraz po dwukropku wskazujemy docelowy katalog, w tym wypadku E:\instalki\sptemp.
Przechodzimy do katalogu sptemp.
Znajdziemy w nim kilkanaście folderów i plików. Będziemy zmuszeni rozpakować jedno z archiwów - windows6.0-kb936330-X86.cab Plik łatwo rozpoznać, gdyż jest pokaźnych rozmiarów, dla wersji 32 bitowych powinien ważyć nieco ponad 530MB. Archiwa CAB możemy rozpakować za pomocą komendy
expand.
Proces wypakowania plików może zająć kilka/kiilkanaście minut w zależności od posiadanego sprzętu. Po wszystkim otrzymamy komunikat informujący nas o ukończeniu tego procesu
"Rozpakowanie plików ukończone...".
Teraz szukamy interesujących nas plików, dla przykładu będą to explorer.exe oraz ntdll.dll Przypominam, iż ciągle jesteśmy w katalogu E:\instalki\sptemp.
W lokalizacji E:\ zostanie utworzony plik tekstowy
wynik.txt zawierający niezbędne informacje (ścieżki dostępu do plików
explorer.exe oraz
ntdll.dll).
Przechodzimy do katalogu głównego.
Uruchamiamy notatnik.
Kopiujemy ścieżkę dostępu do "oryginalnego" pliku
explorer.exe Zaznaczamy ją, po czym naciskamy kombinację klawiszy CTRL+C.
Przystępujemy do podmiany pliku. Pliki przywracamy według następującego schematu:
copy X:\ścieżka\dostępu\nazwa_pliku.xxx Y:\docelowy\katalog\
Gdzie:
- copy - komenda umożliwiająca kopiowanie plików
- X:\ścieżka\dostępu\ - oznacza ścieżkę dostępu do "oryginalnego" pliku
- nazwa_pliku.xxx - nazwa pliku, który chcemy przywrócić np. explorer.exe ,ntdll.dll
- Y:\docelowy\katalog\ - oznacza katalog docelowy, do którego skopiujemy "oryginalny" plik.
Wpisujemy polecenie
copy zostawiając za nim odstęp (spację), następnie podajemy ścieżkę dostępu do pliku który chcemy podmienić, czyli w tym wypadku
explorer.exe (po nazwie pliku również dajemy spację). Aby nie wpisywać jej ręcznie, w oknie wiersza poleceń klikamy prawym przyciskiem myszki, do okna zostanie przekopiowany wcześniej wycięty tekst (ścieżka dostępu).
Mamy już zdefiniowane prawie wszystko, jeszcze dopisujemy na końcu lokalizację docelową i możemy zaczynać. Ostatecznie polecenie będzie wyglądać następująco:
Jeszcze raz wyjaśnię co oznaczają poszczególne wpisy.
- E:\Instalki\sptemp\x86_microsoft-windows-explorer_31bf3856ad364e35_6.0.6001.18000_none_51b4a71279bc6ebf\explorer.exe - ścieżka dostępu do "oryginalnego" pliku explorer.exe
- D:\Windows - lokalizacja docelowa, do której plik zostanie przekopiowany, a tym samym podmieniony. Litera D:\ oznaczać będzie partycję na której zainstalowana jest Vista.
Przystępujemy do kopiowania, wpisujemy powyższe polecenie i potwierdzamy klawiszem ENTER. Otrzymamy zapytanie
"Zastąpić D:\Windows\explorer.exe? (Tak/Nie/Wszystkie):". Wpisujemy literkę
"T" i potwierdzamy klawiszem ENTER.
Po wszystkim wyświetli się komunikat informujący nas czy proces kopiowania powiódł się,
"Liczba skopiowanych plików: 1", kopiowanie przebiegło prawidłowo.
Dla pliku ntdll.dll postępowanie jest identyczne, z tym że jako katalog docelowy wskazujemy na D:\Windows\system32.
Zawsze należy pamiętać o podaniu prawidłowej lokalizacji docelowej, w większości przypadków będą to:
- Y:\Windows\
- Y:\Windows\system32
Zamykamy wszystkie okna i restartujemy komputer.
UWAGA!
Jeżeli ktoś z was nie będzie pewny, jaką literkę ma partycja z Vistą (systemowa), proszę wykonać:
diskpart
list disk
Według formuły
select disk czyli select disk 0...1...2. Jeżeli posiadamy tylko jeden dysk, zawsze wpisujemy zero (0).
select disk 0
detail disk
Odczytujemy literkę partycji z Vistą.
Po uzyskaniu niezbędnych informacji, wychodzimy z linii poleceń diskpart'a poprzez wpisanie komendy:
exit
Powinniśmy otrzymać komunikat "Trwa opuszczanie programu DiskPart..." dodatkowo w wierszu poniżej, pojawi się znak zachęty np. e:\>
Sytuacja 2
Na dysku mamy zainstalowanych kilka (dwa i więcej) systemów operacyjnych, z których co najmniej jeden jest sprawny. Procedura jest dość podobna do opisanej powyżej, jednak niektóre z czynności możemy wykonać znacznie łatwiej. Nie będę tutaj opisywał wszystkiego. Napiszę jedynie kolejne kroki jakie trzeba wykonać, aby przywrócić dany plik.
Przenosimy plik instalacyjny do katalogu głównego C:\ , D:\ , E:\ lub innego.
Uruchamiamy wiersz poleceń poprzez (Vista):
Start -> w wyszukiwarce wpisujemy cmd -> naciskamy jednocześnie kombinację klawiszy CTRL + SHIFT + ENTER
W ten sposób uruchomi się wiersz poleceń w trybie administratora.
W systemie Windows XP:
Start -> Uruchom -> cmd
Następnie przechodzimy do katalogu głównego, gdzie znajduje się ów plik, wpisujemy:
cd \
Zostaniemy przeniesieni do katalogu głównego (domyślnie C:\). Jeżeli SP1 mamy w katalogu E:\ wpisujemy:
E:
Następnie kolejno:
mkdir sptemp
Windows6.0-KB936330-X86-wave1.exe -x
Otworzy się okno, w którym określamy, gdzie pliki będą wypakowane. Wskazujemy na wcześniej utworzony folder, czyli sptemp, po czym klikamy OK.
Nastąpi wypakowanie plików do wskazanego foldera. Cierpliwie czekamy, może to zająć nawet kilka minut.
Po wszystkim przechodzimy do foldera, ujrzymy w nim kilkanaście folderów oraz kilka plików, najważniejsze dla nas będą pliki z rozszerzeniem CAB. Rozpakujemy ten największy, tzn. w tym przypadku windows6.0-kb936330-X86.cab (rozmiar ponad 530MB). Możemy dokonać tego spod konsoli lub za pomocą dowolnego pakera obsługującego format CAB, czyli praktycznie każdego.
Rozpakujemy go np. za pomocą 7-Zip. PPM na pliku windows6.0-kb936330-X86.cab -> 7-zip -> Extract to "windows6.0-kb936330-X86.cab\".
Po rozpakowaniu wchodzimy do nowo powstałego foldera i naciskamy klawisz funkcyjny F3 lub od razu w pole wyszukiwarki wpisujemy nazwę poszukiwanego pliku, czyli explorer.exe, a następnie kopiujemy go do katalogu - Y:\Windows. To samo robimy z plikiem ntdll.dll ,z tym że, kopiujemy plik do katalogu Y:\Windows\system32
Przypominam, litera Y:\ oznacza partycję z systemem Windows Vista. Proszę bacznie uważać, aby nie skopiować danego pliku do katalogu systemowego, należącego do systemu, spod którego dokonujemy operacji naprawy (np. Windows XP). W przypadku podstawowych plików systemowych nie ma groźby niebezpieczeństwa, ponieważ po prostu pliki nie dadzą się podmienić. Jeżeli pomylimy się, będziemy musieli liczyć się z częściową utratą określonej funkcjonalności, której dany plik dotyczył. Na szczęście nie powinno mieć to większego wpływu na rozruch systemu, więc ewentualność całkowitego jego unieruchomienia praktycznie nie istnieje.
Poradnik nie rozwiązał Twojego problemu? Zadaj pytanie na forum i otrzymaj odpowiedź.
Copyright © rokko
Wczoraj narobiłem sobie bigosu. Chciałem zoptymalizować sobie swój laptopek - system Vista, a sobie sknociłem. Przedstawię co jest nie tak:
"Poprzez dowolny eksplorator plików (np. Windows Explorer) przechodzimy do katalogu Windows\System32.
Odnajdujemy plik wscapi.dll po czym klikamy na nim prawym przyciskiem myszy i przechodzimy do:
Properties -> Security -> Edit -> "Administrators" i nadajemy pełne prawa temu plikowi (zaznaczamy Full Access) dla danego użytkownika (czyli dla siebie, nie dla systemu).
Tak samo postępujemy w przypadku plików wscsvc.dll oraz wscui.cpl
Teraz zmieniamy rozszerzenia wymienionych wcześniej trzech plików na ".bak"
(Usługę Security Center ustawiamy na Disabled i wyłączamy ją) - tego polecenia w nawiasie nie wykonałem bo nie wiedziałem gdzie.
No i stał się problem, gdyż nie mogłem uruchomić żadnej aplikacji, pisało wówczas zaloguj się jako administrator aby mieć dostęp do pliku.
A więc z tego powodu, zrobiłem całą operację od tyłu do początku przywracając zabezpieczenia jakie były wcześniej i zmieniając pliki z powrotem z bak na dll. Jednak nadal nie jest w porządku, nowe aplikacje albo nie chcą się uruchomić, albo trzeba przez właściwości - zabezpieczenia znowu wszystko zmieniać i ustawiać ręcznie. Bardzo bym prosił o pomoc, ale najlepiej przejrzystą, bo tutaj już zaczynam się gubić i nie wiem czy wszystko zrozumiem.
tylko jest problem, laptopa mam zakupionego z wgranym już system Windows Vista (oryginalnym), ale niestety nie dołączają do laptopów płyty systemowej. Service pack 2 posiadam, dllcache nie mogę znaleźć, może istnieje jeszcze inny sposób aby przywrócić utracone działanie ?
Pozdrawiam serdecznie
Krzysztof Majcherek