Re: jak naprawic sektor rozruchowy MBR?

Autor: Ig (iglaz_at_f2virt.onet.pl)
Data: Wed 08 Oct 2003 - 12:58:30 MET DST


jarek wrote:
> Witam
>
> Mam dwa dyski.
> Na pierwszym windows XP, na drugim Linux Red Hat 9.
> Gdy wyjmuje z kieszeni dysk linuxowy pojawia sie blad. Linuxowy loader GRUB
> zapisany w sektorze rozruchowym pierwszego dysku nie znajduje dysku
> linuxowego.
> Uzywam konsoli odzyskiwania XP i polecenia FIXBOOT. To jednak nie dziala.
> Polecenie FIXMBR-informauje ze moge stracic dane o partycjach i starcic dane
> na dysku. Nie uzywalem wiec.
> Wiem, ze moge skorzystac z dysku startowego win98 i "fdisk.exe /mbr", ale
> chce zalatwic sprawe przy pomocy XP.
>
> Jak to zrobic?
>
> Pozdrawiam
> jarek
>
>
Odinstaluj LILO z pierwszego dysku np. LILO -U /dev/hda1

Ig

a potem

Niniejszy opis dotyczy konfiguracji windowsowego (XP) NT Boot Loadera,
tak aby można było bezpiecznie odpalać Linuxa z poziomu menu startowego
XP (a nie z linuxowej dyskietki).

     * Zaloguj się pod konsolą (nie w terminalu okienkowym pod np. KDE)
jako root.

     * Poleceniem ls / sprawdź czy masz katalog /floppy . Jeżeli nie,
to jeszcze raz poleceniem ls /mnt . Zapamiętaj położenie katalogu floppy
(w Mandraku jest on w /mnt/floppy).

     * Włóż czystą dyskietkę (sformatowaną pod MS Winndows lub DOS) i
zamontuj flopka poleceniem:
       mount -t vfat /dev/fd0 /mnt/floppy
       lub
       mount /dev/fd0
       lub
       mount /mnt/floppy

     * Poleceniem mount sprawdź jakie urządzenie jest podmontowane jako
linuxowe / . U mnie wygląda to następująco: /dev/hda5 on / type ext3
  (rw)

       Wyjaśnienie: /dev/hda5 to partycja, z której bootuje się Linux.
Tak jest w moim przypadku, gdyż wcześniej zapisałem LILO do bootsectora
tej partycji nie do MBR dysku - jest to ważne, gdyż po błędnym zapisaniu
do MBR (czyli tam gdzie WinXP trzyma swój record startowy), nastąpi
nieodwracalne uszkodzenie bootsectora partycji windowsowej. Oczywiście
system plików ext3 u Ciebie może być inny np. ext2.

       Polecam też przegladnąć plik /etc/fstab

     * Mając zamontowaną czystą (sformatowaną) dyskietkę oraz znając
położenia interesujących nas urządzeń zgraj bootsector z /dev/hda5 na
dyskietkę za pomocą polecenia: dd if=/dev/hda5
of=/mnt/floppy/bootsec.lnx bs=512 count=1

       Pamiętaj, że przyjąłem iż LILO zainstalowane jest obecnie w
bootsectorze pierwszej partycji Linuxowej.

     * Poleceniem umount /mnt/floppy lub mount /dev/fd0 odmontuj dyskietkę.

     * Przeładuj system poleceniem shutdown -r 0 (lub shutdown -r now
lub reboot) i załaduj WindowsXP.

     * Pod WindowsXP skopiuj z dyskietki plik bootsec.lnx (przed chwilą
zgrałeś go na dyskietkę dając pod Linuxem zlecenie dd) do katalogu
głównego C:\ na partycji windowsowej. Nadj mu atrybut H (hidden-ukryty),
po to aby nikt go przez przypadek nie skasował.

     * Dopisz do pliku c:\boot.ini wiersz:
       c:\bootsec.lnx="LINUX"
       Uwaga: ponieważ plik boot.ini ma atrybuty SHR (System Hidden
ReadOnly), musisz je wcześniej zdjąć by cokolwiek móc w nim modyfikować.
Możesz użyć polecenia w okienku dos'owym:
       attrib -S-H-R c:\boot.ini

     * Przeładuj komputer. W menu startowym NT/XP powinna oprócz
pozycji Windows XP pojawić się pozycja LINUX.

Nieprawdziwą jest informacja krążąca po necie, że odpalanie WindowsXP i
Linuxa z tego samego dysku uszkadza bootsector Windowsa. Korzystanie z
NT Boot Loadera jest bezpieczne, ale w sposób jaki opisałem powyżej.
Natomiast rzeczywicie nie wolno uruchamiać WindowsXP z poziomu
linuxowego menu startowego LILO (uszkodzi się wówczas bootsector
partycji windowsowej).

Jeżeli nie zrozumiałeś mojego artykułu, to nie przejmuj się. Zawsze
możesz bezpiecznie odpalać Linuxa z dyskietki startowej, a Windowsa
standardowo, z dysku.

Aha... Byłbym zapomniał. Można instalować LILO powyżej 1024 cylindra
dysku, ale z użyciem opcji: LBA32 . Należy więc należy dopisać w
dowolnym miejscu pliku /etc/lilo.conf wiersz lba32. Jedynie lilo w
bardzo starych wersjach nie obslugują tego. Pamiętaj, by po każdej
edycji pliku /etc/lilo.conf wydać komendę lilo, która zaktualizuje
ustawienia bootloadera.



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