Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Naprawa sektora rozruchowego w Windows Vista, Windows 7, Windows 2008 i GRUB 2.

And! 03 Gru 2016 20:07 14361 0
  • Naprawa sektora rozruchowego w Windows Vista, Windows 7, Windows 2008 i GRUB 2.
    Kilka lat temu na stronie and.elektroda.eu umieściłem materiał o błędach uruchamiania systemu Windows na etapie botowania, materiał nadal cieszył się sporą popularnością. Obecnie przydałoby się uzupełnić temat o nowe informacje o np. Windows 10. Ponieważ oryginalny materiał jest obecnie niedostępny, umieszczam poniżej opracowany kiedyś materiał. Podejrzewam że materiał mimo że dość stary nadal może się przydać gdy ktoś pierwszy raz natrafi na błąd uruchamiania systemu operacyjnego.

    Zwykle wygląda to tak, że po uruchomieniu lub restarcie (planowanym lub nie),
    dostajemy komunikat o błędzie uruchomienia lub nie znalezieniu systemu operacyjnego.
    Zwykle każdy botuje wtedy komputer z płyty instalacyjnej Windows i po uruchomieniu,
    konsoli odzyskiwania wydaje polecenia FIXBOOT lub FIXMBR, nie zależnie od zrozumienia
    swoich działań komputer zwykle zaczyna prawidłowo ładować system.
    W przypadku systemów Windows Vista i nowszych procedura naprawy sektora wygląda nieco inaczej.

    Problemy z uruchamianiem systemu operacyjnego w skutek uszkodzenia sektora rozruchowego,
    występują najczęściej w wyniku działalności wirusa, rootkita, błędów lub naszych działań.
    Może to być np. instalacja dodatkowych systemów lub menadżerów botowania, ew zmiany rozmiarów partycji itp.
    Może się też zdarzyć że dysk jest uszkodzony fizycznie a wtedy niewiele zdziałamy,
    w zasadzie nie powinno się wtedy naprawiać systemu tylko spróbować odzyskać (skopiować) dane.
    Do ew. diagnozy stanu dysku może być przydatny mechanizm SMART i programy odczytujące parametry S.M.A.R.T.
    Poza uszkodzeniem programu ładującego może się jeszcze zdarzyć uszkodzenie tablicy partycji.

    Problemy ze startem systemu operacyjnego powiązane są zwykle z komunikatami:
    Disk Boot Failure Insert System Disk And Press Enter,
    ntldr is missing,
    winload.exe is missing or corrupt
    ,
    prawdopodobnie mamy uszkodzony dysk logicznie lub fizycznie,
    brakuje lub uszkodzone są pliki, ew uszkodzony jest sektor rozruchowy.
    Dla wyeliminowania błędów logicznych warto uruchomić chkdsk c: (lub inny dysk)
    z poziomu wiersza polecenia konsoli odzyskiwania uruchomionej z botowalnej płyty instalacyjnej systemu
    ( konsola odzyskiwania dla systemów starszych niż Windows Vista,
    oraz "napraw komputer" wiersz polecenia dla systemów nowszych niż WindowsXp).





    Wracając do uszkodzeń sektorów rozruchowych
    wygląda to tak, że każdy fizyczny dysk posiada MBR (główny rekord startowy), który uruchamiany jest z poziomu BIOS
    (BIOS zresztą stopniowo zastępowany jest UEFI-Unified Extensible Firmware Interface).
    W MBR siedzi program rozruchowy oraz główna tabela partycji.
    Także w momencie uszkodzenia programu ładującego nie ma szans na prawidłowe załadowanie systemu.
    Poza MBR dysku każda partycja posiada sektor rozruchowy, który również może posiadać program ładujący.
    Można to wykorzystać instalując w MBR np. GRUB a na partycji z Windows program ładujący Windowsa.

    W każdym razie skoro już coś zepsuliśmy, można spróbować to naprawić
    lub jeszcze bardziej zepsuć gdyż poniższe instrukcje wcale nie gwarantują,
    przywrócenia działania systemu, dodatkowo stosując poniższe instrukcje
    po omacku bez odpowiedniej wiedzy mamy dużą szansę że coś jeszcze bardziej zepsujemy.

    Podobnie jak w przypadku wcześniejszych wersji systemu np. Windows XP,
    dostępne są narzędzia naprawy systemu po uruchomieniu komputera z botującej
    płyty instalacyjnej. W przypadku windows XP była to opcja konsola odzyskiwania,
    a następnie po wybraniu systemu operacyjnego wydanie poleceń FIXMBR lub FIXBOOT
    dla dysku z systemem. W nowszych systemach Windows, po uruchomieniu płyty botującej,
    mamy w interfejsie graficznym opcję "Napraw komputer" która umożliwia przywracanie kopi
    zapasowych. Jest również możliwość uruchomienia wiersza poleceń.

    W Windows Vista oraz Windows 7 i nowszych, konsola naprawy systemu wygląda i działa nieco inaczej niż w windows Xp.
    Jeżeli przywracanie backupu nie powiodło się, możemy uruchomić wiersz poleceń.
    W przeciwieństwie do Windows Xp nie znajdziemy tu polecenia FIXMBR oraz FIXBOOT. Sektor rozruchowy możemy naprawić narzędziem Bootrec.exe z parametrami /FixMbr lub /FixBoot.
    Dodatkowo możemy przeszukiwać magazyn BCD oraz dyski w poszukiwaniu systemów
    Bootrec.exe /ScanOs oraz odbudowywać magazyn BCD /RebuildBcd.

    Także naprawa głównego rekordu rozruchowego poprzez zapisanie nowego zgodnego z Windows odbywa się poleceniem:
    Bootrec.exe /FixMbr
    lub gdy sektor został uszkodzony, nadpisany innym, ew. menadżer rozruchu Windows Bootmgr.exe został zastąpiony wcześniejszą wersją NTLDR do naprawy sektora rozruchowego partycji używamy:
    Bootrec.exe /FixBoot

    Warto też zwrócić uwagę na narzędzie BCDedit.exe,
    pozwalające na operacje na magazynie BCD (Boot Configuration Data),
    jest to narzędzie podobne do wcześniejszego BOOTCFG.EXE,
    zwykle do naprawy systemu wystarczy Bootrec.exe,
    jednak BCDedit.exe pozwala m.in na kopię magazynu
    BCDedit /export C:\BCD_kopia (oraz odpowiednio /import),
    co może okazać się przydatne.

    I to tyle co do możliwości naprawiania sektora rozruchowego w systemach nowszych niż WindowsXP

    W przypadku większej ilości systemów operacyjnych na dysku, warto pomyśleć nad alternatywnymi bootloaderami,
    jednym z nich jest Grub 2. Automatyczna instalacja, Linuxa na partycji dysku na którego innej partycji znajduje się Windows, daje dużą szansę, że po zakończeniu instalacji oba systemy będą jeszcze działać. W dodatku cała konfiguracja odbędzie się automatycznie. Takim sposobem możemy mieć na jednym dysku np. dwa Windowsy i cztery Linuxy.

    Automatyczna konfiguracja jeżeli zakończy się sukcesem ma jedną zaletę - działa, dlatego warto nieco popracować nad konfiguracją Grub 2 aby menu startowe było bardziej funkcjonalne.

    Osoby które znają poprzednika Grub 2, mogą być nieco zagubione, gdyż np. nie ma pliku menu.lst,
    jest za to /boot/grub/grub.cfg który generowany jest automatycznie i nie należy go edytować ręcznie.

    Ale po kolei, na początek mamy pliczek
    /etc/default/grub
    W tym pliku możemy zmodyfikować (oczywiście działając na uprawnieniach root) następujące opcje:
    GRUB_TIMEOUT=xx -> czas w sekundach jaki mamy na wybór opcji menu
    GRUB_DISABLE_LINUX_RECOVERY="true" -> nie będą dodawne specjalne tryby dla Linux (domyślnie są dodawne)
    GRUB_DISABLE_OS_PROBER="true" -> wyłączanie automatycznego przeszukiwania systemów Linux, Windows na dyskach.
    Po zmianie parametrów uruchamiamy z odpowiednimi prawami z konsoli polecenie
    update-grub
    Wynik możemy zobaczyć w pliku /boot/grub/grub.cfg oraz restarcie systemu.

    Dodatkowo możemy dodać swoje własne wpisy do menu wyboru,
    edytując plik:
    /etc/grub.d/40_custom
    dodajemy tam wpisy typu

    menuentry "Linux" {
    set root='(hd1,3)'
    linux /boot/vmlinuz-1.2.3-generic root=/dev/hdb3
    initrd /boot/initrd.img-1.2.3-generic
    }

    Pierwsza linia to nazwa pola menu,
    następnie set root... hd0,hd1,hd3 itp oznaczają kolejne dyski z systemem
    natomiast liczba po przecinku oznacza numer partycji np. hdb3 -> 3.

    w katalogu /etc/grub.d/ znajdziemy więcej plików poza 40_custom
    odpowiadają one za automatyczne generowanie menu,
    przykładowo gdy chcemy zablokować dodawanie wpisów testów pamięci
    (memtest86+) zdejmujemy bit zezwalający na wykonanie z pliku:
    /etc/grub.d/20_memtest86+
    np. chmod -x /etc/grub.d/20_memtest86+
    (tak samo możemy zablokować wykrywanie systemów 30_os-prober, 10_linux) eliminując kolejne automaty możemy doprowadzić,
    do generowania menu wyłącznie z pliku
    /etc/grub.d/40_custom

    Oczywiście po każdej zmianie wykonujemy
    update-grub
    sprawdzamy wynik w pliku
    /boot/grub/grub.cfg
    i jeżeli jest ok można zrestartować system aby zobaczyć wyniki.

    I tyle na początek zabawy z bootloaderem GRUB, oczywiście ustawień jest znacznie więcej,
    warto pamiętać że modyfikujemy dość krytyczne wpisy, może się okazać, że mimo, że mamy system na dysku nie można uruchomić komputera, dlatego należy zachować ostrożność oraz kopie zapasowe.


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.