Sự cố này bắt đầu khi tôi cài đặt các bản cập nhật Ubuntu hôm nay, 125 gói đã được cập nhật. tôi đã chạy cập nhật sudo apt
theo dõi bởi danh sách apt --upgradable
và nâng cấp sudo apt
trên máy tính xách tay của tôi, sau đó chuyển sang máy tính để bàn của tôi để tiếp tục công việc khác. Tôi nhận thấy màn hình máy tính xách tay bị tối và khi tôi nhìn, có một con trỏ nhấp nháy ở góc trên bên trái, không có gì khác trên màn hình. Tôi đã thử chuyển sang một thiết bị đầu cuối ảo khác nhưng không nhận được bất kỳ phản hồi nào. Tôi nhấn nhanh nút nguồn để xem liệu điều đó có nhận được bất kỳ phản hồi nào không và máy tính xách tay tắt. Khi tôi khởi động lại máy tính xách tay, nó trở lại màn hình con trỏ nhấp nháy như cũ. Tuy nhiên, lần này, tôi đã có thể mở một thiết bị đầu cuối ảo bằng cách nhấn Ctrl-Alt-F1
và tôi đã đăng nhập. Tôi đã xem lại danh sách các gói đã được cài đặt với một anh chàng hỗ trợ kỹ thuật và anh ấy xác định vấn đề là do nâng cấp trình điều khiển video không tốt, từ nvidia-driver-460
đến nvidia-driver-470
, và nói rằng chúng tôi phải cài đặt nvidia-driver-495
.
Khi tôi cố gắng cài đặt nvidia-driver-495
gói, tôi nhận được thông báo lỗi cho biết đpkg
đã bị gián đoạn và tôi cần phải chạy Sudo dpkg --configure -a
có vẻ như nó đã cài đặt mọi thứ khác đang chờ xử lý trong danh sách 125 gói. Sau đó tôi đã thử cài đặt nvidia-driver-495
một lần nữa, nhưng điều đó nói rằng nó đã mất tích nvidia-driver-510
như một sự phụ thuộc. sau đó tôi chạy sudo apt cài đặt
để cài đặt nvidia-driver-510
và tất cả nó là phụ thuộc. Tôi đã kiểm tra thiết bị đầu cuối GUI tại Ctrl-Alt-F7
và nó vẫn chỉ có con trỏ nhấp nháy. sau đó tôi chạy Sudo apt cài đặt nvidia-driver-495
không tạo ra bất kỳ lỗi nào - nhưng tôi vẫn chỉ có con trỏ nhấp nháy trên thiết bị đầu cuối GUI.
Tôi khởi động lại máy tính xách tay, và có
lỗi: không thể tìm thấy lệnh `hwmatch'
lỗi: không thể phân bổ initrd.
Bấm phím bất kỳ để tiếp tục...
theo sau là một cơn hoảng loạn hạt nhân. Tôi khởi động lại máy tính xách tay và chỉ nhận được không thể phân bổ initrd
tin nhắn, một lần nữa theo sau là sự hoảng loạn hạt nhân. Khi tôi khởi động lại máy tính xách tay, tôi được cung cấp menu GRUB và có thể khởi động máy bằng kernel trước đó, 5.13.0-28
.
Sau một số nghiên cứu, tôi đã chạy Sudo update-initramfs -c -k 5.13.0-30-generic
và khởi động lại máy - và có kiểu lỗi tương tự, cuối cùng khởi động lại vào -28
hạt nhân để tiếp tục. Tôi loanh quanh thêm một chút, rồi chạy cập nhật-grub
, đã khởi động lại - và thực hiện lại chu kỳ tương tự.
Tôi đã thử xóa -30
tập tin hạt nhân từ /khởi động
, đang chạy cập nhật sudo apt
cho biết tất cả các gói đã được cập nhật, đang chạy loại bỏ sudo apt
để xóa tất cả các -30
tập tin, đang chạy cập nhật-grub
một lần nữa - và cập nhật apt
cứ khăng khăng rằng tất cả các gói đều được cập nhật: Giống như nó biết nó đã cài đặt phiên bản kernel mới, nhưng sau đó không nhận thấy nó đã bị gỡ bỏ khi nào. Tôi đã khởi động lại máy tính xách tay, điều này đã thành công vì nó đã bắt đầu hoạt động trước đó -28
hạt nhân - và cập nhật apt
vẫn không có manh mối về việc nâng cấp kernel. tôi đã chạy Sudo apt-get remove --purge
với danh sách -30
các tệp chỉ xóa các tệp cấu hình vì bản thân các gói đã bị xóa - và cập nhật apt
vẫn hạnh phúc không biết gì về hạt nhân mới.
tôi đã chạy danh sách apt --đã cài đặt | hình ảnh grep linux
trong đó liệt kê hai hạt nhân vẫn được cài đặt, -27
và -28
. tôi đã chạy tìm kiếm apt-cache linux-image|grep 13|grep chung
đã cho tôi một danh sách ngắn các hạt nhân có thể được cài đặt. sau đó tôi chạy 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- chung linux-mô-đun-thêm-5.13.0-30-chung
để cài đặt lại tất cả các gói cần thiết. Một phần của đầu ra là
/etc/kernel/header_postinst.d/dkms:
* dkms: chạy dịch vụ cài đặt tự động cho kernel 5.13.0-30-generic
Không cần chuẩn bị nhân cho nhân này. Bỏ qua...
khiến tôi tự hỏi liệu một bước bắt buộc đã được thông qua chưa. Mọi thứ khác đều ổn, vì vậy tôi đã khởi động lại máy - và quay lại
lỗi: không thể tìm thấy lệnh `hwmatch'
lỗi: không thể phân bổ initrd.
và hạt nhân hoảng loạn. Cuối cùng tôi đã có thể sắp xếp ra những gì còn thiếu hwmatch
vấn đề thông qua một vài lần khởi động lại bằng cách làm theo lời khuyên từ https://www.linux.org/threads/error-cant-find-command-hwmatch-during-boot.32618/ - sao chép /usr/lib/grub/i386-pc/hwmatch.mod
vào /boot/efi/efi/grub
thư mục tôi phải tạo.
Một trong những điều tôi nhận thấy là -30
ban đầu
hình ảnh lớn hơn 50+% so với những hình ảnh khác:
-rw-r--r-- 1 gốc gốc 99M ngày 2 tháng 3 16:41 initrd.img-5.13.0-27-generic
-rw-r--r-- 1 gốc root 99 triệu ngày 2 tháng 3 16:57 initrd.img-5.13.0-28-generic
-rw-r--r-- 1 gốc gốc 156M ngày 2 tháng 3 21:41 initrd.img-5.13.0-30-generic
Đó có thể là một phần của vấn đề, hoặc cũng có thể là hệ quả của vấn đề, tôi không chắc.
Sau khi chạy Sudo apt-get remove --purge
để loại bỏ tất cả các -30
gói một lần nữa, tôi chạy Sudo find / -xdev -name "*5.13.0-30*"
mà chỉ trở lại
/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
Tôi không nghĩ những tệp đó là vấn đề, nhưng sau khi cố gắng tìm một lý do khác không thành công cho thông báo "Chuẩn bị hạt nhân không cần thiết cho hạt nhân này", tôi đã sử dụng tìm thấy
để xóa chúng. Khi tôi chạy sudo apt-get cài đặt
Tuy nhiên, một lần nữa, tôi nhận được thông báo "Không cần chuẩn bị hạt nhân" - và việc khởi động lại đã đưa tôi trở lại lỗi: không thể phân bổ initrd
vấn đề.
Bây giờ tôi đã loại bỏ -30
kernel một lần nữa để tôi không phải chiến đấu với máy tính xách tay khi tôi muốn khởi động lại nó, nhưng tôi sẽ muốn cài đặt hạt nhân mới mà tôi chắc chắn có một số bản sửa lỗi bảo mật.
Tôi cần làm gì để khiến Ubuntu quên rằng -30
kernel đã từng được cài đặt để tôi có thể cài đặt thành công nó ở trạng thái có thể khởi động chưa?