Score:0

การเปลี่ยนเคอร์เนลสำหรับ 20.04 ใน AWS ดูเหมือนจะทำลายลำดับการบูต (อาจเป็นปัญหาการกำหนดค่าด้วงหรือไม่)

ธง tr

การใช้ Ubuntu 20.04 บน AWS (ec2) ฉันต้องการเปลี่ยนเคอร์เนลจาก AWS เป็นเคอร์เนลทั่วไป เมื่อฉันลองใช้วิธีที่แนะนำโดยเปลี่ยน Grub Config มันจะหยุดเครื่อง

นี่เป็นเพราะ Jibri (Jitsi Video Recorder) ต้องการการใช้ ALSA และ modprobe snd-aloop แต่สิ่งใดก็ตามที่ต้องการความหน่วงต่ำหรือเคอร์เนลที่แตกต่างกันก็มีความต้องการเช่นเดียวกัน - ต้องการใช้เคอร์เนลที่แตกต่างจาก AWS

สิ่งที่ฉันพยายาม:

คว้าภาพ:

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 ตามนั้น ณ จุดนี้ ฉันต้องยุติอินสแตนซ์และลองอีกครั้ง เนื่องจากฉันไม่สามารถกู้คืนได้อย่างง่ายดาย

มีวิธีที่ดีกว่าในการเปลี่ยนเคอร์เนลของฉันเป็นเคอร์เนลทั่วไปหรือไม่? ฉันยินดีที่จะใช้อิมเมจทั่วไป ณ จุดนี้ถ้ามันบูท

cn flag
ฉันสงสัยว่าคุณได้รับอนุญาตให้ทำเช่นนี้ วิธีที่ถูกต้องคือสร้างอินสแตนซ์ใหม่และแนบดิสก์ส่วนตัวของคุณกับอินสแตนซ์ใหม่ เคอร์เนล ซีพียู และหน่วยความจำเชื่อมโยงกับการตั้งค่าที่คุณสร้างอินสแตนซ์ด้วย
tr flag
ดูเหมือนจะเป็นวงกลมเล็กน้อยใช่ไหม คุณจะต้องสามารถสร้างอินสแตนซ์จาก AMI ที่มีอยู่ได้ (เช่น เริ่มต้นด้วยเคอร์เนลของ Ubuntu 20.04 จากนั้นจึงจะสามารถบูตเคอร์เนลนั้นได้) ก่อนที่คุณจะสามารถสร้าง AMI จากมันโดยเปลี่ยนเคอร์เนลที่จะบู๊ตด้วย .
cn flag
ไม่. AWS จัดเตรียมอินสแตนซ์จากคอนโซลด้วยเคอร์เนลที่กำหนดเอง ฉันสงสัยว่าคุณได้รับอนุญาตและสงสัยว่าเป็นไปได้ที่จะทำสิ่งที่คุณต้องการ ค่าบริการรายเดือนที่คุณจ่ายสำหรับการใช้ AWS จะเชื่อมโยงกับ cpu, gpu, เคอร์เนล และเวอร์ชันของระบบปฏิบัติการ ฉันกำลังตั้งสมมติฐานบางอย่าง (มิฉะนั้นฉันจะให้คำตอบ ;-)); ฉันใช้ GCE เป็นส่วนใหญ่และมี AWS เพียง 3 ตัวและ 3 ตัวนั้นเก่าไปหน่อย
tr flag
ไม่เป็นเช่นนั้น ในอดีตมีคู่มือจำนวนมากที่เปลี่ยนแปลงเคอร์เนล รวมถึงใน AWS หากต้องการลิงก์ไปยังตัวอย่าง: https://github.com/jitsi/jibri/blob/master/README.md#alsa-and-loopback-device (ลิงก์จากคู่มือการติดตั้ง AWS ซึ่งยังคงเกี่ยวข้องกับ Ubuntu 18.04 และ 20.04) . ส่วนที่แปลกคือฉันได้ทำสิ่งนี้ไปแล้วในเดือนกุมภาพันธ์ (ใช้เคอร์เนลทั่วไป) แต่ไม่สามารถทำได้อีกฉันเหลืออินสแตนซ์ที่ไม่ได้บูต
Score:0
ธง cn

ตามที่ระบุไว้ในการติดตามบันทึก:

FS: ไม่สามารถเปิดอุปกรณ์รูท "PARTUUID=5198cbc0-01" หรือบล็อกที่ไม่รู้จัก (0,0): ข้อผิดพลาด -6
[ 10.562806] โปรดต่อท้ายตัวเลือก "root=" boot ที่ถูกต้อง; นี่คือพาร์ติชันที่มีอยู่:
[10.569825] เคอร์เนลตื่นตระหนก - ไม่ซิงค์: VFS: ไม่สามารถเมานต์ fs บนบล็อกที่ไม่รู้จัก (0,0)

ปัญหาส่วนใหญ่อยู่ในการบังคับ PARTUUID ที่ตั้งค่าใน /etc/default/grub.d/40-force-partuuid.cfg

วิธีแก้ไขคือ:

  1. ติดตั้งเฉพาะ ลินุกซ์ทั่วไป เคอร์เนล (sudo apt ติดตั้ง linux-generic สำหรับล่าสุด) คุณสามารถตรวจสอบสิ่งที่คุณมีอยู่ได้ด้วยคำสั่ง รายการเวอร์ชันลินุกซ์
  2. เปลี่ยน GRUB_DEFAULT="1>2" หรือตามของคุณ grub.cfg รายการสั่งเมนู.

("1>2") คำอธิบาย: หมายเลข 1 ใช้สำหรับ "ตัวเลือก Ubuntu ขั้นสูง" (รายการเมนูที่สองเริ่มจากศูนย์) และหมายเลข 2 เป็นตัวเลือกเมนูย่อยที่สามใน "ตัวเลือก Ubuntu ขั้นสูง" (เริ่มต้นจากศูนย์) ซึ่งเป็นเคอร์เนลทั่วไปที่ควรจะเป็น ใช้ในกรณีของฉัน

  1. แสดงความคิดเห็นออกจากบรรทัด GRUB_FORCE_PARTUUID ใน /etc/default/grub.d/40-force-partuuid.cfg
  2. sudo update-grub && sudo update-grub2
  3. รีบูต

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา