Jak uruchamiasz update-grub?

25

Wszedłem na Live CD i aktywowałem Terminal. Następnie wpisałem, gksu nautilusaby uzyskać tymczasowy dostęp do mojego katalogu głównego. Po otwarciu okna Menedżera kliknąłem System plików i przeszedłem do /etc/default/grubkatalogu. Następnie dwukrotnie kliknąłem plik Grub, aby wprowadzić zmiany w TIMEOUTi TIMEOUT_QUIET.

Zapisałem plik po dokonaniu zmian. Potem wróciłem do trybu terminala i napisałem:

gksu update-grub

Otrzymałem komunikat o błędzie:

Nie możesz znaleźć urządzenia dla / (czy / dev jest zamontowane?)

Nie jestem pewien, co robić w tym momencie. Jak mogę uruchomić, update-grubaby zaktualizować zmiany? Z góry dziękuje za twoją pomoc. Prosimy o bardzo szczegółowe i konkretne odpowiedzi, ponieważ jestem zupełnie nowy w tym środowisku.

newbietoubu
źródło

Odpowiedzi:

24

Faza 1 - Uwaga: nie używaj Live CD.

  • W swoim Ubuntu otwórz terminal (naciśnij jednocześnie Ctrl+ Alt+ T)
  • Typ gedit admin:///etc/default/grub
    Uruchomi to edytor tekstu gedit , jeśli używasz innego, po prostu wpisz jego nazwę zamiast gedit.
  • Wprowadź zmiany, które chcesz wprowadzić, i zapisz je.
  • Zamknij gedit.
    Twój terminal powinien być nadal otwarty.
  • W typie terminala sudo update-grubpoczekaj na zakończenie aktualizacji.
  • Zrestartuj swój komputer.

Faza 2 - Po zalogowaniu się do systemu

  • Otwórz terminal ponownie ( Ctrl+ Alt+ T).
  • Wpisz terminal gksu gedit /etc/default/grub
  • Aby zobaczyć menu grub podczas uruchamiania,
    skomentuj lub usuń następujący wiersz:GRUB_HIDDEN_TIMEOUT=0
    • Aby dodać komentarz, dodaj #na początku tego wiersza, wynik będzie#GRUB_HIDDEN_TIMEOUT=0
  • Zapisz plik.
  • Znów w biegu terminalu sudo update-grub.

Jeśli widzisz menu GRUB podczas rozruchu, jedyną rzeczą, którą chcesz, należy cofnąć wcześniejsze zmiany w pliku.

jeroen
źródło
Dzięki za twoją odpowiedź. Pierwotny problem, który próbuję rozwiązać, polega na tym, że nie mogę otworzyć menu grub. Pomyślałem więc, że muszę użyć Live CD, aby uzyskać dostęp do pliku konfiguracyjnego grub i wprowadzić zmiany. Przeczytałem, że jeśli zmienię TIMEOUT na 10 i TIMEOUT_QUIT na true, będę mógł uzyskać dostęp do menu Grub. Kiedy uruchamiam system, przytrzymuję klawisz Shift. Widzę wyskakujące słowa GRUB MENU tylko na ułamek sekundy. Więc nie mogąc korzystać z Live CD, aby uzyskać dostęp do Terminalu, nie wiem, jak zmodyfikować plik konfiguracyjny GRUB. Wszelkie sugestie, jak to osiągnąć?
newbietoubu
Myślę, że jeroen bezpośrednio odpowiedział na to pytanie. Być może próbujesz zmodyfikować menu grub podczas pracy z grub?
pfeiffep 14.04.13
2
Zobacz moją ulepszoną odpowiedź.
jeroen
6

Otrzymujesz ten komunikat, ponieważ Live CD nie montuje systemu plików z możliwością zapisu. Jest przeznaczony wyłącznie do wypróbowania Ubuntu lub do ratowania uszkodzonego systemu. Wykonywanie sudo update-grubtylko działa na zainstalowanej wersji Ubuntu, w której masz dostęp do zapisu do podstawowych plików GRUB (i na Live CD, nie masz).

Aaron
źródło
4
Dobra informacja, ale OP chciałby również wiedzieć, w jaki sposób może wprowadzić zmiany, które chce, /etc/default/gruba potem update-grub.
chaskes
2

Możesz zrobić aktualizację-grub z płyty CD na żywo na zainstalowanym Ubuntu Distro (chociaż zakładam, że działa to z dowolną dystrybucją linuksową [opartą na Debianie]. Jest „wymagana” (mogą być inne metody, ale znając tę, nie wiem nie przejmuj się nimi w ogóle), jeśli sklonujesz dysk i już zainstalowałeś nowy na komputerze. Wspominam tutaj o klonowaniu, ponieważ w pewnym sensie krok aktualizacji-gruba jest jego podzbiorem, a podejścia mają to samo podczas sesji na żywo. Ta metoda została odkryta również podczas wyszukiwania w kontekście klonowania. Możesz zabrać z niej to, czego potrzebujesz, jeśli nie klonujesz, a Twój proces zostanie uproszczony.

Powinienem to tutaj zakwalifikować; ważne dla klonowania, a nie ważne tylko dla wykonania aktualizacji-grub: Zrobiłem to tylko na systemach BIOS. Nie próbowałem tego w systemie UEFI. System UEFI wymaga partycji FAT do załadowania systemu rozruchowego i nie przetestowałem, czy ta partycja powinna nadejść podczas jazdy podczas klonowania. Oczekuję, że wpłynie to na wymagany montaż [bind-], który syntetyzuje natywne środowisko grub podczas sesji na żywo ...

Jest to szczegółowo opisane na tej stronie: http://frugaltech.happystoic.com/ssdlinux . Używałem tej metody wiele razy i za jej pomocą możesz wymieniać dyski twarde wokół ad-infinitum. Wymiana fizycznych dysków twardych staje się w ten sposób tak trywialna, że ​​kuszące jest uczynienie z tego własnego hobby i / lub próba naprawienia pomieszanych komputerów innych ludzi.

Poniższe informacje mogą być przydatną parafrazą tego, co tam znajdziesz:

  1. Ctrl+ Alt+ Tdla terminala Bash i wprowadź powłokę superużytkownika ( sudo -s) podczas sesji na żywo.

  2. zamontuj pełną partycję dysku (która jest [lub stanie się] twoim stałym katalogiem głównym systemu plików Linux).

    2a. Jeśli pełna instalacja już istnieje na dysku twardym, przejdź do (2). JEŚLI KLONUJESZ: [w oparciu o założenie, że nie przeprowadzasz nowej instalacji, ponieważ w tym przypadku jest to całkowicie automatyczne] jeśli Twoja pełna instalacja jeszcze nie istnieje na tej partycji, teraz jest czas, aby po prostu

    rsync -a /existing/linux/filesystem/live-mount-point/ /new/linux/filesystem/live-mount-point/ 
    

    [te punkty montowania dotyczą wyłącznie środowiska sesji na żywo - w Ubuntu mają one na ogół postać „/ media / ubuntu / ???”] na nowym dysku [partycji].

    2b. Pełne instalacje innych systemów operacyjnych można tutaj obsługiwać w ten sam sposób. Zasadniczo korzystałem z zasobów opartych na systemie Windows, aby z wyprzedzeniem kopiować partycje systemu Windows na nowe dyski, ale użyłem także rsync i działało to w systemie Windows XP (zakładając, że masz obsługę poprawnego formatu partycji, takiego jak NTFS; myślę, że media sesji na żywo zazwyczaj zawierają alternatywną obsługę formatu). Uważaj tylko na pisownię i użyj końcowego /w katalogu źródłowym, jeśli w pełni nazywasz cel.

  3. bind-zamontować żyć /dev, /proci /syskatalogi do odpowiednich katalogów na [zamontowany] stała przegroda pełna instalacja szukasz do użytku. Skrypt opisany w powyższym linku wykonuje to bardzo elegancko za pomocą instrukcji „za”. Ponadto dany skrypt nie musi być wykonywany jako skrypt jako taki. Można go wprowadzić z wiersza poleceń bash, linia po linii.

  4. chrootdo stałej pełnej partycji instalacyjnej. Po wykonaniu czynności (3) i (4) system „wirtualnie rezyduje” w „końcowym systemie plików”, a GRUB będzie działał jednorodnie. Bez tych kroków grub zakłada, że ​​twój system jest po prostu sesją na żywo i nie wiem dokładnie, co robi w takim przypadku, ale wystarczająco nie jest to pożądany wynik, o którym wspomniano powyżej w tym wątku.

  5. uruchom grub-install na /dev/sdX(dysku, a nie punkcie instalacji), który odpowiada stałej instalacji (lub cokolwiek, na którym dysk będzie obsługiwał GRUB, jeśli system z wieloma dyskami [, z wieloma rozruchami]). Elastyczność tutaj może zależeć od twojego rocznika i systemu BIOS. O ile wiem, uruchomienie „grub-install” nie robi nic szkodliwego, jeśli nie jest to konieczne, więc zawsze robię to, jeśli używam tej metody sesji na żywo.

  6. uruchom update-grub i będzie działał tak, jakby działający system był zagnieżdżony w przyszłej trwałej partycji, wykrywając wszystkie jądra i bootowalne systemy operacyjne, które możesz mieć.

  7. Jeśli nie zmieniłeś fizycznie dysków twardych, przejdź do (5). W przeciwnym razie edytuj lub zweryfikuj /new/linux/filesystem/live-mount-point/etc/fstabplik, aby zapewnić prawidłową strukturę systemu plików dla [nowego] środowiska. Jeśli jesteś na tym poziomie, z pewnością wiesz już o używaniu blkid do zbierania UUID dla fstab.

    IMHO: zawsze powinieneś używać UUID w fstab (nie w formie „dev / sdXY”), ponieważ we własnym zakresie jest odporny na rekonfigurację fizycznego dysku twardego, inny niż stopień, w jakim wymaga to dosłownych aktualizacji wartości UUID (np. w pewnym momencie w przyszłości instalujesz dodatkowy dysk twardy dla katalogu / home itp.). Jest to po prostu najbardziej podstawowe, niezawodne i niezmienne podejście.

  8. wyjdź z chroot, wyjdź z supershell, wyjdź z bash, zamknij i uruchom system bez mediów na żywo. Powinieneś być teraz tam, gdzie chciałeś.

    Co ważne: Argumenty mount i chrootkatalogi (ogólnie MOUNT POINTS, takie jak /mnt/??lub /media/??) odpowiadają sesji na żywo. W większości, jeśli nie we wszystkich przypadkach, pełna instalacja znajduje się na własnej partycji, więc terminy „katalog” i „punkt instalacji” są tutaj w zasadzie synonimami. Argumentem dla grub-install jest NAPĘD FIZYCZNY (ogólnie /dev/sdX, gdzie „X” jest literą odpowiadającą napędowi w twoim systemie, sda, sdb itp. I nie powinno zależeć od sesji).

Powinieneś już skończyć. Jednocześnie sklonowałem system Windows (XP i 7) w różnych kombinacjach wraz z Ubuntu i Puppy przy użyciu tej metody i nie zawiodło mnie to. Myślę, że możesz użyć żywego nośnika o innej dystrybucji (użyłem tylko różnych smaków Ubuntu i Mint do tego celu), o ile zapewniają one wersję GRUBa, której zamierzasz używać. Korzystając z tej funkcji, możesz przenosić partycje, wymieniać dyski, łączyć inne instalacje systemu operacyjnego i klonować do lub z dysku SSD. Mogę jednak z nim porozmawiać tylko na tej samej maszynie. Zakładam, że sterowniki, które mogły być wymagane na innym komputerze, mogły zostać pominięte podczas poprzedniej pełnej instalacji. Moja ogólna zasada polega na tym, że przełączanie dysków w komputerze wymaga tej metody, ale przełączanie komputerów za pomocą dysku wymaga pełnej [ponownej] instalacji.

Być może ktoś może to obalić…?

Jonathan Whittum
źródło
1
Witamy w Ask Ubuntu! :-) Doskonała pierwsza odpowiedź! +1
Fabby