Această problemă a început când instalam actualizări Ubuntu astăzi, urmau să fie actualizate 125 de pachete. am fugit actualizare sudo apt
urmat de lista apt - upgradable
și sudo apt upgrade
pe laptopul meu, apoi am apelat la computerul meu desktop pentru a continua cu alte lucrări. Am observat că ecranul laptopului s-a întunecat și când m-am uitat, în colțul din stânga sus clipea un cursor, nimic altceva pe ecran. Am încercat să trec la un alt terminal virtual, dar nu am primit niciun răspuns. Am apăsat scurt butonul de pornire pentru a vedea dacă va primi vreun răspuns, iar laptopul s-a oprit. Când am repornit laptopul, acesta a revenit la același ecran de cursor care clipește. De data aceasta, însă, am reușit să deschid un terminal virtual apăsând Ctrl-Alt-F1
și m-am conectat. Am revizuit lista de pachete care au fost instalate cu un tip de asistență tehnică și a identificat problema ca fiind o actualizare proastă a driverului video, de la nvidia-driver-460
la nvidia-driver-470
și a spus că trebuie să instalăm nvidia-driver-495
.
Când am încercat să instalez nvidia-driver-495
pachet, am primit un mesaj de eroare care spune dpkg
fusese întrerupt și trebuia să fug sudo dpkg --configure -a
care părea că a instalat tot ce era în așteptare din lista de 125 de pachete. Apoi am incercat sa instalez nvidia-driver-495
din nou, dar asta spunea că lipsește nvidia-driver-510
ca o dependență. apoi am fugit sudo apt install
a instala nvidia-driver-510
si toate este dependențe. Am verificat terminalul GUI la Ctrl-Alt-F7
și încă avea cursorul care clipește. apoi am fugit sudo apt install nvidia-driver-495
care nu a produs nicio eroare - dar tot am avut doar cursorul care clipește pe terminalul GUI.
Am repornit laptopul și am primit
eroare: nu se poate găsi comanda „hwmatch”
eroare: nu se poate aloca initrd.
Apăsați orice tastă pentru a continua...
urmată de o panică a nucleului. Am repornit laptopul și am primit doar nu poate aloca initrd
mesaj, urmat din nou de o panică a nucleului. Când am repornit din nou laptopul, mi s-a oferit meniul GRUB și am putut să pornesc mașina folosind nucleul anterior, 5.13.0-28
.
După câteva cercetări, am fugit sudo update-initramfs -c -k 5.13.0-30-generic
și a repornit mașina - și a avut același model de defecțiune, în cele din urmă pornind înapoi în -28
nucleul pentru a continua. M-am mai aruncat un pic, apoi am fugit update-grub
, a repornit - și a trecut din nou prin același ciclu.
Am încercat să șterg -30
fișierele kernel de la /boot
, alergare actualizare sudo apt
care spunea că toate pachetele erau la zi, rulează sudo apt remove
pentru a șterge toate -30
fișiere, rulând update-grub
iarăşi – şi actualizare apt
a continuat să insiste că toate pachetele sunt actualizate: parcă știa că a instalat o nouă versiune de kernel, dar apoi nu a observat când a fost eliminat. Am repornit laptopul, care a avut succes, deoarece începea să funcționeze anterior -28
miez - și actualizare apt
încă nu aveam nicio idee despre upgrade-ul kernelului. am fugit sudo apt-get remove --purge
cu lista de -30
fișierele, care doar ștergeau fișierele de configurare, deoarece pachetele în sine fuseseră deja eliminate - și actualizare apt
a rămas fericitor ignorant de noul nucleu.
am fugit apt list --installed | grep linux-image
care a enumerat cele două nuclee încă instalate, -27
și -28
. am fugit apt-cache search linux-image|grep 13|grep generic
care mi-a dat o scurtă listă de sâmburi care ar putea fi instalat. apoi am fugit sudo apt-get install linux-headers-5.13.0-30-generic linux-hwe-5.13-headers-5.13.0-30 linux-image-5.13.0-30-generic linux-modules-5.13.0-30- generic linux-module-extra-5.13.0-30-generic
pentru a reinstala toate pachetele necesare. O parte din rezultat a fost
/etc/kernel/header_postinst.d/dkms:
* dkms: rulează serviciul de instalare automată pentru kernel 5.13.0-30-generic
Pregătirea nucleului nu este necesară pentru acest nucleu. Se trece peste...
ceea ce m-a lăsat să mă întreb dacă a fost trecut un pas necesar. Totul în rest arăta în regulă, așa că am repornit aparatul - și am revenit la
eroare: nu se poate găsi comanda „hwmatch”
eroare: nu se poate aloca initrd.
iar miezul intră în panică. În cele din urmă am reușit să-i rezolv pe cei dispăruți hwmatch
problemă prin alte două reporniri urmând sfaturile de la https://www.linux.org/threads/error-cant-find-command-hwmatch-during-boot.32618/ - copierea /usr/lib/grub/i386-pc/hwmatch.mod
în /boot/efi/efi/grub
directorul pe care a trebuit să-l creez.
Unul dintre lucrurile pe care le-am observat este -30
initrd
imaginea este cu 50+% mai mare decât celelalte:
-rw-r--r-- 1 rădăcină rădăcină 99M 2 mar 16:41 initrd.img-5.13.0-27-generic
-rw-r--r-- 1 rădăcină rădăcină 99M 2 mar 16:57 initrd.img-5.13.0-28-generic
-rw-r--r-- 1 rădăcină rădăcină 156M 2 mar 21:41 initrd.img-5.13.0-30-generic
Asta poate fi o parte a problemei sau poate fi o consecință a problemei, nu sunt sigur.
După alergare sudo apt-get remove --purge
pentru a elimina toate -30
din nou pachete, am fugit sudo find / -xdev -name "*5.13.0-30*"
care doar s-a întors
/var/cache/apt/archives/linux-headers-5.13.0-30-generic_5.13.0-30.33~20.04.1_amd64.deb
/var/cache/apt/archives/linux-modules-extra-5.13.0-30-generic_5.13.0-30.33~20.04.1_amd64.deb
/var/cache/apt/archives/linux-image-5.13.0-30-generic_5.13.0-30.33~20.04.1_amd64.deb
/var/cache/apt/archives/linux-hwe-5.13-headers-5.13.0-30_5.13.0-30.33~20.04.1_all.deb
/var/cache/apt/archives/linux-modules-5.13.0-30-generic_5.13.0-30.33~20.04.1_amd64.deb
Nu credeam că acele fișiere sunt problema, dar după ce am încercat fără succes să găsesc un alt motiv pentru mesajul „Pregătirea nucleului nu este necesară pentru acest nucleu”, am folosit găsi
pentru a le șterge. Când am fugit sudo apt-get install
din nou, totuși, am primit același mesaj „Pregătirea kernelului nu este necesară” - iar repornirea m-a adus înapoi la eroare: nu se poate aloca initrd
problemă.
Am eliminat acum -30
kernel din nou, așa că nu trebuie să mă lupt cu laptopul când vreau să-l repornesc, dar eu ar Îmi place să instalez noul nucleu care sunt sigur că are unele remedieri de securitate.
Ce trebuie să fac pentru ca Ubuntu să uite că -30
kernel-ul a fost instalat vreodată, astfel încât să îl pot instala cu succes într-o stare de pornire?