Naprawianie zepsutego MBR i tablicy partycji
Czyli jak naprawić system gdy się go spsuje i dlaczego lepiej uważać co się robi z DD ;]. Po reinstalacji windowsa (nightmare… NIGHTMARE) chciałem przywrócić GRUBa. Niby nic trudnego, zabootuj z płyty, chroot, jedna komenda i tyle, tylko miałem jeden mały problem, nie miałem żadnego 64 linuksa na USB/płycie.W przypływie “geniuszu” postanowiłem zainstalować “normalny” MBR i spróbować bootować się bezpośrednio z partycji. I tu się zaczęły problemy ;]
Jedyna bootowalna rzecz którą miałem był pendrive z Debem i386 (instalowałem netbooka z niego) ale nie miał on install-mbr więc wpadłem na “genialny” pomysł, zgram MBR na netbooku, a potem przywrócę go przez
dd if=mbr of=/dev/sda
. Ci co częściej bawili się bootloaderami pewnie zauważyli już problem ;].
W pierwszym sektorze dysku, oprócz MBR, znajduje się tablica partycji więc tym krokiem wyczyściłem ją sobie. W tym momencie przerwij czytanie, zrób
fdisk -l /dev/sda Urządzenie Rozruch Początek Koniec Bloków ID System /dev/sda1 * 1 4864 39070048 7 HPFS/NTFS /dev/sda2 4865 7357 20025022+ 83 Linux /dev/sda3 7358 12220 39062047+ f W95 Ext'd (LBA) /dev/sda4 12221 14593 19061120 83 Linux /dev/sda5 7358 11004 29294496 7 HPFS/NTFS /dev/sda6 11005 12220 9767488+ 83 Linux
i wydrukuj lub zapisz w jakimś bezpiecznym miejscu ;].
How to fix it ?
Potrzebny jest LiveCD/USB z MBRem i gpart (nie gparted, chociaż to też użyteczny soft), polecam liveUSB/CD GParted (na którym jest zarówno gpart jak i gparted + trochę innych narzędzi pomocnych w takich wypadkach.)
Bootujemy LiveCD/USB, odpalamy konsolę i
# gpart /dev/sda Begin scan... Possible partition(Windows NT/W2K FS), size(7169mb), offset(0mb) Possible partition(Windows NT/W2K FS), size(25647mb), offset(7169mb) Possible partition(Linux ext2), size(188mb), offset(32820mb) Possible extended partition at offset(33008mb) ....
jeżeli partycje wygladaja ok dodajemy opcję -W /dev/sda
, jeżeli nie zalecam poczytanie mana ;] jest tam m.in tryb interaktywny ( -i
)
Przy czym z doświadczenia mogę powiedzieć że program nie jet super dokładny, np. mojej partycji root brakowało jednego sektora na końcu i XFS nie chciał jej zamontować
Gdy jesteśmy już zadowoleni z partycji, install-mbr /dev/sda
i potem w gparted (lub fdisk, lub cfdisk) ustawiamy partycję bootującą, reboot i przy odrobinie szczęścia powinno działać. Przy czym domyślnie GRUB instaluje się do MBR więc jeżeli instalacja była w stylu “klikam dalej póki nie pokaże mi się GDM” to rescue i tak was czeka ;] (Instalator Debiana ma przyzwoity tryb rescue, jest nawet opcja “przywróć GRUB” w menu). A najlepiej po prostu nie mieszać DD i MBRa ;]. Posiadanie pod ręką płyty netinst (polecam wersję multiarch, jest tam zarówno instalator na i386 jak i x86_64 http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/multi-arch/iso-cd/ ) też jest bardzo przydatne ;].
A ja mam nauczkę na przyszłość, nie kombinować tylko używać odpowiednich narzędzi, zamówiłem sobie 3 pendrive, pierwszy na gparted (lub jakieś hackish LiveCD), drugi na debian installer ,trzeci na jakieś live Ubuntu ;]