การใช้ Ubuntu 20.04 บน AWS (ec2) ฉันต้องการเปลี่ยนเคอร์เนลจาก AWS เป็นเคอร์เนลทั่วไป เมื่อฉันลองใช้วิธีที่แนะนำโดยเปลี่ยน Grub Config มันจะหยุดเครื่อง
นี่เป็นเพราะ Jibri (Jitsi Video Recorder) ต้องการการใช้ ALSA และ modprobe snd-aloop แต่สิ่งใดก็ตามที่ต้องการความหน่วงต่ำหรือเคอร์เนลที่แตกต่างกันก็มีความต้องการเช่นเดียวกัน
สิ่งที่ฉันพยายาม:
คว้าภาพ:
sudo apt ติดตั้ง linux-image-extra-virtual
คุณจะเห็นว่ามันอ้างอิงบางอย่างเช่น Linux 5.4.0-84-generic ในแพ็คเกจการติดตั้ง ซึ่งจะช่วยได้ในภายหลัง
ตอนนี้ ระบุรายการบูตที่คุณมีสำหรับเคอร์เนลทั่วไปใหม่นั้น
grep -A200 เมนูย่อย /boot/grub/grub.cfg |grep -P '^(?=.*menuentry)(?=.*generic)'
เข้าใจแล้ว:
เมนูรายการ 'Ubuntu พร้อม 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 พร้อม Linux 5.4.0-84-generic (โหมดการกู้คืน)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-84-generic-recovery -e8070c31-bfee-4314-a151-d1332dc23486' {
ในสิ่งที่น่าจะเป็นบรรทัดบนสุด และไม่ใช่บรรทัดที่กล่าวถึงโหมดการกู้คืน ให้คัดลอกรายการเมนูของรายการนั้นที่จุดเริ่มต้นของบรรทัด ของฉันดูเหมือนว่า Ubuntu พร้อม Linux 5.4.0-84-generic แต่จะแตกต่างกันไปสำหรับทุกคน
ตอนนี้ฉันจะแก้ไข /etc/default/grub ,
แสดงความคิดเห็น GRUB_DEFAULT=0 (โหลดรายการแรกในรายการบูตด้วงของคุณ) และเปลี่ยนเป็นสตริงที่เราพบก่อนหน้านี้ สำหรับฉัน ตอนนี้ส่วนนี้ของไฟล์มีลักษณะดังนี้:
#GRUB_DEFAULT=0
GRUB_DEFAULT="Ubuntu พร้อม Linux 5.4.0-84-generic"
นี่ไม่ใช่การตั้งค่าที่เหมาะสม - เรากำลังใช้เพื่อให้ด้วงตรวจสอบและบอกวิธีที่ดีที่สุดแก่เรา
ณ จุดนี้เราสามารถ sudo update-grub ซึ่งจะแจ้งเตือนฉันแบบนี้ (ดีมาก!)
คำเตือน: โปรดอย่าใช้ชื่อเก่า `Ubuntu, with Linux 5.4.0-84-generic' สำหรับ GRUB_DEFAULT, ให้ใช้ 'Advanced options for Ubuntu>Ubuntu, with Linux 5.4.0-84-generic' (สำหรับเวอร์ชันก่อน 2.00) หรือ `gnulinux-advanced-e8070c31-bfee-4314-a151-d1332dc23486>gnulinux-5.4.0-84-generic-advanced-e8070c31-bfee-4314-a151-d1332dc23486' (สำหรับ 2.00 หรือใหม่กว่า)
นี่เป็นสิ่งที่ดีอีกครั้ง! เราทราบดีว่าเราได้ระบุบางสิ่งที่มันรู้จัก ทุกคนใช้ grub ที่ใหม่กว่า 2.00 ในปัจจุบัน ดังนั้นเราจึงแก้ไข /etc/default/grub อีกครั้งและเปลี่ยนเป็นค่าสุดท้ายของ itâs:
(ค่าของฉันจะแตกต่างกับคุณ)
#GRUB_DEFAULT=0
#GRUB_DEFAULT="Ubuntu พร้อม 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 และฉันเห็นว่าคำเตือนหายไปแล้ว
ตอนนี้ฉันทำ sudo รีบูตทันที
ณ จุดนี้ด้วงได้ให้การกำหนดค่าแก่ฉันที่ควรลองและบูตเคอร์เนลทั่วไปโดยถอยกลับเป็นค่าปกติ
แต่จะติดอยู่ในลูปสำหรับบูตแทน
ในคอนโซลอนุกรม ฉันเห็นสิ่งนี้ระหว่างการวนรอบการบูตซ้ำๆ
[ 0.000000] Linux เวอร์ชัน 5.4.0-84-generic (buildd@lgw01-amd64-050) (gcc เวอร์ชัน 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #94-Ubuntu SMP พฤ. 26 ส.ค. 20:27: 37 UTC 2021
(Ubuntu 5.4.0-84.94-generic 5.4.133)
[ 0.000000] บรรทัดคำสั่ง: BOOT_IMAGE=/boot/vmlinuz-5.4.0-84-generic root=PARTUUID=5198cbc0-01 ro console=tty1 console=ttyS0 nvme_core.io_timeout=4294967295 ตื่นตระหนก=-
1
[ 0.000000] เคอร์เนลซีพียูที่รองรับ:
[ 0.000000] Intel แท้Intel
[ 0.000000] AMD แท้AMD
[ 0.000000] ไฮกอน ไฮกอนของแท้
[ 0.000000] เซนทอร์ เซ็นทอร์ฮอลส์
[ 0.000000] จ่าวซิน เซี่ยงไฮ้
... cpu init จำนวนมากที่ยากต่อการคัดลอก ..
[ 10.366218] rtc_cmos 00:00: ตั้งนาฬิการะบบเป็น 2021-09-21T11:25:30 UTC (1632223530)
[10.373185] md: รอให้อุปกรณ์ทั้งหมดพร้อมใช้งานก่อนที่จะตรวจหาอัตโนมัติ
[10.460173] md: หากคุณไม่ได้ใช้การจู่โจม ให้ใช้การจู่โจม=noautodetect
[ 10.464642] md: ตรวจหาอาร์เรย์ RAID โดยอัตโนมัติ
[ 10.468024] md: ทำงานอัตโนมัติ ...
[ 10.470867] md: ... ทำงานอัตโนมัติ เสร็จสิ้น
[10.473906] VFS: ไม่สามารถเปิดอุปกรณ์รูท "PARTUUID=5198cbc0-01" หรือบล็อกที่ไม่รู้จัก (0,0): ข้อผิดพลาด -6
[ 10.562806] โปรดต่อท้ายตัวเลือก "root=" boot ที่ถูกต้อง; นี่คือพาร์ติชันที่มีอยู่:
[10.569825] เคอร์เนลตื่นตระหนก - ไม่ซิงค์: VFS: ไม่สามารถเมานต์ fs บนบล็อกที่ไม่รู้จัก (0,0)
[10.674637] CPU: 1 PID: 1 Comm: swapper/0 ไม่เสีย 5.4.0-84-generic #94-Ubuntu
[ 10.682527] ชื่อฮาร์ดแวร์: Amazon EC2 t3.small/, BIOS 1.0 16/10/2017
[ 10.686735] ติดตามการโทร:
[10.691100] dump_stack+0x6d/0x8b
[ 10.759061] ตื่นตระหนก+0x101/0x2e3
[ 10.761974] mount_block_root+0x23f/0x2e8
[10.765568] mount_root+0x38/0x3a
[ 10.768584] จัดเตรียม_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] การชดเชยเคอร์เนล: 0x36a00000 จาก 0xffffffff81000000 (ช่วงการย้ายตำแหน่ง: 0xffffffff80000000-0xffffffffbfffffff)
มันบอกฉันว่าไม่พบอุปกรณ์บูตหรือ partuuid ตามนั้น
ณ จุดนี้ ฉันต้องยุติอินสแตนซ์และลองอีกครั้ง เนื่องจากฉันไม่สามารถกู้คืนได้อย่างง่ายดาย
มีวิธีที่ดีกว่าในการเปลี่ยนเคอร์เนลของฉันเป็นเคอร์เนลทั่วไปหรือไม่? ฉันยินดีที่จะใช้อิมเมจทั่วไป ณ จุดนี้ถ้ามันบูท