
Ich habe es gerade installiert tree
über
sudo apt-get install tree
und mein Terminal beschloss plötzlich, zu aktualisieren grub
. Letzte Woche habe ich installiert tree
, und etwas Ähnliches ist passiert. Als ich meinen PC jedoch später in der Nacht neu startete, bootete er in ein Fenster mit der Anzeige
Grub _
und hat sich nicht verändert.
Schließlich habe ich mein Betriebssystem neu installiert (ich verwende WattOS und habe es letzten Dienstag auf einem neuen PC installiert, es war also nicht das Ende der Welt – es hat nur 5 Stunden gedauert, alles neu einzurichten).
Bei der Installation von Grub traten zahlreiche Fehler auf, die mir, soweit ich mich erinnere, beim letzten Mal aufgefallen sind (am Ende meines Beitrags aufgeführt, damit er leichter lesbar ist).
Ich habe gegoogelt nach:
- Warum aktualisiert der Baum Grub?
- Warum wurde Grub aktualisiert?
Aber ich hatte kein Glück. Ich vermute, dass ich wahrscheinlich etwas übersehe.
Kann das jemand erklären:
- Warum das passiert ist
- Bedeutet das, dass irgendetwas nicht stimmt?
- Wenn ich etwas tun sollte/kann, um das Problem zu beheben.
Ich möchte lieber nicht alles neu installieren (aus offensichtlichen Gründen!)
Danke.
Bei der Installation sind folgende Fehler aufgetreten tree
:
sudo apt-get install tree
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
gimp-data libamd2 libbabl-0.1-0 libcamd2 libccolamd2 libcholmod3 libgegl-0.4-0 libgegl-common libgexiv2-2 libgimp2.0 libhpmud0 libimagequant0
libmetis5 libqt5designer5 libqt5help5 libqt5sql5 libqt5sql5-sqlite libqt5test5 libsane-hpaio libumfpack5 printer-driver-hpcups
printer-driver-postscript-hp python3-dbus.mainloop.pyqt5 python3-notify2 python3- olefile python3-pexpect python3-pil python3-ptyprocess
python3-pyqt5 python3-pyqt5.sip python3-renderpm python3-reportlab python3-reportlab- accel vlc-plugin-samba xsane xsane-common
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
tree
0 upgraded, 1 newly installed, 0 to remove and 174 not upgraded.
1 not fully installed or removed.
Need to get 49.6 kB of archives.
After this operation, 118 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bullseye/main amd64 tree amd64 1.8.0-1+b1 [49.6 kB]
Fetched 49.6 kB in 0s (110 kB/s)
Selecting previously unselected package tree.
(Reading database ... 123032 files and directories currently installed.)
Preparing to unpack .../tree_1.8.0-1+b1_amd64.deb ...
Unpacking tree (1.8.0-1+b1) ...
Setting up grub-pc (2.06-3~deb11u6) ...
Installing for i386-pc platform.
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
Installation finished. No error reported.
Generating grub configuration file ...
Found background: /usr/share/wattOS/splash.png
Found background image: /usr/share/wattOS/splash.png
Found linux image: /boot/vmlinuz-5.10.0-19-amd64
Found initrd image: /boot/initrd.img-5.10.0-19-amd64
Warning: os-prober will be executed to detect other bootable partitions. Its output will be used to detect bootable binaries on them and create new boot entries. Found Debian GNU/Linux 11 (bullseye) on /dev/mmcblk0p2 done Setting up tree (1.8.0-1+b1) ...
Processing triggers for man-db (2.9.4-2) ...
Aktualisieren
Ich habe aus Versehen neugestartet und mein PC blieb wieder hängen. Dann habe ich WattOS als einziges Betriebssystem auf meiner Festplatte neu installiert und alles funktionierte einwandfrei. Ich habe gerade die Antwort von @eyoung100 gesehen und habe
sudo apt upgrade
die ohne Fehler lief.
Dann rannte ich
sudo apt autoremove
woraufhin mir nach der Hälfte derselbe Bildschirm wie beim letzten Mal angezeigt wurde:
The grub-pc package is being upgraded. This menu allows you to select which devices you'd like grub-install to be automatically run for, if any.
Running grub-install automatically is recommended in most situations, to prevent the installed GRUB core image from getting out of sync with
GRUB modules or grub.cfg.
If you're unsure which drive is designated as boot drive by your BIOS, it is often a good idea to install GRUB to all of them.
Note: it is possible to install GRUB to partition boot records as well, and some appropriate partitions are offered here. However, this forces GRUB to use the blocklist mechanism, which makes it less reliable, and therefore is not recommended.
Ich habe „OK“ nicht ausgewählt, da mir beim letzten Mal Fehler angezeigt wurden.
Als ich es dann in einem anderen Terminal versuchte
sudo apt upgrade
Es antwortete mit
Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 39623 (apt)
Was kaum überraschend ist.
Ich habe versucht, die Shell mit Strg-C und Strg-X zu schließen, aber nichts hat geholfen. Ich könnte das Fenster schließen, aber ich habe Bedenken.
Weitere Informationen erbeten
- Ergebnis von
sudo dmidecode -s bios-version
Ist
8GET38WW (1.15 )
- Ergebnis von
sudo dmidecode -t 0 | grep UEFI
ist nichts. (Ich schätze, das bedeutet, dass es nicht unterstützt wird).
- Ergebnis von
cpuid | less
Ist
bash: cpuid: command not found
Ich kann nur sagen, dass es sich um ein Lenovo Thinkpad L520 handelt, dass es generalüberholt ist und dass ich die CPU nicht ausgetauscht habe. (Über den Vorbesitzer weiß ich nichts.)
- Ergebnis von
sudo parted --list
Ist
Model: ATA ADATA SU630 (scsi)
Disk /dev/sda: 240GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 231GB 231GB primary ext4 boot
2 231GB 240GB 9449MB primary linux-swap(v1)
Ich kann nichts zu fstype
oder sehen gpt
.
Wie gesagt, ich habe versucht, es auf einer gelöschten Festplatte zu installieren.
Vielen Dank für Ihre Zeit!
Antwort1
Eingrenzung von Fehlern
Ich sehe viele Dinge, die Aufmerksamkeit erfordern, bevor wir uns Sorgen machengrub
- 26 Pakete (mindestens) müssen entfernt werden.
- 174 Pakete müssen aktualisiert werden.
- Grub muss ein wenig untersucht und möglicherweise repariert werden, wie der Kommentar von oldfred nahelegt.
Wir müssen die kleinen Schritte (1 und 2) erledigen, um zu verhindern, dass wir möglicherweise grub
zweimal korrigieren müssen. Diese Art von Antworten mache ich gerne aus zwei Gründen:
- Ich kann neuen Linux-Benutzern helfen zu verstehen, dass ein Neustart unter Linux ganz anders abläuft als unter Windows.
- Als neuer Linux-Benutzer hoffe ich, dass der OP sein Wissen weitergibt, so wie ich es hier tue.
Kleine Dinge zuerst
Allein durch das Betrachten des Ausgabe-Snippets weiß ich, dass der Paketmanager APT ist, die Abkürzung fürErweitertes Verpackungstool. Falls Sie es brauchen, versuchen Sie es mam apt
.
apt update && apt autoremove
- Sollte die 26 in 1 oben entfernen.apt upgrade
- Sie müssen die 174 unter 2 aufgeführten Pakete herunterladen und installieren (darunter möglicherweisegrub
). Dies kann je nach Internetverbindung eine Weile dauern.
Notiz:Das Upgrade kann bei demselben Fehler abgebrochen werden, den der OP in seiner Frage eingefügt hat. Ich würde das erwarten, aber wir möchten, dass das 174-Paket so viele Upgrades wie möglich durchführt. Wenn das Upgrade abbricht, fahren Sie mit fort der Elefant und wiederholen Sie anschließend Schritt 2
Und jetzt der Elefant im Raum
Oldfred, nun ja, er ist alt, aber er hat recht:
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
Bevor wir zuverlässig bestimmen können, welche Art von grub
Installation wir benötigen, sind einige Dinge (in keiner bestimmten Reihenfolge) erforderlich:
- Ihre BIOS/UEFI-Version:
sudo dmidecode -s bios-version
- Ist UEFI aktiviert/unterstützt:
sudo dmidecode -t 0 | grep UEFI
- Ihre CPU:
cpuid | less
- Ihre Partitionsliste und Ihr Tabellentyp:
sudo parted --list
Damit grub-efi-amd64
es funktioniert, müssen Sie einen ESP/EFI-Partitionstyp von FAT32 und eine 64-Bit-CPU haben. Punkt 3 kann wie folgt gegoogelt werden: Ist Familie X Modell Y CPU 64-Bit, wobei X und Y die Ganzzahlen in den Zeilen Familie und Modell sind. Punkt 4 muss eine Ausgabe von EFI-Partition, fstype: fat32
und einen Tabellentyp von enthalten gpt
. Punkt 2 muss „wird unterstützt“ enthalten.
Aufgrund des oben genannten Fehlers gehe ich davon aus, dass Sie versucht haben, den Grub-Bootcode in die Root-Partition einzubetten, die das Installationsprogramm als formatiert hat ext2
. Wenn der OP die gesamte Festplatte für die Installation verwendet hat, grub
muss die gesamte Festplatte verwendet werden. Diese Option funktioniert unabhängig davon, ob EFI vorhanden ist oder nicht. Wenn eine EFI-Partition vorhanden ist, grub
muss nur darin neu installiert werden. Bitte fügen Sie Ihrer Frage die Ausgabe der obigen 4 Punkte hinzu, und ich werde diese Antwort mit dem entsprechenden Befehl aktualisieren.
Aktualisieren
Basierend auf den Updates, die der OP bereitgestellt hat dmidecode
, parted
kann ich mit Sicherheit sagen, dass dies grub-pc
die richtige Grub-Architektur ist. Da der OP sich entschieden hat, nur zu installierenWattOSAuf der Maschine können wir grub
Folgendes sicher in den Bootsektor für die gesamte Festplatte einbetten:
sudo grub-install /dev/sda && sudo update-grub
sudo reboot
Nach dem Neustart fahren Sie mit Folgendem fort: apt update && apt-upgrade
Wenn grub
jemals wieder ein Upgrade erforderlich ist, geben Sie bei jedem Upgrade einfach die obigen Befehle ein (In etwa 15 Jahren mit verschiedenen Linux-Distributionen habe ich, glaube ich, grub
weniger als 10 Upgrades durchgeführt. Es ist kein sehr häufiges Paket, das aktualisiert wirdMeiner Meinung nach).
Anmerkungen: Indem wir im Befehl eine Partitionsnummer weglassen grub-install
, haben wir Grub mitgeteilt, dass die Einbettung für die gesamte Festplatte akzeptabel ist.
Bei update-grub
Fehlschlagen (geben Sie diese nacheinander ein):
sudo grub-install /dev/sda
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo reboot