GRUB error 21 po instalacji Debiana

Ogólne pytania dotyczące systemu
Gelio
Posty: 17
Rejestracja: 11 czerwca 2009, 21:56
Lokalizacja: Lublin

Post autor: Gelio »

Jaki RAID0? Które zdjęcie albo tekst? Nie jestem jakoś bardzo obeznany w Linuksie, sprzęcie itp. Dopiero zaczynam.

Pozdrawiam,
Gelio
sigo
Junior Member
Posty: 501
Rejestracja: 21 marca 2009, 19:12

Post autor: sigo »

Gelio pisze:Mam 2 dyski RAID
ArnVaker

Post autor: ArnVaker »

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
Posty: 17
Rejestracja: 11 czerwca 2009, 21:56
Lokalizacja: Lublin

Post autor: Gelio »

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

Post autor: ArnVaker »

Mógłbyś jeszcze powiedzieć jak przywrócić bootloader visty?
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ł.
Gelio pisze: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
Posty: 17
Rejestracja: 11 czerwca 2009, 21:56
Lokalizacja: Lublin

Post autor: Gelio »

ArnVaker pisze: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

Edycja:
Znalazłem tutaj, żeby wpisać takie komendy:

Kod: Zaznacz cały

# 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.

Edycja:2
No dobrze. Tak było napisane w temacie przywracanie programu rozruchowego Windowsa Visty. Teraz spróbuję naprawić to z pomocą płyty instalacyjnej Windowsa Visty. Tam chyba jest opcja ,,Napraw System''.
ArnVaker

Post autor: ArnVaker »

Ale Ty przecież chciałeś przywrócić program rozruchowy Windowsa Visty. Te kroki prowadzą do przywrócenia gruba, którego już masz...

Jak już uruchomiłeś livecd, to zrób jeszcze tak:

Kod: Zaznacz cały

mkdir /mnt/sdb1
mount /dev/sdb1 /mnt/sdb1
cat /mnt/sdb1/boot/grub/menu.lst
Wrzuć wynik tego ostatniego.
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

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?
  1. Jak pokaże się ekran startowy gruba naciskamy raz klawisz Esc i następnie klawisz c.
    Pojawi się na ekranie coś podobnego jak poniżej:

    Kod: Zaznacz cały

    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>
  2. Wpisujemy teraz:

    Kod: Zaznacz cały

    find /boot/grub/stage1
    i naciskamy Enter.
    Uzyskamy coś zbliżonego do:

    Kod: Zaznacz cały

    grub> find /boot/grub/stage1
      (hd0,0)
      (hd0,9)
    
    grub>
  3. Musimy teraz wybrać partycję root, na której znajduje się Linux, którego chcemy uruchomić. W moim przypadku:

    Kod: Zaznacz cały

    root (hd0,9)
    i naciskamy Enter. Uzyskując:

    Kod: Zaznacz cały

    grub> root (hd0,9)
      Filesystem type is reiserfs, partition type 0x83
    
    grub>
  4. Szukamy teraz dostępnego do uruchomienia jądra wpisując:

    Kod: Zaznacz cały

    kernel /boot
    i naciskamy raz klawisz Tab:

    Kod: Zaznacz cały

    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:

    Kod: Zaznacz cały

     kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/hda10 ro quiet splash vga=792
    lub:

    Kod: Zaznacz cały

     kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda10 ro quiet splash vga=792
    Różnica jest taka

    Kod: Zaznacz cały

    sda10
    lub

    Kod: Zaznacz cały

    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.
  5. Wybraliśmy jądro:

    Kod: Zaznacz cały

     kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/hda10 ro quiet splash vga=792
    naciskając teraz Enter
  6. Szukamy teraz initrd pamiętając aby odpowiadało wersji jądra:

    Kod: Zaznacz cały

    initrd
    /boot/
    korzystamy z klawisza Tab.

    Kod: Zaznacz cały

    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/
  7. Po wybraniu initrd naciskamy Enter.

    Kod: Zaznacz cały

    grub> initrd /boot/initrd.img-2.6.26-2-686
    [ Linux-initrd@0x1f8be000, 0x72d081bytes ]
    
    grub>
  8. Wpisujemy na koniec:

    Kod: Zaznacz cały

    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.
  9. jak system się uruchomi to zmieniamy odpowiednie wpisy w plikach konfiguracyjnych itp.
ArnVaker

Post autor: ArnVaker »

Spróbowałbym jeszcze uruchomić Windowsa takim wpisem w menu.lst, choć przyznam, że nie wiem jak się to ma do tego kontrolera RAID:

Kod: Zaznacz cały

title Windows
  map (hd0) (hd1)
  map (hd1) (hd0)
  chainloader (hd0,0)+1
Gelio
Posty: 17
Rejestracja: 11 czerwca 2009, 21:56
Lokalizacja: Lublin

Post autor: Gelio »

Na razie dam wynik tych komend, które podał ArnVaker:
root@sysresccd /root % mkdir /mnt/sdb1
root@sysresccd /root % mount /dev/sdb1 /mnt/sdb1
mount: /dev/sdb1 already mounted or /mnt/sdb1 busy
root@sysresccd /root % cat /mnt/sdb1/boot/grub/menu.lst
cat: /mnt/sdb1/boot/grub/menu.lst: No such file or directory
Spróbuje jeszcze ten drugi sposób ArnVaker'a. Jak się nie uda, to wtedy pomysł fnmirk.

Pozdrawiam,
Gelio
ODPOWIEDZ