Drukuj
Nadrzędna kategoria: Ubuntu
Kategoria: Gotowe rozwiązania
Odsłony: 20461
Gwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywna
 
Jako, że GRUB2 to jeszcze eksperyment i często działa jak chce, wrócę jeszcze do starego dobrego GRUBa. W tym artykule napiszę jak odzyskać GRUBa po instalacji np. Windows'a, który usuwa go z Master Boot Record.
Najlepiej zacząć od uruchomienia Linuksa z płyty bądź pendrive'a. Teraz musimy zamontować partycję z Linuksem na dysku twardym. Jeśli uruchomiliśmy np. Ubuntu z płyty, zamontowanie partycji z głównym systemem plików Linuksa to żaden problem. Po prostu wybieramy Miejsca i któryś z dostępnych dysków, na którym znajduje się Linux. Możemy go rozpoznać po właściwej wielkości (skoro sami zainstalowaliśmy system to wiemy, ile daliśmy miejsca na tą partycję). Powinna nam się pojawić ikonka na pulpicie. Możemy przejrzeć jej zawartość wchodząc również przez katalog /media/xxxx/. Za xxxx wstawiamy katalog (punkt montowania) tej partycji. Zazwyczaj to jest nazwa partycji, numer identyfikacyjny lub po prostu tekst disk.
Jeśli nie mamy środowiska graficznego oczywiście możemy to zrobić z konsoli. Tworzymy katalog, który posłuży nam za punkt montowania partycji z głównym systemem plików.
mkdir disk
Jeśli jesteśmy zalogowani jako zwykły użytkownik Linuksa live, a nie jako root to musimy dać sudo przed tą komendą. Teraz musimy zamontować ten system plików. Dajemy:
mount -t <system_plików> /dev/<plik_urządzenia> /media/<punkt_montowania>
W miejsce:
Przykładowe polecenie montowania:
mount -t ext4 /dev/sda1 /media/disk
Jeśli wszystko się udało dla sprawdzenia czy podłączyliśmy dobrą partycję wylistujmy katalog punktu montowania. Jeśli pojawią się standardowe katalogi systemu Linuksa, to jest ok. Teraz przechodzimy do konsoli GRUBa poleceniem grub.
Najpierw dajemy polecenie znalezienia pliku stage1 znajdującego się w katalogu /boot/grub/.
find /boot/grub/stage1
Oczywiście tą komendę wydajemy w konsoli GRUBa. Powinniśmy otrzymać odpowiedź w postaci hd(x,y), gdzie x to numer dysku (0 jako pierwszy, 1 jako drugi, itd), a y to numer partycji na której jest plik /boot/grub/stage1. Na przykład: powyższe polecenie zwróciło nam wartość hd(0,0). To znaczy, że plik stage1 znajduje się na dysku pierwszym i pierwszej partycji.
Teraz trzeba wskazać tą partycję. Wydajemy polecenie:
root hd(x,y)
Oczywiście za x i y wstawiamy to co zwróciło nam wcześniej polecenie find. Tym razem nie dostaniemy od programu żadnej odpowiedzi, chyba że wystąpi jakiś błąd.
Na różnych stronach piszą, że następnym poleceniem instaluje się GRUBa w MBR. Ale to nie prawda. Samym poleceniem setup nic nie zdziałamy, GRUB nie pojawi się po rebutowaniu. Polecenie setup jak na ekranie monitorów zobaczycie sprawdzi czy istnieją na wybranej przez nas partycji pliki GRUB i ustawi konfigurację. Wydajemy polecenie:
setup (hdx)
Za x podajemy to co wcześniej (już bez parametru wskazywania partycji, tylko który dysk). Po tym poleceniu program sprawdzi czy istnieją pliki GRUBa i skonfiguruje je na nowo. Teraz możemy wyjść z programu poleceniem quit.
Następnym poleceniem zainstalujemy GRUBa w MBR. Teraz już w bash'u dajemy:
sudo grub-install --root-directory=/media/<punkt_montowania> hdx
Za punkt_montowania podajemy katalog w którym zamontowaliśmy główny system plików na dysku twardym. Za x podajemy to co podawaliśmy w konsoli GRUBa (czyli nr dysku). Teraz powinniśmy mieć już GRUBa na dysku.

Nowy GRUB2 jest jeszcze w fazie beta. 9.10 jako najgorsze Ubuntu zasłużyło sobie tym, że właśnie ma sporo wersji beta oprogramowania w sobie. Zaletą nowego GRUBa jest to, że nie trzeba go od nowa konfigurować gdy instalujemy nowego kernela, ponieważ ustawienia znajdują się w oddzielnym pliku, w /etc/defaults/grub. Po każdej zmianie w tym pliku trzeba dać polecenie update-grub, które odczyta te ustawienia i wygeneruje nowy plik grub.cfg który jest odpowiednikiem menu.lst z GRUB1. Ale na tym plusy się kończą (przynajmniej ja nie zauważyłem innych). Został również wprowadzony parametr recordfail który przetrzymywany jest w pliku /boot/grub/grubenv. Jeśli jest ustawiony na 1 niezależnie od konfiguracji i aktualizowania zawsze będzie wyłączał odliczanie w GRUBie do uruchomienia domyślnego systemu. Można go ręcznie ustawić na zero, ale po ponownym uruchomieniu systemu wraca powrotem do 1, przez co wyłącza odliczanie. Czasem zdarzyć się może, że nie da rady ukryć menu. Raz walczyłem z GRUBem 2 z dokumentacją w jednym ręku, a z klawiaturą w drugiej ręce. Chciałem ustawić 3 sekundy odliczania i ukryte menu. Miało się pojawiać po naciśnięciu klawisza shift, w trakcie odliczania lub ładowania GRUBa 2. Nie zależnie co ustawiałem w pliku /etc/defaults/grub i tak nie miało to żadnego znaczenia. Odliczanie było, ale menu cały czas się pojawiało. Koniec końców wywaliłem "dwójkę" i zainstalowałem starego, dobrego GRUBa. A byłem pełen dobrych chęci aby przejść na drugą wersję. W końcu gdzieś na ubuntuforums.org przeczytałem, że jest jeszcze wersja beta i nie wszystko może działać. Dzięki temu utwierdziłem się w przekonaniu, że jeśli ma się specjalne wymagania od GRUBa, lepiej zainstalować starszą wersję. Jeśli chcemy używać go tylko do prostego ładowania systemu, nie zależy nam na czasie odliczania i innych funkcjach, możemy zostać przy "dwójce".
Spodobało Ci się? Udostępnij, przypnij, podziel się z innymi:

Simple Disqus Comments