[SOLVED] GRUB – recovery i porządkowanie

Jesteś nowy na forum? Przeczytaj ...

Home Fora Forum wsparcia Oprogramowanie [SOLVED] GRUB – recovery i porządkowanie

Oglądasz 15 posty - 1 do 15 (z 27 ogółem)
  • Autor
    Posty
  • #7557
    Avatar photomajo
    Moderator

    Przy okazji innego problemu, odkryłem, że mój GRUB jest w b. złym stanie i chcę zrobić z nim porządek.

    Przy okazji chcę dodać opcję recovery, co wydaje się dobrze tu opisane, aczkolwiek mam pewną wątpliwość.
    Widzę dwa pliki: starszy: /etc/default/grub i nowszy /etc/default/grub.pacnew
    Pytanie: Czy na pewno należy wyedytować ten starszy plik?

    Jeśli chodzi o GRUB, to mam następujące problemy:
    1. Zapasowy, starszy Manjaro (16.10.3), który kilka miesięcy temu działał poprawnie, obecnie prawie nie działa (nie uruchamia się w trybie graficznym, a uruchomiony w tty pozwala na dalsze uruchomienie tylko niektórych pakietów). Ponieważ nie aktualizowałem tej wersji systemu, zakładam że w systemie nic się nie powinno zmienić, a za problemy odpowiada niewłaściwe wywołanie przez obecny GRUB.
    2. Menu Gruba jest częściowo błędne, gdyż mam zainstalowane kernele 4.14 i 4.9, natomiast GRUB (błędnie) pokazuje mi kernele 4.9 i 4.4. W przypadku startu z kernelem 4.9 staruje dokładnie ten kernel.
    W przypadku startu z Menu GRUBa z kernelem 4.4 jest oczywisty komunikat błędu o braku kernela 4.4 .
    Nie mam w Menu GRUBa opcji startu z najnowszym kernela 4.14 .
    Taki stan utrzymuje się, pomimo, że w międzyczasie wielokrotnie robiłem update-grub (ostatnio wczoraj) lub robił to automatycznie system:

    sudo update-grub 
    Generating grub configuration file ...
    Found background: /usr/share/grub/background.png
    Found linux image: /boot/vmlinuz-4.14-x86_64
    Found initrd image: /boot/intel-ucode.img /boot/initramfs-4.14-x86_64.img
    Found initrd fallback image: /boot/initramfs-4.14-x86_64-fallback.img
    Found linux image: /boot/vmlinuz-4.9-x86_64
    Found initrd image: /boot/intel-ucode.img /boot/initramfs-4.9-x86_64.img
    Found initrd fallback image: /boot/initramfs-4.9-x86_64-fallback.img
    Found Manjaro Linux (16.10.3) on /dev/sda5
    Found unknown Linux distribution on /dev/sda7
    Found memtest86+ image: /boot/memtest86+/memtest.bin
    done

    Chciałbym, o ile można, wykasować wszelkie informacje, które obecny GRUB przechowuje (i na ich podstawie powiela obecne błędy) i zrobić GRUB od zera, zakładając, że dwa powyższe problemy zostaną przy okazji rozwiązane.
    Pytanie: Czy i jak można tego dokonać?

    Manjaro [stable] LTS, Xfce - tego używam

    #7558
    Avatar photoRobert75
    Forumowicz

    No ja robiłem zgodnie z zaleceniami @aquila, czyli edytowałem tylko plik /etc/default/grub, następnie update-grub i wszystko jest OK. Tzn. wpis recovery jest widoczny w GRUB-e.

    Arch Linux Xfce - 64Bit Linux User #621110
    #7559
    pavbaranov
    Forumowicz

    1. GRUB (i nie tylko on) wykorzystuje wyłącznie pliki sterujące (czyt. bez żadnego rozszerzenia; pacnew oznacza wyłącznie, że jakaś wersja GRUB dostarczyła swoją nową wersję tego pliku – należy porównać i podjąć stosowną decyzję o albo skasowaniu takiego pliku, albo połączeniu, albo podmianie z dotychczasowym; więcej masz w wiki Archa, bo niby gdzie :)).

    2. GRUB w systemie ma być jeden.

    3. Przeinstaluj go, utwórz nowy wg wiki z Archa (czyli na piechotę) i powinno być ok.

    4. Pozycji recovery nawet nie musisz mieć, bowiem na to samo wyjdzie wystartowanie systemu z dodanym którymś z poleceń wymienionych w wiki Archa (od „Alternatively, append…”). Inna sprawa, że przy błędzie opisanym w Twoim innym poście ani recovery, ani to nie pomogłoby.

    #7562
    Avatar photoazja
    Moderator

    … pacnew, pacsave, pacorig:
    https://wiki.manjaro.org/index.php?title=Pacnew_and_Pacsave_Files

    Nie zadawaj pytania, jeżeli nie jesteś gotów usłyszeć odpowiedzi

    #7563
    Avatar photomajo
    Moderator

    Dzięki za linki. Poczytałem i wiem więcej, jednak zastanawiam się dlaczego plik grub.pacnew jest o 50 dni nowszy i ciągle dostępny w tym katalogu, a pacman go nie skasował, gdy już nie był potrzebny?
    I dlaczego, skoro jest to nowa wersja, jej kilka zmian w porównaniu do pliki grub nie zostało dodanych do pliku grub?
    Może istnienie obu tych plików jest przyczyną moich problemów z GRUB?

    Różnice między tym plikami pokazałem tu
    Różnice to:
    – cudzysłowy (jest ich więcej w pliku grub)
    – w linii 4: UUID mojej partycji SWAP (w pliku grub)
    – w linii 41,42 w pliku grub dodane słowo kluczowe export

    Reasumując, skłaniam się do skasowania pliku grub.pacnew. Co o tym sądzicie?

    Manjaro [stable] LTS, Xfce - tego używam

    #7566
    Avatar photoazja
    Moderator

    .pacnew, to template, wzorzec. W link’u, który Ci podałem, jest wyjaśniona procedura, jaką pacman przeprowadza, porównując pliki w systemie, z tymi dostarczonymi przez aktualizowane pakiety. Jeżeli uzna, że jest jakiś nowy/zmodyfikowany plik konfiguracyjny, to zapisuje go jako .pacnew (w ogromnym uproszczeniu, szczegóły w wiki). Ty otrzymujesz informację, że taki plik pojawił się i podejmujesz decyzję:
    – mam, to w d…, nic nie robię;
    – sprawdzam, ale nie widzę różnic;
    – sprawdzam, widzę różnice, ale nic nie robię;
    – sprawdzam, widzę różnice i implementuję je do aktualnego pliku konfiguracyjnego w systemie;
    … sam plik .pacnew możesz zostawić (nie bierze udziału w grze), albo usunąć – w zależności od przyjętego systemu. Ja zostawiam, bo mam pod ręką referencyjny plik z konfiguracją, do którego mogę zajrzeć w dowolnym momencie.

    Nie zadawaj pytania, jeżeli nie jesteś gotów usłyszeć odpowiedzi

    #7567
    Avatar photomajo
    Moderator

    OK.
    Usunąłem grub.pacnew,
    dodałem GRUB_DISABLE_RECOVERY="false" (u mnie w cudzysłowach),
    przeładowałem gruba:

    sudo update-grub 
    Generating grub configuration file ...
    Found background: /usr/share/grub/background.png
    Found linux image: /boot/vmlinuz-4.14-x86_64
    Found initrd image: /boot/intel-ucode.img /boot/initramfs-4.14-x86_64.img
    Found initrd fallback image: /boot/initramfs-4.14-x86_64-fallback.img
    Found linux image: /boot/vmlinuz-4.9-x86_64
    Found initrd image: /boot/intel-ucode.img /boot/initramfs-4.9-x86_64.img
    Found initrd fallback image: /boot/initramfs-4.9-x86_64-fallback.img
    Found Manjaro Linux (16.10.3) on /dev/sda5
    Found unknown Linux distribution on /dev/sda7
    Found memtest86+ image: /boot/memtest86+/memtest.bin
    done

    Jak widać, powinienem mieć kernel 4.14 i 4.9 .

    Jednak po restarcie w GRUBie nie pojawił mi się żaden dodatkowy wpis związany z „Recovery”, natomiast GRUB ciągle wygląda tak, jak wcześniej, bez kernela 4.14 i z fałszywymi wpisami do kernela 4.4.88, którego nie mam.

    Przyglądnąłem się opisowi instalacji GRUBa w wiki Archa i nie widzę tu klarownej i jednoznacznej instrukcji. Widzę duże ryzyko popełnienia błędu.

    Manjaro [stable] LTS, Xfce - tego używam

    #7568
    Avatar photoRobert75
    Forumowicz

    Wpis recovery znajduje się w advanced options.

    Arch Linux Xfce - 64Bit Linux User #621110
    #7569
    Avatar photomajo
    Moderator

    Eureka – chyba znalazłem źródło problemu :)

    Zobaczyłem że GRUB widziany przez grub-customizer wygląda, tak jak powinien ( https://i.imgur.com/heuINSo.jpg ) i jak sprawdziłem na szybko, odpowiada wpisom z /boot/grub/grub.cfg

    Wtedy skojarzyłem, że GRUB, który teraz widzę, to chyba jest wersja GRUBa, którą kiedyś pomyłkowo uruchomiłem na innej partycji z roboczą wersją Manjaro 16.10 ( na sda5), a potem przełączałem GRUBa na aktualną instalację Manjaro (na sda2).

    Podejrzewam, że jakimś cudem(?) aktywował mi się w międzyczasie stary GRUB na sda5.

    W takim razie biorę się za ponowne przełączenie aktywnego GRUBa na sda2.

    cdn.

    Manjaro [stable] LTS, Xfce - tego używam

    #7570
    Avatar photoazja
    Moderator

    … bootloader – jak matka, czy władca pierścieni – powinien być jeden. Inaczej robi się zamieszanie na podwórku. No, chyba, że instalacja nie jest produkcyjna, tylko experimentalna.

    Nie zadawaj pytania, jeżeli nie jesteś gotów usłyszeć odpowiedzi

    #7571
    Avatar photomajo
    Moderator

    Masz zupełną rację @azja i usunę GRUBa z partycji sda5 jak tylko uda mi się aktywować ten właściwy na sda2, a z tym jest ciągle problem.
    Poprawnie wykonałem przywrócenie GRUBa z sda2, łącznie z poprawkami, które musiałem dokonać, gdyż po drodze pojawił się błąd „EFI variables are not supported on this system.”
    Finalnie cała procedura przywracania GRUBa została powtórzona bez żadnych komunikatów o błędach, jednak po restarcie ciągle widzę ten sam błędny wygląd GRUBa (który najprawdopodobniej pochodzi z sda5).
    Co mogę dalej?

    Manjaro [stable] LTS, Xfce - tego używam

    #7572
    pavbaranov
    Forumowicz

    Oł maj god :)
    1. Skoro masz dwa GRUBe, to musisz wpierw ustalić z którego system jest bootowany. Ten drugi w dowolny sposób możesz edytować, a i tak to nic nie da. Jak wspomnialiśmy – nie kombinuj: GRUB ma być jeden. Nie istnieje żaden „zapasowy”, przedpasowy, ani żaden inny. Jest zawsze jeden.
    2. Pliki typu *.pacnew są wprowadzane do systemu wraz z nowymi wersjami danego programu, gdy tego potrzebują. W normalnie używanej wersji instalacji (pacman) dostajesz o tym informację. Jak jest w różnych GUI – nie mam pomięcia i nie będę się nad tym zastanawiać. Plik taki niesie ze sobą informacje, które np. mogą się różnić składnią od poprzedniego. Po otrzymaniu informacji o zainstalowaniu takiego pliku w systemie zawsze należy się nad nim pochylić, albowiem w skrajnym przypadku system po prostu nie wstanie po reboocie. Dlaczego jest na zawsze? No właśnie po to, by z niego móc skorzystać i to nawet wówczas, gdy system nie wstanie. Innymi słowy: nie zastanawiać się (np. dlaczego pacman go nie kasuje), gdy to zastanawianie się do niczego nie prowadzi.
    3. W Twoim przypadku – zrób porządek z systemem, bo masz w nim misz-masz. Zdecyduj się na jednego GRUBego, drugiego wykasuj, zdecyduj gdzie chcesz go mieć, przeinstaluj pliki konfigurujące i będzie dobrze.

    #7573
    Avatar photomajo
    Moderator

    (bedzie bez ogonkow -sorry)

    Troche sie skomplikowalo..
    Probowalem ustalic, z ktorego GRUBa system jest bootowany.
    Poniewaz wczesniej ponizsza komenda dawala inne rezultaty niz na stronie Efibootmgr od Gentoo, tj. bylo tak:

    efibootmgr -v
    BootCurrent: 000F
    Timeout: 0 seconds
    No BootOrder is set; firmware will attempt recovery

    jako root wykonalem sugerowane komendy:
    mount | grep efivars
    mount -o remount,rw -t efivarfs efivarfs /sys/firmware/efi/efivars

    I dodalem na bazie wzoru Z Gentoo, jak sadzilem, poprawny wpis:
    efibootmgr -c -d /dev/sda -p 1 -L "Manjaro" -l /boot/SCIEZKA_DO_LIKU_W_MANJARO.efi

    Po tym wpisie komenda efibootmgr -v pokazywala wynik podobny do tego z Gentoo, wiec wydawalo sie, ze jest OK, jednak po restarcie jest error: https://imgur.com/a/QWS0YZG

    I dopiero teraz kompletnie nie wiem, co robic???

    Manjaro [stable] LTS, Xfce - tego używam

    #7574
    pavbaranov
    Forumowicz

    chroot – odinstaluj GRUBe do spodu (oba!), zainstaluj ponownie, skonfiguruj, umieść rozruchowy tam gdzie chesz – ma działać! Łaski nie robi. Polecam – mimo wszystko – wiki GRUBego na Archu.

    #7575
    Avatar photomajo
    Moderator

    chroot – odinstaluj GRUBe do spodu

    Czy dobrze rozumiem, ze masz na mysli komende: sudo pacman -Rns grub ?
    I czy po ponownej instlacji GRUBa na sda2, powinno sie pojawic normalne okno Menu GRUBa (a nie ten error https://imgur.com/a/QWS0YZG ) ?

    Manjaro [stable] LTS, Xfce - tego używam

Oglądasz 15 posty - 1 do 15 (z 27 ogółem)
  • Musisz być zalogowany aby odpowiedzieć w tym wątku.