Re: jak naprawic sektor rozruchowy MBR?

Autor: Michal Kawecki (k_at_o2.pl)
Data: Thu 09 Oct 2003 - 11:11:19 MET DST


Użytkownik "Dariusz K. Ladziak" <ladzk_at_waw.pdi.net> napisał w
wiadomości news:3f848e33.6077068_at_news.tpi.pl
> On Wed, 8 Oct 2003 22:32:19 +0200, "Michal Kawecki" <k_at_o2.pl> wrote:
>
>
>> Hmmm... ciekawe, bo XP trzyma swój - jak to nazwałeś - rekord
>> startowy nie w MBR dysku, tylko właśnie w bootsektorze własnej
>> partycji startowej.
>
> Ale przy instalacji w MBR tez lokuje program bootujacy - odsylajacy
> wlasnie do partycji systemowej. Czy bedzie to program bootujacy
> pochodzacy z XP czy jakikolwiek inny - to za rybke, wazne zeby odeslal
> proces bootowania na wlasciwa partycje.

No tak, ale to nie jest *ten* kod, o którym ty myślisz. Instalator XP
zapisuje dwa kody: - pierwszy kod do MBR dysku. Jest to bardzo prosty
kod, który zasadniczo nie uległ zmianie chyba od pierwszych wersji
DOS-a. Jego zadaniem jest wyłącznie odczytanie bootsektora partycji
ustawionej jako aktywna i uruchomienie znajdującego się w nim właściwego
bootmanagera. Można ten kod odtworzyć poleceniem fdisk /mbr albo fixmbr.
- drugi kod zapisywany jest do bootsektora aktywnej partycji. To ten kod
jest właściwym bootmanagerem XP, z jego menu startowym. Ja go nazywam
ntloaderem, żeby nie mylić go z innymi bootmanagerami, które z reguły
zastępują ten pierwszy, niekonfigurowalny kod, w MBR dysku.

>>
>> Oprócz tego ciekaw jestem, w jaki sposób można uszkodzić bootsektor
>> partycji, zapisując coś do MBR dysku...? ;-)
>
> Nie mozna. Tyle ze zapisujac cokolwiek do MBR gubi sie sciezke procesu
> bootowania prowadzaca do konkretnej partycji z systemem. Przeciez
> procesor wie gdzie szukac partycji systemowej na podstawie tego co w
> MBR znajdzie - jak znajdzie sieczke to na partycje z systemem nie
> trafi.

Eeee tam. Nic się nie gubi, bo w MBR nie ma zapisanej żadnej ścieżki. W
MBR jest jedynie prościutki kod wybierający aktywną partycję, jak to
wcześniej opisałem (oraz oczywiście sama tabela partycji - która nie
jest nadpisywana).

Procesor żąda od BIOS-u wskazania mu, który dysk został wybrany jako
bootujący. Następnie czyta z tego dysku kod zapisany w jego MBR i go
wykonuje. Jeżeli jest to jakikolwiek sensowny kod, a nie "sieczka" jak
napisałeś, to z pewnością w jakiś tam sposób wskaże on na którąś z
partycji z systemem do uruchomienia. Kod zapisywany tam przez fdisk
/mbr, jak już pisałem, zawsze opiera się na wskaźniku aktywnej partycji
odczytywanym na bieżąco z tabeli partycji. Kod Lilo zachowuje się
inaczej. Lilo zapisuje do MBR dysku fragmencik swego kodu z zafiksowaną
w nim informacją dotyczącą położenia partycji z Linuxem (dlatego właśnie
po każdej zmianie położenia partycji z systemem trzeba te dane w MBR
uaktualnić poleceniem lilo). Reszta kodu lilo znajduje się w
bootsektorze partycji Linuxowej, tam gdzie jest jego plik
konfiguracyjny. Pod tym względem instalacja Lilo nie różni się niczym od
instalacji Windowsowego bootmanagera: też zapisywane sa dwa kody i też
jeden z nich wędruje do MBR, a drugi do bootsektora partycji.

Reasumując; to, czy do wybrania aktywnej partycji będziemy korzystać z
fdiskowego kodu czy też z fragmentu kodu Lilo*, nie ma najmniejszego
znaczenia. Istotny jest główny kod zapisany w bootsektorze partycji z
danym systemem, bo to on wyświetla menu startowe i ładuje pliki systemu.

*z tym, że kod Lilo zapisany w MBR dysku kieruje _zawsze_ do partycji z
Linuxem, zaś kod fdiskowy - do partycji wskazanej aktualnie jako
aktywna.

>>
>>> Nieprawdziwą jest informacja krążąca po necie, że odpalanie
>>> WindowsXP i Linuxa z tego samego dysku uszkadza bootsector Windowsa.
>
> Podmienia MBR Windowsowy na MBR Linuksowy (zwykle LILO, czasem GRUB).
> Jako ze zarowno MBR z Win XP jak i MBR uzywane w Linuksie maja
> mozliwosci zdefiniowania multiboot - to o zadnym uszkodzeniu mowy
> oczywiscie nie ma, co najwyzej moga tam byc zawarte bezsensowne
> wskazania (jak ktos sierota i nie potrafi sobie skonfigurowac tego MBR
> jakiego chce uzywac...).

Jakbyś się chwilkę zastanowił nad powyższym, to sam znalazłbyś
sprzeczność w zeznaniach ;-). Skoro w MBR nadpisywany jest rzekomo
zapisany tam bootmanager XP, to jak to się dzieje, że po wybraniu z menu
Lilo systemu XP, wyświetla się jednak XP-kowe menu startowe......? ;-)

-- 
M.
/odpowiadając zmień k na kkwinto/


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 11:24:31 MET DST