|
GRUB error 21 po instalacji Debiana
Gelio - 11-06-2009 22:04
Witam. Dzisiaj postanowiłem zainstalować sobie Debiana, aby skompilować silnik do gry, która będzie działać na Linuksie (dotychczas działała na Windowsie). Tak więc ściągnąłem 1 CD do Debiana 5.01 (chyba dobrze napisałem), wypaliłem na płytę i zainstalowałem. Instalacja przebiegła bezproblemowo. Potem, gdy chciałem odpalić obojętnie jaki system operacyjny, czy Windows czy Debian przy uruchamianiu wyświetlał się błąd GRUB-a:
GRUB Loading stage1.5 GRUB loading, please wait... Error 21
Proszę o pomoc jak odzyskać chociaż Windowsa. Albo dane z dysku. Mam 2 dyski RAID, każdy po 400 GB. Debiana instalowałem na końcu drugiego dysku. System wcześniej działający to Windows Vista Home Premium 32 bit. Da się jakoś wyłączyć uruchamianie przez GRUB? Dodam, że próbowałem ustawić w BIOS-ie, żeby najpierw startowało z dysku, a potem reszta. Wtedy w miejscu, gdzie był błąd GRUB-a nic się nie pojawiło i komputer się zaciął.
Pozdrawiam i proszę o szybką pomoc, Gelio
@edit ÂŻeby nie było niejasności: piszę z komputera brata.
ArnVaker - 11-06-2009 22:15
Dodam, że próbowałem ustawić w BIOSie, żeby najpierw bootowało z dysku, a potem reszta. Wtedy w miejscu, gdzie był błąd GRUB'a nic się nie pojawiło i komputer się zaciął.
Grub siedzi w pierwszym sektorze dysku, uruchamia się właśnie kiedy ustawione jest uruchamianie z dysku.
Co do przywrócenia "bootloadera" Visty:
Nie mając wielkiego pola do popisu na czystej konsoli Ubuntu, postanowiłem przywrócić bootloader Windowsa Visty, w celu dostania się do trybu graficznego i zaczęcia szukania rozwiązania na Google.
Odpaliłem płytkę Visty w trybie do naprawy systemu i odpaliłem cmd. Wszystko byłoby fajnie, gdyby Vista raczyła rozpoznać polecenie fixmbr bądź fixboot. Ale nie, nic z tego! Wybrałem zatem opcję automatycznego wykrywania i naprawy błędów. Vista nic nie wykryła.
Wkurzyłem się, znalazłem płytkę Windowsa XP i z jej poziomu spróbowałem przywrócić windowsowy bootloader. Windows poinformował mnie o poprawnym przebiegu operacji, ale bootloader zaczął krzyczeć o brak jakiegoś pliku. Zatem znowu do akcji wkroczyła Vista, z automatyczną naprawą, która już wykryła uszkodzenie MBR i naprawiła go.
Jupi, Windows wstał! Cóż za ulga. Ale wniosek z tego mam jeden - aby Vista mogła naprawić MBR, trzeba go wpierw zepsuć z poziomu XP :P (oczywiście to taka luźna uwaga - <joke> jednym słowem).
Mam 2 dyski RAID, każdy po 400 GB. Debiana instalowałem na końcu drugiego dysku.
Nie bardzo rozumiem, skoro masz postawioną macierz, to w jaki sposób instalowałeś Debiana na końcu drugiego dysku?
Dane zawsze możesz odzyskać korzystając z jakiejś dystrybucji livecd. Opisz to wszystko bardziej logicznie, bo nie mogę się w tym połapać.
Gelio - 11-06-2009 22:32
Ok, dzięki. Spróbuje tak jak cytowałeś. Jak nie to z tym livecd. Wracając do dysków: sam się zdziwiłem, jak podczas instalacji Debiana pytało gdzie ma go zainstalować. Wtedy wybrałem drugą partycję. Potem pokazało się okno czy na początku czy na końcu dysku chcę go zainstalować. Wybrałem koniec, bo tam nic z windowsa nie powinno się znajdować. O wszelkich posunięciach będę pisał tutaj. Ale to już nie dzisiaj. Jutro napiszę wszystko bardziej konkretnie. Dzisiaj jestem jakiś nieskoncentrowany.
Pozdrawiam, Gelio
@edit Dobra, ściągam SystemRescueCD. Za około godzinę (po ściągnięciu i wypaleniu) dam wyniki tej komendy i zawartość pliku.
ArnVaker - 11-06-2009 23:17
ÂŚciągnij dystrybucję typu livecd, na przykład SystemRescueCD lub grml. Uruchom komputer z płyty, odpal terminal i jako root wydaj polecenie:
fdisk -l
Wrzuć wynik. Wrzuć też zawartość pliku /boot/grub/menu.lst znajdującego się na partycji na której zainstalowałeś Debiana.
W sprawie macierzy, to nie jest to czasem windowsowa macierz systemowa? Jeśli tak, to instalator Debiana nie ma możliwości wykrycia jej. Partycje powinieneś przygotować jeszcze przed instalacją, z poziomu livecd, na przykład programem gparted.
Grub najwyraźniej zainstalowany jest w "mbr" odpowiedniego dysku, skoro się uruchamia. Możliwe, że w menu.lst dyski są zamienione miejscami lub wystarczy ustawić ich mapowanie.
Gelio - 12-06-2009 09:36
Wynik po wpisaniu komendy
fdisk -l
(nie chciało mi się pisać, to zrobiłem zdjęcie):
http://img99.imageshack.us/img99/2858/dsc00630q.th.jpg
A i nie wiem, czy dobrze robię z tym plikiem, ale po prostu wpisuję ścieżkę do tego pliku i mi pisze, że nie mam dostępu: Próbowałem też z innymi plikami w tym folderze - też nie działało. Aha, wpisałem też komendę gparted, ale wyskoczył błąd: Pozdrawiam i proszę o dalszą pomoc, Gelio
@edit Dobrze, już wiem jak otworzyć zawartość pliku. Zawartość pliku menu.lst (również zdjęcie, za dużo przepisywania): http://img521.imageshack.us/img521/5...c00632u.th.jpg
fnmirk - 12-06-2009 10:18
Gelio, a może byś tak poszukał jak przekierować wynik polecenia z konsoli do pliku zamiast bawić się obrazkami? Wielokrotnie o tym było na forum?
sigo - 12-06-2009 10:22
Z tego co zauważyłem, odczytałeś zawartość pliku menu.lst zawartego na płycie z SystemRescueCd, nie swojego systemu.
Gelio - 12-06-2009 11:01
Dobrze, teraz pewnie zabłysnę moją znajomością Linuksa, ale jaka to komenda do zapisania w pliku (chyba cat, ale nie wiem jak jej używać) i gdzie znajduje się ten plik na moim dysku, albo chociaż jak "wejść" do mojego dysku. W katalogu / nie widzę żadnych rzeczy, które miałyby być moim dyskiem.
Pozdrawiam, Gelio
@edit Dobra, już umiem. Dodam, że udało mi się odpalić wersję graficzną :D Ale dalej nie wiem jak odczytać dane z dysku. Poszukam na google. Na razie czekam na odpowiedź ArnVaker, może on coś będzie wiedział.
@edit 2 Włączyłem Start>System>Show filesystems i taki oto wynik: Tak więc myślę, że dysku z windowsem mi nie usunęło. Programy to była nazwa dysku D: w Windowsie. Rozmary też się zgadzają. Teraz tylko jak go włączyć, oto jest pytanie.
fnmirk - 12-06-2009 11:30
http://debian.linux.pl/viewtopic.php?p=70306#70306
ArnVaker - 12-06-2009 12:19
Czy to jest RAID 0 postawiony na "kontrolerze" zintegrowanym z płytą główną?
Gelio - 12-06-2009 12:53
Jaki RAID0? Które zdjęcie albo tekst? Nie jestem jakoś bardzo obeznany w Linuksie, sprzęcie itp. Dopiero zaczynam.
Pozdrawiam, Gelio
sigo - 12-06-2009 13:13
Mam 2 dyski RAID
ArnVaker - 12-06-2009 13:13
W jaki sposób utworzyłeś macierz dyskową i jaka to macierz? Ustawiłeś ją w BIOSie przed instalacją Windowsa, czy może później coś kombinowałeś?
Współpraca Linuksa z "kontrolerami" RAID zintegrowanymi na płycie głównej jest "mocno średnia". Jak sam zauważyłeś, Debian podczas instalacji wykrył dwa dyski, chociaż powinien jeden o pojemności 800GB (cały czas zakładam, że to RAID0).
Debiana zainstalowałeś na końcu drugiego dysku (100GB), czyli ostatnie 100GB pierwszego dysku też się już do niczego nie nadaje. Linux nie obsłuży takiej macierzy poprawnie. Według mnie, najlepsze co możesz zrobić, to przywrócić "bootloader" Visty i sprawdzić, czy system w ogóle wstanie.
Gelio - 12-06-2009 13:19
Mógłbyś jeszcze powiedzieć jak przywrócić bootloader visty? Włożyć płytę z Vistą i wybrać opcję Naprawiania Systemu? Jeżeli chodzi o te dyski, to musiałbym się brata zapytać, bo on mi składał komputer. Ja tylko przy instalacji Visty zrobiłem kilka dysków (nie wiem czy dobre byłoby tu określenie partycji).
Pozdrawiam i proszę o szybką odpowiedź, Gelio
@edit Jeszcze po tym co powiedziałeś pomyślałem sobie, żeby kupić oddzielny dysk 40 gb, na którym byłby Debian. Zmieściłby się? Chodzi o ten dysk .
ArnVaker - 12-06-2009 13:24
Nie miałem nigdy Visty, także nie wiem. Sposób Kaki', mimo, że trochę zagmatwany wydaje się dosyć logiczny. Poszukaj w sieci, na pewno ktoś już to zrobił i opisał.
Ja tylko przy instalacji Visty zrobiłem kilka dysków (nie wiem czy dobre byłoby tu określenie partycji).
Czyli instalator Visty wykrył jeden dysk o pojemności około 800GB?
Gelio - 12-06-2009 13:27
Czyli instalator Visty wykrył jeden dysk o pojemności około 800GB?
Tak, dokładnie tak. Wtedy zrobiłem z tego wolnego miejsca kilka dysków. Teraz spróbuje poszukać.
Pozdrawiam, Gelio
@edit Znalazłem tutaj, żeby wpisać takie komendy: # grub # root (hd0,1) - oczywiście podajesz partycję na której jest system # setup (hd0) # quit # reboot
Tylko nie wiem jakie nazwy mają te dyski. Jest jakiś program, albo coś innego, które pokazałoby nazwy dysków? I czy może ktoś mi powiedzieć do czego są te funkcje.
@edit 2 No... Dobra :D Tak pisało w temacie przywracanie bootloadera Visty. Teraz spróbuje naprawić to płytą instalacyjną Visty. Tam chyba jest opcja Napraw System.
ArnVaker - 12-06-2009 13:47
Ale Ty przecież chciałeś przywrócić "bootloader" Visty. Te kroki prowadzą do przywrócenia gruba, którego już masz...
Jak już siedzisz na tym livecd, to zrób jeszcze tak: mkdir /mnt/sdb1 mount /dev/sdb1 /mnt/sdb1 cat /mnt/sdb1/boot/grub/menu.lst
Wrzuć wynik tego ostatniego.
fnmirk - 12-06-2009 13:58
Błąd 21 przy próbie uruchomienia wybranego systemu z pomocą gruba oznacza, że wybrany dysk nie istnieje. W systemie są przynajmniej dwa dyski i został wybrany niewłaściwy.
Można temu spróbować zaradzić np. tak?lJak pokaże się ekran startowy gruba naciskamy raz klawisz Esc i następnie klawisz c. Pojawi się na ekranie coś podobnego jak poniżej:
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub>
l
lWpisujemy teraz:
find /boot/grub/stage1
i naciskamy Enter. Uzyskamy coś zbliżonego do:
grub> find /boot/grub/stage1 (hd0,0) (hd0,9)
grub>
l
lMusimy teraz wybrać partycję root, na której znajduje się Linux, którego chcemy uruchomić. W moim przypadku:
root (hd0,9)
i naciskamy Enter. Uzyskując:
grub> root (hd0,9) Filesystem type is reiserfs, partition type 0x83
grub>
l
lSzukamy teraz dostępnego do uruchomienia jądra wpisując:
kernel /boot
i naciskamy raz klawisz Tab: grub> kernel /boot/ Possible files are: grub memtest86+.bin vmlinuz-2.6.26-1-686 vmlinuz-2.6.26-2-686 i nitrd.img-2.6.26-2-686.bak System.map-2.6.26-1-686 System.map-2.6.26-2-686 initrd.im g-2.6.26-1-686.bak config-2.6.26-1-686 config-2.6.26-2-686 initrd.img-2.6.26-1-686 i nitrd.img-2.6.26-2-686
grub> kernel /boot/
Szukane jądro to vmlinuz-2.6.26-2-686, korzystając z klawisza Tab wprowadzamy poprawną nazwę jądra:
kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/hda10 ro quiet splash vga=792
lub:
kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda10 ro quiet splash vga=792
Różnica jest taka
sda10
lub
hda10
Wynika to z tego czy system korzysta ze sterownika dysku libata czy IDE. Jak nie wiemy i za pierwszym razem nie zadziała sdax to wykonamy po restarcie próbę z hdx. l
lWybraliśmy jądro:
kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/hda10 ro quiet splash vga=792
naciskając teraz Enterl
lSzukamy teraz initrd pamiętając aby odpowiadało wersji jądra:
initrd /boot/
korzystamy z klawisza Tab. grub> initrd /boot/ Possible files are: grub memtest86+.bin vmlinuz-2.6.26-1-686 vmlinuz-2.6.26-2-686 i nitrd.img-2.6.26-2-686.bak System.map-2.6.26-1-686 System.map-2.6.26-2-686 initrd.im g-2.6.26-1-686.bak config-2.6.26-1-686 config-2.6.26-2-686 initrd.img-2.6.26-1-686 i nitrd.img-2.6.26-2-686
grub> initrd /boot/
l
lPo wybraniu initrd naciskamy Enter.
grub> initrd /boot/initrd.img-2.6.26-2-686 [ Linux-initrd@0x1f8be000, 0x72d081bytes ]
grub>
l
lWpisujemy na koniec:
boot
i naciskamy Enter. System uruchamia się jeśli nie pomyliliśmy się. Jeżeli tak to szukamy błędu np. zmieniając sdax na hdax lub odwrotnie.l
ljak system się uruchomi to zmieniamy odpowiednie wpisy w plikach konfiguracyjnych itp.l
ArnVaker - 12-06-2009 14:56
Jak pokarze się ekran startowy gruba naciskamy raz klawisz Esc i następnie klawisz c.
Masz na myśli moment, kiedy ekran startowy gruba zostanie pokarany przez samego siebie? ;-)
Spróbowałbym jeszcze odpalić Windowsa takim wpisem w menu.lst, choć przyznam, że nie wiem jak się to ma do tego kontrolera RAID: title Windows map (hd0) (hd1) map (hd1) (hd0) chainloader (hd0,0)+1
Gelio - 12-06-2009 15:34
Na razie dam wynik tych komend, które podał ArnVaker: Spróbuje jeszcze ten drugi sposób ArnVaker'a. Jak się nie uda, to wtedy pomysł fnmirk.
Pozdrawiam, Gelio
ArnVaker - 12-06-2009 15:42
ÂŻeby spróbować uruchomić w ten sposób Windowsa musisz najpierw zlokalizować plik menu.lst. Pewnie nie wiesz, która to partycja / Debiana?
Według mnie powinna to być właśnie sdb1. Sprawdź, jak w tej chwili wygląda fdisk -l, czyżby się zmienił? Sprawdź jeszcze, czy to nie czasem partycja sdb2: mkdir /mnt/sdb2 mount /dev/sdb2 /mnt/sdb2 cat /mnt/sdb2/boot/grub/menu.lst
Gelio - 12-06-2009 15:46
Wynik fdisk -l: Wynik wpisania tych komend: Pozdrawiam, Gelio
@edit Jeżeli to coś pomoże, to w katalogu /dev mam takie pliki, które zawierają sdb: Dodam, że ciągle działam na System Rescue CD.
ArnVaker - 12-06-2009 15:48
umount /dev/sdb2 mount /dev/sdb2 /mnt/sdb2 cat /mnt/sdb2/boot/grub/menu.lst
I to samo z pierwszą, to musi być któraś z tych partycji...
Gelio - 12-06-2009 15:52
sdb2: sdb1: Niestety ;/ Sprawdzałem w katalogu i w folderze /mnt/sdb1 i /mnt/sdb2 nie ma żadnych plików.
Pozdrawiam, Gelio
ArnVaker - 12-06-2009 15:54
Albo ja mam dzisiaj zły dzień i zapominam o czymś oczywistym albo coś tu nie gra :evil: . Pokaż:
ls -lah /mnt/
Gelio - 12-06-2009 15:56
Wynik ls -lah /mnt/: Pozdrawiam, Gelio
ArnVaker - 12-06-2009 16:09
Spróbuj jeszcze utworzyć jakiś inny punkt montowania niż /mnt/sdb.... Na przykład:
mkdir /media/dysk2 mount /dev/sdb2 /media/dysk2
Puść mu:
e2fsck /dev/sdb1
To samo z sdb2. Coś chyba nie gra w związku z tym kontrolerem RAID, skoro nie może nawet zamontować partycji.
Gelio - 12-06-2009 16:14
Oto, co wyszło: Pozdrawiam, Gelio
ArnVaker - 12-06-2009 16:20
umount: /dev/sdb1: not mounted
mount: /dev/sdb1 already mounted
Te dwa komunikaty się wykluczają, jednak u Ciebie występują jednocześnie. ÂŻeby mieć absolutną pewność: cd / umount -f /dev/sdb1 e2fsck /dev/sdb1
Skłaniam się znowu do przywracania "bootloadera" Visty, bo z tego chyba nic nie będzie...
Gelio - 12-06-2009 16:34
Straciłem połączenie z internetem na komputerze z tym problemem. Wpisałem komendy i: Chyba nie pisałem, że próbowałem wrzucić płytę Visty i włączyć naprawianie. Nic się nie udało. Potem przywróciłem do stanu z przed zainstalowania Debiana. Dalej ten sam błąd.
Pozdrawiam, Gelio
@edit Znalazłem coś takiego. Możesz mi polecić co stąd wypróbować?
ArnVaker - 12-06-2009 16:44
Według mnie fdisk -l dostrzega mniej więcej prawidłowo rozkład partycji z uwzględnieniem macierzy. Nie można się natomiast dostać do partycji Linuksa i nie mam na to żadnego pomysłu.
Chyba nie pisałem, że próbowałem wrzucić płytę Visty i włączyć naprawianie. Nic się nie udało.
Jak to Kaka' napisał, najpierw należy popsuć mbr przez fixmbr z poziomu instalatora Windowsa XP, żeby Vista mogła go naprawić.
Próbowałeś coś osiągnąć według instrukcji fnmirka? Zastanawia mnie to, że grub widzi przy starcie plik menu.lst, inaczej nie wyświetlałby listy systemów.
Gelio - 12-06-2009 16:46
Na razie nie stosowałem się do instrukcji fnmirka, zaraz spróbuje. Jak nie zadziała, to spróbuje wygrzebać XP i nim "popsuć" ten plik. Jeżeli to też nie zadziała, to spróbuje którąś opcję z tych: http://jeziorski.wordpress.com/2007/...-odzyskiwanie/
Pozdrawiam, Gelio
ArnVaker - 12-06-2009 16:49
To polecenie z poziomu konsoli odzyskiwania instalatora Visty powinno pomóc:
bootrec /fixmbr
To chyba odpowiednik samego fixmbr znanego z Windows XP.
Gelio - 12-06-2009 17:04
Dziękuję wszystkim, a szczególnie ArnVaker. Po wpisaniu tej komendy błąd zniknął. Teraz po kilku dniach "ochłonięcia" znowu spróbuje zainstalować Debiana. Tym razem na innym dysku, który już do mnie przez allegro leci. Jak myślisz, zmieści się na 40 GB Debian?
Pozdrawiam, Gelio
ArnVaker - 12-06-2009 17:11
To dobrze, że chociaż Windows nadal się uruchamia. Możesz napisać, jak teraz wygląda sytuacja z poziomu Windowsa? Ile danych przepadło i czy można utworzyć na nowo partycje na tym obszarze, gdzie miał być Debian?
40GB dla Debiana w zupełności wystarczy, ale licz się z tym, że i tak będziesz musiał kombinować z grubem. Kolejny problem to taki, że prawdopodobnie nie będziesz w stanie odczytać danych znajdujących się na macierzy z poziomu Debiana.
Gelio - 12-06-2009 17:19
To dziwne, ale nic nie przepadło. Nic nie straciłem, a dane są na swoich miejscach. Nic nie przybyło, a jak patrzę na rozmiar dysku i na jego zawartość, to miej więcej jest tyle samo. I czy mógłbyś mi wyjaśnić o co chodzi z tą macierzą? Co to jest, do czego służy itp. Co do zakładania nowej partycji: nie wiem jak z poziomu windowsa zrobić partycję. Wiem, jak to zrobić przy instalacji, ale podczas działania nie bardzo. W każdym razie dziękuję wszystkim.
Pozdrawiam, Gelio
ArnVaker - 12-06-2009 17:33
Nic nie straciłem, a dane są na swoich miejscach.
No to rzeczywiście dziwne, czyżby instalator Debiana zainstalował go... nigdzie. Według mnie powinno przepaść przynajmniej około 200GB.
I czy mógłbyś mi wyjaśnić o co chodzi z tą macierzą? Co to jest, do czego służy itp.
W skrócie. W Twoim przypadku jest to RAID 0 składający się z dwóch dysków. Podczas każdej operacji część danych zapisywana jest na pierwszym dysku, a część na drugim. Dzięki temu wzrasta wydajność i każda operacja zapisu/odczytu wykonywana jest szybciej, niż miałoby to miejsce w przypadku jednego dysku lub dwóch podłączonych w tradycyjnych sposób.
Jak widać, Windows radzi sobie bez problemu z kontrolerami zintegrowanymi na płycie głównej. Linux niestety nie i stąd takie problemy. Oczywiście nie byłoby żadnych problemów w przypadku profesjonalnych kontrolerów RAID. Nikt jednak nie kupuje takowych do użytku domowego, ponieważ zwyczajnie są na to za drogie.
Katiusha - 12-06-2009 18:41
A nie jest to RAID 1? Skoro nic nie znikneło, to może tak jest, że tam gdzie instalator Debiana nadpisał pliki, Windows potem odtworzył z drugiego dysku i wszystko jest z powrotem na swoim miejscu? Zastrzegam, że to tylko moje "gdybanie" po przeczytaniu tematu. ;-)
Gelio, w Wikipedii jest dosyć dobrze opisane co to RAID i jego odmiany:
http://pl.wikipedia.org/wiki/RAID
ArnVaker - 12-06-2009 18:45
Czyli instalator Visty wykrył jeden dysk o pojemności około 800GB?
Tak, dokładnie tak. Wtedy zrobiłem z tego wolnego miejsca kilka dysków.
Gelio ma dwa dyski po 400GB. Windows widzi obszar około 800GB. Po dodaniu wielkości partycji na podstawie tego posta również wychodzi 800GB. Według mnie jest to RAID 0.
Czemu żadne dane nie zostały utracone? Pewnie nic tam nie było (to koniec dysku), a ten kontroler RAID sczytuje tablicę partycji tylko z pierwszego dysku. To dla odmiany moje gdybanie...
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|