Sử dụng Ubuntu 20.04 trên AWS (ec2), tôi muốn thay đổi kernel của mình từ AWS sang kernel chung. Khi tôi thử theo cách được đề xuất với việc thay đổi Cấu hình Grub, nó sẽ dừng máy.
Điều này là do Jibri (Jitsi Video Recorder) yêu cầu sử dụng ALSA và modprobe snd-aloop , nhưng bất kỳ thứ gì muốn có độ trễ thấp hoặc nhân khác sẽ có cùng nhu cầu.
Những gì tôi đã thử:
Lấy hình ảnh:
sudo apt cài đặt linux-image-extra-virtual
Bạn sẽ thấy nó tham chiếu thứ gì đó giống như Linux 5.4.0-84-generic trong các gói cài đặt, nó sẽ giúp ích sau này.
Bây giờ, hãy liệt kê các mục khởi động mà bạn có cho nhân chung mới đó
menu con grep -A200 /boot/grub/grub.cfg |grep -P '^(?=.*menuentry)(?=.*generic)'
Tôi hiểu rồi:
menuentry 'Ubuntu, với Linux 5.4.0-84-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-84-generic-advanced-e8070c31-bfee -4314-a151-d1332dc23486' {
menuentry 'Ubuntu, với Linux 5.4.0-84-generic (chế độ khôi phục)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-84-generic-recovery -e8070c31-bfee-4314-a151-d1332dc23486' {
Ở dòng trên cùng có khả năng là dòng trên cùng chứ không phải dòng đề cập đến chế độ khôi phục, hãy sao chép mục menu của nó ở đầu dòng. Của tôi trông giống như Ubuntu, với Linux 5.4.0-84-generic, nhưng nó sẽ khác đối với mọi người.
Bây giờ, tôi sẽ chỉnh sửa /etc/default/grub ,
Nhận xét GRUB_DEFAULT=0 (tải mục đầu tiên trong danh sách khởi động grub của bạn) và thay đổi nó thành chuỗi mà chúng tôi đã tìm thấy trước đó. Đối với tôi, phần này của tệp bây giờ trông giống như:
#GRUB_DEFAULT=0
GRUB_DEFAULT="Ubuntu, với Linux 5.4.0-84-generic"
Đây chưa phải là một thiết lập phù hợp - chúng tôi đang sử dụng nó để cho phép grub kiểm tra và cho chúng tôi biết cách tốt nhất để thực hiện.
Tại thời điểm này, chúng ta có thể sudo update-grub, nó sẽ cho tôi một cảnh báo thân thiện như thế này (điều này tốt!)
Cảnh báo: Vui lòng không sử dụng tiêu đề cũ `Ubuntu, với Linux 5.4.0-84-generic' cho GRUB_DEFAULT, hãy sử dụng `Advanced options for Ubuntu>Ubuntu, with Linux 5.4.0-84-generic' (dành cho các phiên bản trước 2.00) hoặc `gnulinux-advanced-e8070c31-bfee-4314-a151-d1332dc23486>gnulinux-5.4.0-84-generic-advanced-e8070c31-bfee-4314-a151-d1332dc23486' (dành cho phiên bản 2.00 trở lên)
Một lần nữa, điều này là tốt! Chúng tôi biết rằng chúng tôi đã chỉ định điều gì đó mà nó nhận ra. Mọi người đang chạy grub mới hơn 2.00 ngày nay, vì vậy bây giờ chúng tôi chỉnh sửa lại /etc/default/grub và thay đổi nó thành giá trị cuối cùng của nó:
(giá trị của tôi sẽ khác với giá trị của bạn)
#GRUB_DEFAULT=0
#GRUB_DEFAULT="Ubuntu, với Linux 5.4.0-84-generic"
GRUB_DEFAULT="gnulinux-advanced-e8070c31-bfee-4314-a151-d1332dc23486>gnulinux-5.4.0-84-generic-advanced-e8070c31-bfee-4314-a151-d1332dc23486"
Sudo update-grub và tôi thấy cảnh báo đã biến mất.
Bây giờ tôi làm một Sudo khởi động lại ngay bây giờ
Tại thời điểm này, grub đã đưa cho tôi một cấu hình để thử và khởi động kernel chung, quay trở lại kernel bình thường.
Thay vào đó, nó bị mắc kẹt trong một vòng lặp khởi động.
Trong bảng điều khiển nối tiếp, tôi thấy điều này lặp đi lặp lại trong vòng lặp khởi động.
[ 0,000000] Linux phiên bản 5.4.0-84-generic (buildd@lgw01-amd64-050) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #94-Ubuntu SMP Thứ Năm ngày 26 tháng 8 20:27: 37 UTC 2021
(Ubuntu 5.4.0-84.94-chung 5.4.133)
[ 0,000000] Dòng lệnh: BOOT_IMAGE=/boot/vmlinuz-5.4.0-84-generic root=PARTUUID=5198cbc0-01 ro console=tty1 console=ttyS0 nvme_core.io_timeout=4294967295 panic=-
1
[ 0,000000] CPU được hỗ trợ KERNEL:
[ 0,000000] Intel Chính hãngIntel
[ 0,000000] AMD xác thựcAMD
[ 0.000000] Hygon HygonChính hãng
[ 0,000000] Centaur CentaurHaul
[ 0.000000] zhaoxin Thượng Hải
... rất nhiều cpu init khó sao chép ..
[ 10.366218] rtc_cmos 00:00: đặt đồng hồ hệ thống thành 2021-09-21T11:25:30 UTC (1632223530)
[ 10.373185] md: Chờ tất cả thiết bị khả dụng trước khi tự động phát hiện
[ 10.460173] md: Nếu bạn không sử dụng đột kích, hãy sử dụng đột kích=noautodetect
[ 10.464642] md: Tự động phát hiện mảng RAID.
[ 10.468024] md: autorun ...
[ 10.470867] md: ... tự động chạy XONG.
[ 10.473906] VFS: Không thể mở thiết bị gốc "PARTUUID=5198cbc0-01" hoặc khối không xác định (0,0): lỗi -6
[ 10.562806] Vui lòng thêm tùy chọn khởi động "root=" đúng; đây là các phân vùng có sẵn:
[ 10.569825] Kernel hoảng loạn - không đồng bộ hóa: VFS: Không thể gắn root fs trên khối không xác định (0,0)
[ 10.674637] CPU: 1 PID: 1 Comm: hoán đổi/0 Không bị nhiễm độc 5.4.0-84-generic #94-Ubuntu
[ 10.682527] Tên phần cứng: Amazon EC2 t3.small/, BIOS 1.0 16/10/2017
[ 10.686735] Theo dõi cuộc gọi:
[ 10.691100] dump_stack+0x6d/0x8b
[ 10.759061] hoảng loạn+0x101/0x2e3
[ 10.761974] mount_block_root+0x23f/0x2e8
[ 10.765568] mount_root+0x38/0x3a
[ 10.768584]prepare_namespace+0x13f/0x194
[ 10.771873] kernel_init_freeable+0x23f/0x263
[ 10.775368] ? rest_init+0xb0/0xb0
[ 10.859141] kernel_init+0xe/0x110
[ 10.862101] ret_from_fork+0x35/0x40
[ 10.865843] Độ lệch hạt nhân: 0x36a00000 từ 0xffffffff81000000 (phạm vi di chuyển: 0xffffffff80000000-0xffffffffbffffffff)
Nó nói với tôi rằng nó không thể tìm thấy thiết bị khởi động hoặc partuuid theo nó.
Tại thời điểm này, tôi gần như phải chấm dứt phiên bản và thử lại, vì tôi không thể khôi phục nó dễ dàng.
Có cách nào tốt hơn để thay đổi kernel của tôi thành kernel chung không? Tôi rất vui khi được sử dụng hình ảnh chung theo bất kỳ cách nào có thể vào thời điểm này nếu nó khởi động.