Ako opraviť Windows

Autor: František Urban
Publikované na portali touchit.sk

Správa sa Windows nejako čudne? Nefunguje tak ako by mal? Je možné, že niektoré jeho súbory môžu byť poškodené. Nie vždy je nutné zaniesť počítač do servisu, či preinštalovať celý systém. Naučte sa s nami ho opraviť.

Poškodenie operačného systému na úrovni jeho samotných súborov je nepríjemným stavom, ktoré sa z pohľadu používateľa prejavuje čudesne a hlavne nevyspytateľne. Môže dochádzať napríklad k tomu, že niektoré funkcie systému nie sú dostupné a po ich spustení sa zobrazí chybové hlásenie, alebo sa skrátka nič neudeje.Nemusí ísť pri tom len o veľkú a dobre viditeľnú chybu, ako napríklad nefungujúci mechanizmus aktualizácii, neobjavujúce sa menu Štart alebo nespustenie Nastavenia. Môže ísť aj o zvláštne drobnosti, ako napríklad to, že jedna záložka dialógového okna s nastavením sa neotvorí a po kliknutí zobrazí len chybové hlásenie o zlom volaní, alebo, že niektoré prvky systému za zavrú len moment po svojom otvorení.

Je pomerne normálne, že používatelia, ktorí so servisom počítača nemajú žiadne skúsenosti, prisúdia daný stav napríklad vírusovej infekcii, zlému nastaveniu, alebo nejakému „zaneseniu“ nepotrebnými súbormi. Obvykle ich to tak zavedie do slepej uličky, z ktorej sa nemajú šancu vymotať a problémy vyriešiť.

Ak si takéto zvláštne správanie systému všimnete, mali by ste vždy začať s predpokladom, že chyba je na úrovni súborového systému úložiska, teda vášho HDD alebo SSD. Pravdepodobnosť chyby na tejto úrovni je o to väčšia, ak k pozorovaným prejavom patrí napríklad to, že niektoré súbory sa nedajú kopírovať alebo vymazať, alebo dokonca toho, že niektoré súbory a priečinky jednoducho zmizli, aj keď ste si celkom istý, že ste ich nevymazali.

Opravujeme súborový systém a kontrolujeme čitateľnosť disku

Poškodenie súborového systému (v prípade Windows ide o NTFS) môže nastať kedykoľvek a z rôznych príčin, pričom s o ňom zvyčajne nedozviete. Kedykoľvek je však jeho stav možné overiť. Na kontrolu súborového systému a takisto konzistentnosti dát na HDD/SSD slúži systémová utilita Check Disk (chkdsk), ktorá je už veľmi dlhú dobu súčasťou Windows.

Jej plnohodnotné a podrobné používanie je možné cez PowerShell, ktorý spustíte kliknutím pravého tlačidla myši na menu Štart a vybratím položky Windows PowerShell (správca). Alternatívne ho môžete spustiť aj zo staršieho Príkazové riadku, ktorý otvoríte napríklad vyhľadaním výrazu CMD v menu Štart.

Check Disk je systémovou utilitou, takže ho môžete spustiť priamo zadaním jeho skrátené názvu. Keďže však v počítači obvykle máme viac ako jednu diskovú partíciu, je potrebné nastaviť jej označenie a takisto zvoliť parameter, s ktorým sa utilita spustí.

V našom prípade chceme kontrolovať a prípadne opravovať partíciu, na ktorej operačný systém, takže ide o partíciu C. Príkaz teda bude mať nasledujúcu podobu:

chkdsk C: /f

Ako môžete vidieť, na koniec je pridaný parameter F, ktorý sa vždy uvádza za medzerou a lomkou (prípadne medzerou a pomlčkou, čo má rovnaký význam). Určuje to, že kontrola disku prebehne na úrovni súborového systému a všetky potenciálne nájdené problémy sa okamžite opravia.
Pri tejto trojfázovej kontrole sa overuje, či sú súbory správne naviazané na MFT, teda súborovú tabuľku a či jej záznamy obsahujú správne metadáta. Kontrola tohto typu obvykle trvá len pár desiatok sekúnd, prípadne pár minút, v závislosti od počtu súborov a veľkosti disku.

Alternatívnym parametrom, ktorý je možné použiť pri potrebe dôkladnejšej kontroly, alebo pri pretrvávajúcich problémoch, je R.

chkdsk C: /r

Ide päťfázovú kontrolu, ktorá ku trom fázam kontroly súborového systému pridáva aj kontrolu povrchu disku. V štvrtej fáze je kontrolovaná časť disku, ktorá nesie dáta a v piatej je kontrolované prázdne miesto. V praxi to znamená, že sa overujú (čítajú) zapísané súbory a takisto sa overuje aj čitateľnosť sektorov, ku ktorým nie sú priradené žiadne dáta.

Z tohto dôvodu je táto kontrola mnohonásobne dlhšia, pretože sa číta prakticky celá disková partícia. Ak nemáte disk delený a jednotka C je prakticky všetkým, čo máte, tak na 1 až 2 TB diskoch počítajte s niekoľko hodinovou kontrolou. Na ešte väčších diskoch už ide o viac ako 10 hodinovú záležitosť.
Ak Check Disk pri tejto päťfázovej kontrole rozpozná chybný sektor, vyradí ho zo zoznamu a radič disku už do neho dáta nikdy nebude zapisovať. To je pravdaže žiaduce. Disk síce stratí nejakú kapacitu, ale ide o zanedbateľný objem na úrovni pár kilobajtov, ktoré chýbať nebudú. Hlavné je, že dáta sa už do týchto zlých častí nikdy neuložia a nedôjde tak k ich poškodeniu.

Či už zadáte kontrolu s parametrom F alebo R, po zadaní príkazu a stlačení Enteru sa kontrola ihneď spustí iba v prípade, že ide o nesystémový disk. Pri ňom by ste v konzole videli celý priebeh kontroly a aj jej výsledok. Partícia sa pri tomto procese z pohľadu používateľa odpojí a do skončenia kontroly ju nie je možné používať. Ak má ale jeden fyzický disk viac partícii, ostatné stále sú prístupné.

Keďže ale mi chceme kontrolovať a opravovať systémovú partíciu C, na ktorej je Windows, kontrola „za behu“ nie je možná.  Po zadaní príkazu a stlačení Enteru vás Check Disk upozorní, že môže kontrolu naplánovať pri najbližšom reštarte (Chkdsk cannot run because the volume is in use by another process. Would you like to schedule this volume to be checked the next time the system restarts?), čo potvrďte stlačením písmena Y, symbolizujúcom odpoveď áno (Yes).

Počítač nemusíte reštartovať hneď, avšak najbližšie keď to urobíte, kontrola sa bez potreby akejkoľvek reakcie z vašej strany spustí pred nábehom operačného systému (systém vám ale najprv ponúkne jej zrušenie stlačením ľubovoľného tlačidla). Po prebehnutí kontroly sa Windows klasicky spustí.

Bohužiaľ, podrobné informácie o priebehu a výsledkoch kontroly sa vám po štarte automaticky nezobrazia. Ak vás zaujímajú, dostanete sa k nim pomocou Zobrazovača udalostí, ktorý spustíte kliknutím pravého tlačidla myši na menu Štart. Na jeho pravej strane rozbaľte vetvu Windows Logs/Application, pričom položku so záznamom nájdete v odpovedajúcom čase v hlavnom okne. Pôjde o záznam typu Information zo zdroja Wininit. Je možné ju aj rýchlo nájsť aj kliknutím pravého tlačidla myši na vetvu Aplication, kde vyberiete možnosť Find (Hľadať) a zadáte do okna Wininit.

Alternatívne je možné vidieť tento záznam uložený aj v skrytom priečinku System Volume Information, nachádzajúcom sa na partícii, kde ste kontrolu robili. Keďže sa okrem iného do neho ukladajú aj body obnovy, je v základe neprístupný a pre jeho otvorenie budete musieť naň prevziať práva.

V zázname uvidíte priebeh kontroly a takisto počet prípadných opráv. V prípade, že kontrola prebehla bez problémov, nájdete v texte anglickú vetu Windows has scanned the file system and found no problems (Windows skontroloval súborový systém a nezistil žiadne chyby).

Ak sa naopak problémy našli a opravili, pôjde o vetu Windows has made corrections to the file system. No further action is required (Windows urobil opravu súborového systému. Žiadne ďalšie akcie nie sú potrebné).

Overujeme konzistentnosť systémových súborov

Po skončení kontroly súborového systému (a prípadnom opravení chýb), je možné prejsť ku kontrole konzistencie samotných systémových súborov Windows. K tomuto účelu slúži systémový nástroj System File Checker (SFC), ktorý sa spúšťa v PowerShell (alebo alternatívne v Príkazovom riadku). Je treba ho nastaviť na parameter Scannow, teda v preklade Skontroluj teraz. Príkaz, ktorý je nutné zadať teda vyzerá nasledovne:

SFC /scannow

V tomto prípade nie je nutné zadávať, na ktorej partícii ho chcete spustiť, pretože mechanizmus si aktuálny priečinok Windows nájde sám. V prípade, že by ste chceli systémové súbory kontrovať na systéme, ktorý sa vôbec nedá spustiť (pripojením disku k inému počítaču s Windows, alebo s pomocou opravných nástrojov Microsoftu spustených z inštalačného média systému), príkaz vyzerá trochu komplexnejšie. Pri takejto „neživej“ oprave postupujte tak, ako uvedieme nižšie pri výsledku č. 3.

Po napísaní príkazu a stlačení Enteru sa proces kontroly začne, pričom od vás nevyžaduje žiadnu akciu. Kontrola konzistentnosti trvá obvykle niekoľko minút, pričom v okne uvidíte indikátor jej priebehu. Po dosiahnutí 100 % sa zobrazí jeden zo štyroch možných výsledkov.

Výsledok č.1: Windows Resource Protection did not find any integrity violations

Táto správa na konci kontroly znamená, že pri overovaní integrity systémových súborov nebola nájdená žiadna chyba. Systémové súbory by mali byť teda v poriadku a vo funkčnom stave (rozumej: sú čitateľné a také ako majú byť). Ak váš Windows teda nefunguje správne, poškodenie systémových súborov ako takých nie je dôvod.

Výsledok č. 2: Windows Resource Protection found corrupt files and successfully repaired them

Tento výsledok v preklade značí to, že kontrola súborov prebehla, boli zistené chyby a System File Checker ich úspešne opravil. V základe to znamená, že chybné systémové súbory boli nahradené novými a funkčnými kópiami.
Ak by vás zaujímalo, aké konkrétne súbory boli opravené, záznam vykonaných akcií nájdete v priečinku Windows/Logs/CBS/CBS.log. Daný súbor môžete otvoriť napríklad v Poznámkovom bloku, pričom najčerstvejšie záznamy sú na jeho spodku. V konečnom dôsledku je tento výsledok pozitívny, pretože vás systém mohol byť týmto krokom už opravený. To, či tomu naozaj tak je, overte po reštarte počítača.

Výsledok č. 3: Windows Resource Protection could not perform the requested operation

Zobrazenie tejto správy značí, že kontrolu systémových súborov sa nepodarilo spustiť z dôvodu nedostatočných prístupových práv. Obvykle je dôvodom len to, že sa omylom pokúšate kontrolu spustiť v PowerShell alebo Príkazovom Riadku, ktorý ste otvorili bez administrátorských práv. Uistite sa teda, že po kliknutí pravého tlačidla myši na menu Štart otvárate položku Windows PowerShell (správca), alebo na vyhľadaný Príkazový riadok (cmd) v menu Štart klikáte pravým tlačidlom myši a vyberáte možnosť Spustiť ako správca.

Ak ste to urobili a správa sa aj napriek tomu zobrazuje, je nutné kontrolu spustiť pred štartom operačného systému. Tento postup je možné použiť aj v prípade, že systém Windows vôbec nejde spustiť a kontrolu konzistentnosti jeho súborov je teda nutné vyvolať odinakiaľ.
Slúži na to Prostredie opravného mechanizmu (Windows Recovery Environment), ktoré sa automaticky vytvorilo pri inštalácii operačného systému a nachádza sa na samostatnej (v základe neviditeľnej) partícii disku.
Ak Windows funguje, jeho spustenie vykonáte tak, že v menu Štart pri kliknutí na možnosť reštartovania počítača držíte stlačený kláves SHIFT. Po reštarte namiesto Windows nabehne tento opravný nástroj, kde kliknite na možnosť Riešiť problémy/Rozšírené možnosti/Príkazový riadok.

Ak Windows nefunguje, toto prostredie môžete vyvolať z inštalačného média Windows  10 (DVD alebo USB kľúč). Ak ho nemáte, môžete si ho zdarma stiahnuť zo stránok Microsoftu (tlačidlo Stiahnuť nástroj). Pri štarte počítača inštalačné médium spustite, ako keby ste chceli inštalovať Windows, avšak po výbere jazyka na ďalšej obrazovke neklikajte na tlačidlo Inštalovať, ale na malú položku Oprava počítača, vľavo dole. V zobrazenom dlaždicovom sprievodcovi vyberte možnosť Riešiť problémy a následne Príkazový riadok

V spustenom Príkazovom riadku opravného mechanizmu nemôžeme zadať príkaz len ako SFC /scannow, ako sme to robili predtým, pretože tentoraz už systém nie je v prevádzke. Musíme teda System File Checker k nemu nasmerovať.

Problémom je, že jednotka, ktorú má váš systémový disk obvykle priradenú (C:), je iná. Jednotku C takmer určite dostala malá partícia opravného mechanizmu (nazvaná – Vyhradené systémom) a váš regulárny „disk C“ má momentálne zrejme pridelené označenie D. Stav si môžete overiť zadaním príkazu:

wmic logicaldisk get deviceid, volumename

Po stlačení Enteru sa objavia rozpoznané partície aj s menovkami, podľa ktorých svoj systémový disk určite spoznáte. Ak má teda priradené písmeno D, čo je najobvyklejšie, následne ho musíme použiť  v nastavení SFC , aby kontrola systémových súborov bola vykonaná na ňom. Príkaz vyzerá nasledovne:

SFC -scannow -offbootdir=C: -offwindir=D:/Windows

V príkaze sme teraz úmyselne nahradili lomku ekvivalentným operátorom v podobe pomlčky, aby ste si mohli ľahko všimnúť, že lomka s adresou je súčasťou toho posledného a musí byť teda zadaná bez medzery.

Pri takomto off-line spustení SFC mechanizmu sa už žiadne problémy s právami nemôžu objaviť.

Výsledok č. 4: Windows Resource Protection found corrupt files but was unable to fix some of them

Štvrtým a posledným variantom je, že pri Kontrole systémových súborov sa objavia chyby, ale nepodarí sa ich opraviť. Detaily nájdete v CBS zázname v priečinku Windows/Logs/CBS/CBS.log, ktorý môžete otvoriť v Poznámkovom bloku.

Dôvod neúspechu opravy chybných súborov môže byť rôzny. Nápravou môže byť to, ak proces spustíte znova, ale tentoraz z Opravného mechanizmu inštalačného média, tak ako je popísané vyššie v prípade výsledku č. 3. Ak sa oprava nepodarí ani vtedy, pokračujte nasledujúcim krokom.

Kontrolujeme zostavenie systému pomocou DISM

Ak test konzistencie systémových súborov dopadne bez chyby, alebo sa chyby opravia a neprinesie to kýžený výsledok (prípadne ich oprava nejde vykonať), posledná línia systémových opráv je utilita DISM.

DISM je skratkou pre Deployment Image Servicing and Management, pričom Ide o veľmi účinný nástroj na prácu so systémovým zostavením. V základe ide o nástroj slúžiaci napríklad na úpravu inštalačného ISO obrazu operačného systému. Správcovia podnikových sietí si môžu vytvoriť vlastný obraz systému so špecifickým nastavením, aktualizáciami, obmedzeniami, či predvolenými aplikáciami a aplikovať ho následne na veľké množstvo počítačov.

DISM sa však dá použiť aj na manipuláciu s nainštalovaným a takisto aj práve bežiacim systémom a práve to nás v tomto prípade zaujíma.

Dve najčastejšie príčiny použitia DISM v tejto súvislosti sa týkajú práve nefunkčnej opravy pomocou SFC, ktorá nedokáže opraviť poškodené súbory v prípade, že sú poškodené aj ich ekvivalenty v zálohe. Druhá sa týka poškodeného systému aktualizácii, čo sa prejavuje tak, že sa neprestajne znova zobrazujú dostupné aktualizácie, ktoré ste už stiahli a úspešne nainštalovali.

Na prácu s DISM sa podobne v prípade SFC alebo CHKDSK používa systémový PowerShell, alebo Príkazový riadok. Ak DISM používame na diagnostiku a opravu poškodeného systému, zaujímajú nás tri základné parametre jeho spustenia, písané za medzeru a lomku. Ide o CheckHealth, ScanHealth a RestoreHealh (v doslovnom preklade Over zdravie, Prekontroluj zdravie a Obnov zdravie).

Diagnostiku začínajte prvým parametrom, pomocou ktorého si overíte, v akom základnom stave systémové dáta sú a či už bolo nejaké poškodenie zostavenia  evidované. Ak DISM používame na živom systéme, ktorý je práve v prevádzke, použijeme pri tom zároveň aj parameter /Online, aby sme mechanizmus nastavili na prácu s aktívnymi dátami bežiaceho systému. Doplníme zároveň aj parameter /Cleanup-Image, ktorý nám poskytne detailnejšie možnosti. Celý príkaz teda bude:

DISM /Online /Cleanup-Image /CheckHealth

Po stlačení Enteru by sa mala takmer ihneď objaviť správa, že operácia bola vykonaná úspešne, a že žiadne poškodenie nebolo detegované. Správa sa zobrazí v anglickom jazyku a pôjde teda o: No component store corruption detected. The operation completed successfully.
Ak DISM naopak zaeviduje už hlásené problémy, zobrazí sa správa o tom, že problémy boli zaznamenané a mechanizmus je pripravený na ich opravu. Ide teda o text:
The component store is repairable. The operation completed successfully.

Následne teda DISM spustíme s parametrom ScanHealth, ktorý nám prinesie ďalšie informácie o stave systému a odhalí nám aj tie chyby, ktoré zatiaľ neboli nájdené. Celý príkaz má nasledovnú podobu:

DISM /Online /Cleanup-Image /ScanHealth

Tento proces už nebude okamžitý a zobrazí sa indikátor pokroku, zobrazujúci jednotlivé percentá. Skenovanie bude trvať približne dve minúty, prípadne o niečo málo viac.

Ak DISM odhalí vo vašom nainštalovanom zostavení Windows chyby, zobrazí sa správa „The component store corruption detected“. Znamená to, že porušenie úložiska komponentov bolo rozpoznané. Nefunkčnosť tejto časti systému je mimo iného aj dôvod, že oprava systémových súborov nástrojom SFC nebola možná.

Následne nám teda už nič nebráni nástroju DISM nakázať, aby opravu komponentov vykonal. Príkaz má nasledujúci tvar:

DISM /Online /Cleanup-Image /RestoreHealth

Tento proces už môže trvať aj niekoľko desiatok minút, pričom je celkom normálne, ak sa na nejakom percente „zasekne“ na dlhšiu dobu (pokojne aj niekoľko minút). Je to totiž miesto kde je nájdená chyba, pričom DISM začne sťahovať originálne a správne verzie zo serverov Microsoftu.
DISM pri tom používa na pozadí službu Windows Update a všetko prebieha plne automaticky. Stačí len čakať. Žiadna akcia nie je potrebná.

V prípade, že poškodenie Windows sa týka aj samotného aktualizačného mechanizmu, ktorý nefunguje (alebo internetové pripojenie nie je dostupné), je možné použiť na opravu inštalačné médium.
Môže ísť o DVD, USB kľúč, alebo aj obraz disku, zasunutý do virtuálnej mechaniky. Príkaz je v takomto prípade nutné zadať nasledovne:

DISM /Online /Cleanup-Image /RestoreHealth /Source:ADRESA.

Slovo ADRESA je potrebné nahradiť umiestnením súboru install.esd, ktorý sa nachádza na inštalačnom médiu v priečinku sources. Ak teda DVD, alebo virtuálne ISO inštalátoru Windows dostane pridelené písmeno jednotky E:, parameter zadajte ako /Source:E:/sources/install.esd.
Po týchto opravách je vhodné znova spustiť System File Checker (obzvlášť ak predtým nefungoval) a nechať ho prípadné problémy opraviť. Tento raz už pôjde všetko bez komplikácii.
Ak opravujete systém Windows, ktorý nie je spustený, DISM je možné spúšťať aj z Prostredia opravných nástrojov. Postup je rovnaký, ako v prípade spúšťania SFC, ktorý sme uviedli pri kontrole konzistentnosti systémových súborov.

Na nasmerovanie DISM však potrebujete zistiť nielen to, akú jednotku dostal pridelenú váš systémový disk (obvykle D), ale aj zasunuté inštalačné médium (obvykle E), ktoré sa použije ako zdrojové médium pre opravu zostavenia (pomôže vám opäť príkaz wmic logicaldisk get deviceid, volumename).

Ak teda nespustený systémový disk dostal priradenú jednotku D: a inštalačné médium napríklad jednotku „E:“, príkaz pre opravu bude vyzerať takto:

DISM -image:D: -cleanup-image -RestoreHealth -Source:E:/sources/install.esd.

Príkaz zadáva to, aby DISM, spustený z opravných nástrojov, začal opravovať váš systémový disk C (dočasne umiestnený na jednotke D), s použitím súborov z inštalačného média (E). Ide prakticky o najmocnejšiu verziu opravy systémových súborov a pokiaľ už nezaberie ani tá, bude nutné systém preinštalovať (pokojne aj bez formátovania, aby ste neprišli o dáta).

Zdroj: touchit.sk