Wie führe ich update-grub aus?

25

Ich ging in die Live-CD und aktivierte Terminal. Dann habe ich getippt gksu nautilus, um temporären Zugriff auf mein Stammverzeichnis zu erhalten. Sobald sich das Manager-Fenster öffnete, klickte ich auf Dateisystem und navigierte zu dem /etc/default/grubVerzeichnis. Ich habe dann doppelt auf die Grub-Datei geklickt, um Änderungen an TIMEOUTund vorzunehmen TIMEOUT_QUIET.

Ich habe die Datei gespeichert, nachdem ich die Änderungen vorgenommen habe. Dann kehrte ich in den Terminalmodus zurück und tippte:

gksu update-grub

Die Fehlermeldung, die ich bekam, war:

Kann kein Gerät für / finden (ist / dev gemountet?)

Ich bin mir nicht sicher, was ich zu diesem Zeitpunkt tun soll. Wie kann ich update-grubdie Änderungen aktualisieren? Vielen Dank im Voraus für Ihre Hilfe. Bitte seien Sie sehr detailliert und spezifisch mit Ihrer Antwort, da ich in dieser Umgebung völlig neu bin.

newbietoubu
quelle

Antworten:

24

Phase 1 - Hinweis: Verwenden Sie keine Live-CD.

  • Öffne in deinem Ubuntu ein Terminal (drücke gleichzeitig Ctrl+ Alt+ T)
  • Gibt gedit admin:///etc/default/grub
    Dies wird Text-Editor läuft gedit , wenn Sie ein anderes verwendet nur die Namen es statt geben gedit.
  • Nehmen Sie die gewünschten Änderungen vor und speichern Sie sie.
  • Schließen Sie gedit.
    Ihr Terminal sollte noch geöffnet sein.
  • sudo update-grubWarten Sie im Terminaltyp , bis die Aktualisierung abgeschlossen ist.
  • Starte deinen Computer neu.

Phase 2 - Nachdem Sie sich bei Ihrem System angemeldet haben

  • Öffnen Sie erneut ein Terminal ( Ctrl+ Alt+ T).
  • Geben Sie das Terminal ein gksu gedit /etc/default/grub
  • Um das Grub-Menü beim Booten anzuzeigen,
    kommentieren oder entfernen Sie die folgende Zeile:GRUB_HIDDEN_TIMEOUT=0
    • Um zu kommentieren, fügen Sie #am Anfang dieser Zeile das Ergebnis ein#GRUB_HIDDEN_TIMEOUT=0
  • Speicher die Datei.
  • Wieder im Terminal laufen sudo update-grub.

Wenn Sie nur das Grub-Menü beim Booten sehen möchten, sollten Sie frühere Änderungen an der Datei rückgängig machen.

jeroen
quelle
Vielen Dank für Ihre Antwort. Das ursprüngliche Problem, das ich zu lösen versuche, ist, dass ich das Grub-Menü nicht öffnen kann. Also dachte ich, ich müsste die Live-CD verwenden, um auf die Grub-Konfigurationsdatei zuzugreifen und meine Änderungen vorzunehmen. Ich habe gelesen, dass ich, wenn ich TIMEOUT auf 10 und TIMEOUT_QUIT auf true ändere, auf das Grub-Menü zugreifen kann. Wenn ich das System starte, halte ich die Umschalttaste gedrückt. Ich sehe die Wörter GRUB MENU nur für den Bruchteil einer Sekunde auftauchen. Ohne die Live-CD für den Zugriff auf Terminal zu verwenden, kann ich die GRUB-Konfigurationsdatei nicht ändern. Irgendwelche Vorschläge, wie dies erreicht werden kann?
Newbietoubu
Ich denke, Jeroen hat das direkt beantwortet. Möglicherweise versuchen Sie, das Grub-Menü zu ändern, während Sie sich in Grub befinden?
Pfeiffep
2
Siehe meine verbesserte Antwort.
Jeroen
6

Sie erhalten diese Meldung, weil die Live-CD kein beschreibbares Dateisystem bereitstellt. Es ist nur dazu gedacht, Ubuntu auszuprobieren oder ein beschädigtes System zu retten. Das Ausführen von a sudo update-grubfunktioniert nur auf einer installierten Version von Ubuntu, auf die Sie Schreibzugriff auf die zugrunde liegenden GRUB-Dateien haben (und auf einer Live-CD nicht).

Aaron
quelle
4
Gute Infos, aber der OP möchte auch wissen, wie er die gewünschten Änderungen vornehmen kann /etc/default/grubund dann update-grub.
Chaskes
2

Sie können update-grub von einer Live-CD auf einem installierten Ubuntu-Distro ausführen (obwohl ich davon ausgehe, dass dies mit jedem [debian-basierten?] Linux-Distro funktioniert. Es ist "erforderlich" Das interessiert Sie überhaupt nicht), wenn Sie Ihr Laufwerk klonen und das neue bereits auf dem Computer installiert haben. Ich erwähne das Klonen hier ausführlich, da der Update-Grub-Schritt in gewisser Weise eine Teilmenge davon ist und die Ansätze die gleichen sind Grundlage während einer Live-Sitzung. Auch diese Methode wurde durch die Suche im Kontext des Klonens entdeckt. Sie können daraus entnehmen, was Sie benötigen, wenn Sie nicht klonen, und Ihr Prozess wird vereinfacht.

Ich sollte das hier näher erläutern. Wichtig für das Klonen, nicht wichtig nur für Update-Grub: Ich habe dies nur auf BIOS-Systemen gemacht. Ich habe es nicht auf einem UEFI-System versucht. Das UEFI-System benötigt eine FAT-Partition zum Booten, und ich habe nicht getestet, ob diese Partition während der Klon-Kopierschritte nur für die Fahrt mitkommen soll. Ich gehe davon aus, dass sich dies auf die erforderliche [Bind-] Bereitstellung auswirkt, mit der die native Grub-Umgebung während der Live-Sitzung synthetisiert wird ...

Dies ist detailliert auf dieser Seite: http://frugaltech.happystoic.com/ssdlinux . Ich habe diese Methode schon oft benutzt und Sie können damit die Festplatten um ad-infinitum tauschen. Das Austauschen physischer Festplatten wird auf diese Weise so trivial, dass es verlockend ist, es zu seinem eigenen Hobby zu machen und / oder zu versuchen, die fehlerhaften Computer anderer Leute zu reparieren.

Das Folgende könnte eine hilfreiche Umschreibung dessen sein, was Sie dort finden:

  1. Ctrl+ Alt+ TFür - Schlag - Terminal und gibt einen Superuser - Shell ( sudo -s) während einer Live - Sitzung.

  2. Mounten Sie die vollständige Installationslaufwerkpartition (diejenige, die Ihr permanentes Linux-Dateisystem-Stammverzeichnis ist (oder wird)).

    2a. Wenn die vollständige Installation bereits auf Ihrer Festplatte vorhanden ist, fahren Sie mit (2) fort. WENN SIE KLONEN: [Ausgehend von der Annahme, dass Sie keine Neuinstallation durchführen, da dies in diesem Fall vollständig automatisch geschieht] Wenn Ihre vollständige Installation auf dieser Partition noch nicht vorhanden ist, ist jetzt die Zeit für eine einfache Installation

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

    [Diese Mount-Punkte beziehen sich ausschließlich auf die Live-Session-Umgebung - in Ubuntu haben sie im Allgemeinen die Form "/ media / ubuntu / ???"] und befinden sich auf dem neuen Laufwerk [Partition].

    2b. Andere vollständige Betriebssysteminstallationen können hier auf die gleiche Weise behandelt werden. Ich habe im Allgemeinen eine Windows-basierte Ressource zum Massenkopieren von Windows-Partitionen auf neue Laufwerke im Voraus verwendet, aber ich habe auch rsync verwendet und es hat unter Windows XP funktioniert (vorausgesetzt, Sie haben Unterstützung für das richtige Partitionsformat, wie z. B. ntfs Live-Session-Medien enthalten in der Regel Unterstützung für alternative Formate. Seien Sie nur vorsichtig mit Ihrer Rechtschreibung und verwenden Sie das Trailing /im Quellverzeichnis, wenn Sie das Ziel vollständig benennen.

  3. Binden Sie die Verzeichnisse live /dev, /procund /sysan die entsprechenden Verzeichnisse auf Ihrer permanenten Vollinstallationspartition, die Sie verwenden möchten. Das im obigen Link aufgeführte Skript erreicht dies sehr elegant mit einer "for" -Anweisung. Außerdem muss das angegebene Skript nicht per se als Skript ausgeführt werden. Sie kann zeilenweise über die Bash-Eingabeaufforderung eingegeben werden.

  4. chrootauf die permanente Vollinstallationspartition. Nach (3) und (4) befindet sich das System nun "virtuell" in Ihrem "endgültigen Dateisystem" und GRUB wird homogen funktionieren. Ohne diese Schritte geht grub davon aus, dass es sich bei Ihrem System lediglich um eine Live-Sitzung handelt, und ich weiß nicht genau, was es in diesem Fall tut, aber es ist nicht das gewünschte Ergebnis, auf das oben in diesem Thread hingewiesen wurde.

  5. Führen Sie grub-install auf dem /dev/sdXLaufwerk aus, das der permanenten Installation entspricht (oder auf dem Laufwerk, auf dem GRUB ausgeführt wird, wenn ein System mit mehreren Laufwerken [, mehreren Starts]). Die Flexibilität hier hängt möglicherweise von Ihrem Jahrgang und BIOS ab. Soweit ich weiß, ist das Ausführen von "grub-install" nicht schädlich, wenn es nicht erforderlich ist. Daher mache ich es immer, wenn ich diese Live-Sitzungsmethode verwende.

  6. Wenn Sie update-grub ausführen, verhält es sich so, als ob das ausgeführte System in der zukünftigen permanenten Partition verschachtelt wäre, und erkennt alle verfügbaren Kernel und bootfähigen Betriebssysteme.

  7. Wenn Sie die Festplatten nicht physisch geändert haben, fahren Sie mit (5) fort. Andernfalls bearbeiten oder überprüfen Sie Ihre /new/linux/filesystem/live-mount-point/etc/fstabDatei, um die korrekte Dateisystemstruktur für Ihre [neue] Umgebung sicherzustellen. Wenn Sie auf diesem Niveau sind, wissen Sie sicherlich bereits, blkid wie Sie UUIDs für fstab sammeln können.

    IMHO: Sie sollten UUIDs immer in der Form fstab (nicht "dev / sdXY") verwenden, da sie in ihrem eigenen Umfang nicht für die Neukonfiguration der physischen Festplatte anfällig sind Irgendwann in der Zukunft installieren Sie eine zusätzliche Festplatte für Ihr / home-Verzeichnis usw.). Es ist einfach der grundlegendste, robusteste und unveränderlichste Ansatz.

  8. Verlassen Sie die Chroot, beenden Sie Supershell, beenden Sie Bash, fahren Sie das System herunter und starten Sie es ohne die Live-Medien. Sie sollten jetzt dort sein, wo Sie es beabsichtigt haben.

    Wichtig HINWEIS: Argumente für mount und chrootsind Verzeichnisse (im Allgemeinen MOUNT POINTS wie /mnt/??oder /media/??), die der Live-Sitzung entsprechen. In den meisten, wenn nicht allen Fällen, befindet sich eine vollständige Installation in einer eigenen Partition. Die Begriffe "Verzeichnis" und "Einhängepunkt" sind hier also im Wesentlichen synonym. Das Argument für grub-install ist ein PHYSICAL DRIVE ( /dev/sdXwobei "X" im Allgemeinen ein Buchstabe ist, der dem Laufwerk in Ihrem System, sda, sdb usw. entspricht und nicht von der Sitzung abhängen sollte).

Sie sollten jetzt fertig sein. Ich habe gleichzeitig Windows (XP und 7) in verschiedenen Permutationen neben Ubuntu und Puppy mit dieser Methode geklont und es ist mir nicht entgangen. Ich denke, Sie können ein Live-Medium einer anderen Distribution verwenden (ich habe jedoch nur verschiedene Ubuntu-Aromen und Mint verwendet), solange diese die Version von GRUB enthalten, die Sie verwenden möchten. Sie können Partitionen verschieben, Laufwerke austauschen, andere Betriebssysteminstallationen kombinieren und mit dieser Funktion auf oder von SSD klonen. Ich kann jedoch nur mit derselben Maschine sprechen. Ich gehe davon aus, dass Treiber, die möglicherweise für einen anderen Computer erforderlich sind, während Ihrer vorherigen vollständigen Installation übersprungen wurden. Meine Faustregel lautet, dass das Wechseln von Laufwerken in einem Computer diese Methode erfordert, das Wechseln von Computern mit einem Laufwerk jedoch eine vollständige [Neu] Installation erfordert.

Vielleicht kann jemand dies entlarven ..?

Jonathan Whittum
quelle
1
Willkommen bei Ask Ubuntu! :-) Hervorragende erste Antwort! +1
Fabby