วิธีการเปลี่ยนเวอร์ชันเคอร์เนล Linux ใน GRUB2 อย่างปลอดภัย

การปรับปรุงครั้งล่าสุด: 31/03/2026
ผู้แต่ง: ไอแซก
  • GRUB2 ช่วยให้คุณสามารถเลือกเวอร์ชันเคอร์เนลที่จะบูตเป็นค่าเริ่มต้นได้อย่างยืดหยุ่น โดยใช้ดัชนีเมนูหรือชื่อรายการที่แน่นอน
  • การใช้งาน Linux เวอร์ชัน linux-generic, HWE และ edge จำเป็นต้องควบคุม GRUB เพื่อหลีกเลี่ยงความไม่เสถียรเมื่อติดตั้งเคอร์เนลเวอร์ชันใหม่กว่า
  • การแก้ไขไฟล์ /etc/default/grub และการสร้างการกำหนดค่าใหม่ด้วยคำสั่ง update-grub เป็นพื้นฐานสำหรับการแก้ไขหรือกู้คืนเคอร์เนลเริ่มต้น
  • การถอนการติดตั้งเคอร์เนลที่ขัดแย้งกันและการรักษาอย่างน้อยหนึ่งสาขาที่เสถียรไว้ จะช่วยให้ระบบยังคงสามารถบูตได้และมีความปลอดภัย

การเปลี่ยนเวอร์ชันเคอร์เนล Linux ใน GRUB2

การเลือกเวอร์ชันเคอร์เนลที่จะบูตโดยค่าเริ่มต้นใน Linux นี่ไม่ใช่แค่ความชอบส่วนตัวของผู้ดูแลระบบที่พิถีพิถันเท่านั้น ในหลายกรณี มันคือความแตกต่างระหว่างการมีระบบที่เสถียรกับการเกิดข้อผิดพลาด ความไม่เข้ากันกับไดรเวอร์กราฟิก หรือความล้มเหลวของฮาร์ดแวร์รุ่นใหม่ โดยเฉพาะอย่างยิ่งใน Ubuntu และดิสทริบิวชันอื่นๆ ที่ใช้ Debian เป็นพื้นฐาน ซึ่งมีการใช้งานสาขาหลัก สาขา HWE และดิสทริบิวชันอื่นๆ ร่วมกัน เวอร์ชันทดลองการควบคุม GRUB2 นั้นแทบจะเป็นสิ่งที่จำเป็น

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

Ubuntu รองรับเคอร์เนลเวอร์ชันใดบ้าง และเหตุใดคุณจึงสนใจที่จะเปลี่ยนเคอร์เนลเหล่านั้น?

Ubuntu ดูแลโค้ดเคอร์เนลหลายสายพร้อมกันออกแบบมาสำหรับสถานการณ์ที่แตกต่างกัน การทำความเข้าใจสิ่งที่คุณติดตั้งไว้เป็นขั้นตอนแรกก่อนที่จะแก้ไขอะไรใน GRUB2 เพราะมันจะกำหนดว่าคุณจะเห็นรายการใดในเมนูบูต และรายการใดที่คุณต้องการใช้เป็นค่าเริ่มต้น

ในด้านหนึ่งนั้นมีสาขาคลาสสิกอยู่ ลินุกซ์ทั่วไปนี่คือเคอร์เนลที่มักติดตั้งมาล่วงหน้าในเซิร์ฟเวอร์และระบบที่ให้ความสำคัญกับความเสถียรเป็นอย่างยิ่ง เคอร์เนลเหล่านี้มีอายุการใช้งานยาวนาน ผ่านการทดสอบอย่างละเอียด และในเวอร์ชัน LTS เช่น Ubuntu 22.04 มักจะตรงกับซีรี่ส์เช่น 5.15.x หลักการของพวกเขานั้นชัดเจน: ลดความประหลาดใจ ลดความล้มเหลวหลังการอัปเดต

คอมพิวเตอร์เดสก์ท็อป Ubuntu ยังมีคุณสมบัติอื่นๆ อีกด้วย เคอร์เนล HWE (Hardware Enablement)ตัวอย่างเช่น การติดตั้งสาขาเหล่านี้จะใช้คำสั่งต่างๆ เช่น sudo apt install linux-generic-hwe-22.04 และพวกเขามุ่งเป้าไปที่เวอร์ชันเคอร์เนลที่ใหม่กว่า เช่น ซีรี่ส์ 6.5.x ในกรณีของ Ubuntu 22.04 LTS โดยมีจุดประสงค์เพื่อรองรับฮาร์ดแวร์สมัยใหม่ที่ยังไม่มีอยู่เมื่อ LTS รุ่นแรกวางจำหน่าย

หากคุณต้องการก้าวไปอีกขั้น ก็ยังมีอีกทางเลือกหนึ่งคือ ขอบ hweออกแบบมาเพื่อ สาขา "แนวหน้า" o ขอบเลือดออกติดตั้งโดยใช้คำสั่งเช่น sudo apt install linux-generic-hwe-22.04-edge โดยทั่วไปแล้ว มักมีเคอร์เนลเวอร์ชันใหม่กว่ารวมอยู่ด้วย (ตัวอย่างเช่น 6.7.x ใน Ubuntu 22.04 เอง) ซึ่งช่วยรองรับฮาร์ดแวร์รุ่นใหม่ล่าสุด แต่ก็แลกมาด้วยความเสี่ยงที่จะพบข้อผิดพลาด ความไม่เสถียร หรือพฤติกรรมแปลกๆ เพิ่มขึ้น

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

ตัวเลือกขั้นสูงของ GRUB2

เลือกเคอร์เนลอื่นชั่วคราวจากเมนู GRUB2

ก่อนที่เราจะเริ่มแก้ไขไฟล์ เราควรจำไว้ว่า... GRUB2 อนุญาตให้คุณเลือกเคอร์เนลอื่นได้ด้วยตนเองในระหว่างการบูตอยู่แล้วหากคุณสามารถเข้าถึงคอมพิวเตอร์และแป้นพิมพ์ที่เชื่อมต่ออยู่ได้ คุณก็มักไม่จำเป็นต้องมีสิ่งอื่นใดเพิ่มเติมเพื่อทดลองใช้งานเวอร์ชันพรีวิว

ในระบบ Ubuntu เมื่อเปิดเครื่อง คุณสามารถแสดงเมนู GRUB2 ได้โดยการกดปุ่ม Shift ค้างไว้ ในระหว่างขั้นตอนการบูตเริ่มต้น ในระบบ BIOS แบบดั้งเดิมนั้นใช้งานได้ดี ในระบบ UEFI โดยทั่วไปแล้ว การแสดงเมนูเริ่มต้นของ GRUB ก็เพียงพอแล้ว แต่แนวคิดก็เหมือนกัน คือ เพื่อดูรายการระบบและตัวเลือกต่างๆ

ในเมนูนั้น คุณมักจะเห็นรายการแรกเป็นประเภทดังกล่าว อูบุนตูซึ่งเป็นตัวที่บูตเคอร์เนลที่ติดตั้งล่าสุด ตามด้วยเมนูย่อยที่เรียกว่า ตัวเลือกขั้นสูงสำหรับ Ubuntu (ตัวเลือกขั้นสูง) ในเมนูย่อยนี้จะแสดงรายการเวอร์ชันเคอร์เนลที่มีอยู่ทั้งหมด โดยแต่ละเวอร์ชันจะมีโหมดปกติและโหมดกู้คืนของตัวเอง

  วิธีใช้คอมพิวเตอร์เป็นเราเตอร์ Windows 10: ง่ายและสะดวก

หากคุณประสบปัญหาเกี่ยวกับเคอร์เนลเวอร์ชั่นล่าสุด โดยปกติแล้ว วิธีที่ถูกต้องคือเข้าไปที่ "ตัวเลือกขั้นสูงสำหรับ Ubuntu" และเลือกเวอร์ชันเก่ากว่า (ตัวอย่างเช่น Ubuntu, with Linux 5.15.0-94-generic) แทนที่จะเป็นเวอร์ชัน 6.x ล่าสุด เมื่อบูตสำเร็จด้วยเวอร์ชันนั้นแล้ว คุณสามารถถอนการติดตั้งเคอร์เนลที่ขัดแย้งและสร้างการกำหนดค่าใหม่ได้ sudo update-grub.

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

แสดงรายการเคอร์เนลทั้งหมดที่ GRUB2 รู้จัก

เพื่อให้สามารถตั้งค่าเคอร์เนลเริ่มต้นได้อย่างน่าเชื่อถือ ก่อนอื่น คุณต้องทราบว่า GRUB2 ได้ตั้งค่ารายการเมนูใดบ้างการตรวจสอบเฉพาะแพ็กเกจที่ติดตั้งไว้เพียงอย่างเดียวนั้นไม่เพียงพอ เพราะตำแหน่งในเมนูอาจเปลี่ยนแปลงได้เมื่อมีการเพิ่มหรือลบเคอร์เนล

GRUB2 สร้างเมนูหลักในไฟล์ /boot/grub/grub.cfgแม้ว่าจะไม่แนะนำให้แก้ไขด้วยตนเอง (เพราะจะถูกเขียนทับเมื่อคุณเรียกใช้งาน) ปรับปรุงด้วงใช่ คุณสามารถอ่านเพื่อดึงข้อมูลออกมาได้ คำสั่งที่ใช้งานได้จริงมากในการแสดงรายการคือ:

grep -Ei 'submenu|menuentry ' /boot/grub/grub.cfg | sed -re «s/(.? )'(+)'.*/\1 \2/»

คำสั่งนี้ คำสั่งนี้จะแสดงรายการของรายการทั้งหมดและเมนูย่อย ซึ่งจะปรากฏขึ้นเมื่อเริ่มต้นระบบ คล้ายกับข้อความต่อไปนี้:

menuentry Ubuntu
submenu Advanced options for Ubuntu
menuentry Ubuntu, with Linux 6.7.0-15-generic
menuentry Ubuntu, with Linux 6.7.0-15-generic (recovery mode)
menuentry Ubuntu, with Linux 5.15.0-94-generic
menuentry Ubuntu, with Linux 5.15.0-94-generic (recovery mode)
menuentry Ubuntu, with Linux 5.15.0-92-generic
menuentry Ubuntu, with Linux 5.15.0-92-generic (recovery mode)
menuentry Memory test (memtest86+.elf)
menuentry Memory test (memtest86+.bin, serial console)
menuentry MS-DOS 5.x/6.x/Win3.1 (on /dev/sdf1)

รายการแรกมักจะเป็น "Ubuntu" ซึ่งใช้เคอร์เนลเวอร์ชั่นล่าสุดและภายในเมนูย่อย "ตัวเลือกขั้นสูง" เวอร์ชันที่ติดตั้งทั้งหมดจะปรากฏขึ้น โดยเรียงลำดับจากใหม่สุดไปเก่าสุด ในตัวอย่างนี้ หากคุณต้องการบูตด้วยเวอร์ชันนี้เสมอ Ubuntu, with Linux 5.15.0-94-genericรายการนั้นจะอยู่ในเมนูย่อยขั้นสูง ไม่ใช่เมนูหลัก

รายชื่อรายการใน GRUB2

ตั้งค่าเคอร์เนลเฉพาะโดยใช้ตำแหน่งในเมนู (ดัชนี GRUB_DEFAULT)

รูปแบบคลาสสิกของ ระบุว่า GRUB2 ต้องการบูตเคอร์เนลใดเป็นค่าเริ่มต้น วิธีการนี้เกี่ยวข้องกับการระบุหมายเลขดัชนี (ตำแหน่ง) ของรายการ หรือแม้แต่การใช้ "เมนูย่อย > รายการ" เมื่อเวอร์ชันที่ต้องการอยู่ใน "ตัวเลือกขั้นสูงสำหรับ Ubuntu"

ไฟล์ที่ควบคุมสิ่งนี้คือ / etc / default / ด้วงก่อนทำการเปลี่ยนแปลงใดๆ ขอแนะนำอย่างยิ่งให้สร้างข้อมูลสำรองอย่างรวดเร็วเผื่อกรณีที่คุณต้องการย้อนกลับไปยังสถานะก่อนหน้าได้อย่างง่ายดาย คุณสามารถทำได้โดยใช้คำสั่งต่อไปนี้:

sudo cp / etc / default / grub /etc/default/grub.bak

ถัดไป แก้ไขด้วยโปรแกรมแก้ไขที่คุณชื่นชอบ เช่น Nano:

sudo nano / etc / default / grub

ข้างในคุณจะเห็นเส้นแบบนี้ GRUB_DEFAULT=0ซึ่งหมายความว่ารายการแรกในเมนูหลัก (ดัชนีศูนย์) จะถูกนำมาใช้ หากเคอร์เนลที่คุณต้องการอยู่ในเมนูย่อย "ตัวเลือกขั้นสูง"คุณสามารถสั่งให้ GRUB เข้าสู่เมนูย่อยนั้นและเลือกตำแหน่งที่ต้องการโดยใช้สัญลักษณ์ดังกล่าวได้ submenú>entrada.

จากตัวอย่างก่อนหน้านี้ หาก "ตัวเลือกขั้นสูงสำหรับ Ubuntu" เป็นตัวเลือกที่ 1 ในเมนูหลัก และในเมนูย่อยนั้น "Ubuntu พร้อม Linux 5.15.0-94-generic" เป็นตัวเลือกที่สาม (นับจากศูนย์และข้ามโหมดการกู้คืน) คุณสามารถเขียนได้ดังนี้:

GRUB_DEFAULT="1>3"

หลักการนั้นง่าย แต่คุณต้องใส่ใจกับดัชนีด้วยระดับแรกหมายถึงตำแหน่งของเมนูย่อยในเมนูหลัก และระดับที่สองหมายถึงตำแหน่งของรายการภายในเมนูย่อยนั้น นอกจากนี้ โปรดจำไว้ว่ารายการใน "โหมดกู้คืน" มักจะเรียงลำดับสลับกัน ดังนั้นตัวเลือกปกติจะใช้หมายเลขคี่ และตัวเลือกการกู้คืนจะใช้หมายเลขคู่

เมื่อคุณเปลี่ยนแล้ว GRUB_DEFAULTบันทึกไฟล์ (ใน Nano) Ctrl + O แล้ว Ctrl + X) และใช้การเปลี่ยนแปลงโดยการสร้างการกำหนดค่า GRUB ใหม่ด้วยคำสั่ง:

sudo update-grub

เบื้องหลังสิ่งนี้ รีสตาร์ทระบบด้วย sudo reboot และเมื่อบูตเสร็จแล้ว ระบบจะตรวจสอบว่าโหลดเคอร์เนลเวอร์ชันใด:

uname -a

ผลลัพธ์ควรแสดงให้คุณเห็น ตัวอย่างเช่น Linux ... 5.15.0-94-generic ... ซึ่งแสดงว่าขณะนี้คุณกำลังใช้เวอร์ชันที่คุณตั้งค่าโดยใช้ดัชนีใน GRUB_DEFAULT.

ใช้ชื่อรายการเมนูแทนดัชนี (โหมด "บันทึก")

วิธีการสร้างดัชนีมีปัญหาสำคัญอย่างหนึ่ง: ตำแหน่งจะเปลี่ยนแปลงเมื่อคุณติดตั้งหรือถอนการติดตั้งเคอร์เนลนั่นหมายความว่าการอัปเดตเคอร์เนลอาจทำให้ของคุณ 1>3 หยุดการกำหนดเป้าหมายไปที่เคอร์เนลที่ถูกต้อง ซึ่งเป็นสิ่งที่คุณควรหลีกเลี่ยงหากต้องการความเสถียรในระยะยาว

  PikaOS คือระบบปฏิบัติการ Linux ที่ทำให้การเล่นเกมเป็นเรื่องง่าย

GRUB2 นำเสนอทางเลือกที่แข็งแกร่งกว่ามาก: ใช้ชื่อเมนูที่ถูกต้องเป็นค่าเริ่มต้นด้วยวิธีนี้ ตราบใดที่รายการนั้นยังคงอยู่ grub.cfgแม้ว่าจะมีการเพิ่มเวอร์ชันใหม่เข้าไปด้านบนหรือด้านล่างของรายการ เวอร์ชันนั้นก็จะยังคงถูกเลือกต่อไป

โดยทั่วไปแล้ว แนวคิดมีดังนี้: ขั้นแรก คุณต้องค้นหาชื่อเต็มของรายการเมนูที่คุณต้องการดังที่ปรากฏใน /boot/grub/grub.cfg (ตัวอย่างเช่น Ubuntu, with Linux 6.8.0-60-generic) จากนั้นคุณกำหนดค่า GRUB ให้ใช้งานเป็น รายการที่บันทึกไว้ ค่าเริ่มต้น.

หากต้องการค้นหาชื่อที่ถูกต้อง คุณสามารถเปิดไฟล์การกำหนดค่าด้วยโปรแกรมแก้ไขหรือโปรแกรมดูไฟล์ เช่น:

sudo นาโน /boot/grub/grub.cfg

เมื่อเข้าไปข้างใน ใช้ Ctrl+W ใน Nano เพื่อค้นหาสตริงที่ตรงกับเวอร์ชันเคอร์เนล ที่คุณสนใจ (ตัวอย่างเช่น "6.8.0-60-generic") ในทำนองเดียวกันนี้ menuentry คุณจะเห็นชื่อเรื่องเต็มๆ ประมาณนี้:

menuentry 'Ubuntu, with Linux 6.8.0-60-generic' ...

ทีนี้ แทนที่จะเล่นกับดัชนีแล้ว... คุณสามารถสั่งให้ GRUB ใช้ชื่อนั้นเป็นชื่อที่เลือกไว้ได้ขั้นตอนทั่วไปประกอบด้วยการดำเนินการคำสั่งต่างๆ เช่น คำสั่งต่อไปนี้:

sudo grub-set-default «Ubuntu, with Linux 6.8.0-60-generic»

คำสั่งนี้กำหนดค่าที่ระบุให้เป็น "ค่าเริ่มต้นที่บันทึกไว้" เพื่อยืนยันว่าได้มีการใช้งานอย่างถูกต้อง คุณสามารถตรวจสอบไฟล์สภาพแวดล้อมของ GRUB ได้:

sudo grub-editenv list

คุณควรเห็นบรรทัดลักษณะนี้:

saved_entry=Ubuntu, with Linux 6.8.0-60-generic

นอกจากนี้ ยังเป็นไปได้ว่า ขึ้นอยู่กับการตั้งค่าก่อนหน้านี้ กำลังใช้ตัวเลือก GRUB_DEFAULT=saved en /etc/default/grubซึ่งบอกให้ GRUB ใช้ค่าสุดท้ายเสมอ รายการที่บันทึกไว้ ได้จัดตั้งขึ้นแล้ว ไม่ว่าในกรณีใดก็ตาม ในขณะที่ saved_entry หากตรงกับเวอร์ชันเคอร์เนลที่คุณต้องการ ระบบจะยังคงบูตเวอร์ชันนั้นโดยอัตโนมัติต่อไป

หลังจากใช้การเปลี่ยนแปลงเหล่านี้ สร้างไฟล์การกำหนดค่าขึ้นใหม่ด้วย sudo update-grubรีสตาร์ทระบบและยืนยันอีกครั้งด้วย uname -a โดยที่คุณเริ่มต้นด้วยเวอร์ชันที่กำหนดไว้เป็นค่าเริ่มต้น

กำหนดค่า GRUB2 ด้วยเคอร์เนลที่บันทึกไว้

การเปลี่ยนเวอร์ชันเคอร์เนลใน Ubuntu ไปเป็นเวอร์ชันเฉพาะ (การติดตั้งและการดาวน์เกรด)

ในหลายกรณี คุณไม่เพียงแค่ต้องการเลือกเคอร์เนลที่ติดตั้งไว้ล่วงหน้าเท่านั้น แต่... เปลี่ยนจากเวอร์ชันปัจจุบันของคุณเป็นเวอร์ชันเฉพาะสาเหตุอาจเป็นเพราะแอปพลิเคชันของคุณต้องการแบบนั้น หรือไดรเวอร์รองรับเฉพาะซีรี่ส์ใดซีรี่ส์หนึ่ง หรือการอัปเดตล่าสุดทำให้ระบบของคุณเสียหายไปครึ่งหนึ่ง

ขั้นตอนแรกควรเป็นเสมอ ทราบว่าขณะนี้คุณกำลังใช้เคอร์เนลเวอร์ชันใดอยู่คุณสามารถใช้คำสั่งต่อไปนี้เพื่อทำเช่นนี้:

uname-r

O ดี:

uname -a

ซึ่งจะส่งผลลัพธ์ออกมาประมาณนี้:

Linux web 6.8.0-85-generic #85~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC ... x86_64 GNU/Linux

เมื่อคุณรู้แล้วว่าคุณอยู่ที่ไหน ขั้นตอนต่อไปคือ ตรวจสอบดูว่ามีเคอร์เนลใดบ้างในที่เก็บในสภาพแวดล้อม Ubuntu/Debian โดยทั่วไปจะทำได้โดยการสอบถามแพ็กเกจต่างๆ linux-image จากที่เก็บซอฟต์แวร์ โดยกรองตามเวอร์ชันที่คุณสนใจ เมื่อคุณพบเวอร์ชันที่ต้องการแล้ว คุณสามารถติดตั้งได้โดยตรงด้วย apt หรือคอมไพล์ด้วยตนเอง (ดูเพิ่มเติม) วิธีการค้นหาการกำหนดค่าใน `make menuconfig`) ตามที่คุณต้องการ

ตัวอย่างเช่น ถ้าคุณต้องการลงจาก 6.8.0 85-ทั่วไป a 6.8.0 60-ทั่วไปคุณจะต้องติดตั้งแพ็กเกจที่เกี่ยวข้องโดยใช้คำสั่งที่เหมาะสม และยืนยันด้วยตัวอักษร "S" เมื่อเสร็จสิ้น ฉลาด ระบบจะถามคุณว่าต้องการดำเนินการติดตั้งต่อหรือไม่ หลังจากกระบวนการเสร็จสิ้นแล้ว จากนั้นคุณจะมีเวอร์ชันเคอร์เนลนั้นพร้อมใช้งานสำหรับการบูตอย่างไรก็ตาม GRUB จะยังคงเลือกเวอร์ชันล่าสุดต่อไปจนกว่าคุณจะเปลี่ยนการตั้งค่าตามที่อธิบายไว้

หลังจากติดตั้งเคอร์เนลที่ต้องการแล้ว รีสตาร์ทคอมพิวเตอร์ เพื่อให้สามารถกำหนดให้เป็นค่าเริ่มต้นได้โดยใช้วิธีใดวิธีหนึ่งข้างต้น (โดยดัชนีหรือโดยชื่อ) แล้วแต่ว่าวิธีใดสะดวกและเหมาะสมที่สุดสำหรับกรณีของคุณ

ตั้งค่าเคอร์เนลเฉพาะจากเมนูย่อย "ตัวเลือกขั้นสูง" เป็นค่าเริ่มต้น

ในระบบปฏิบัติการอย่าง Ubuntu 22 และ 24 เมื่อมีการเพิ่มเวอร์ชันเคอร์เนลที่ต่ำกว่าเวอร์ชันปัจจุบัน เวอร์ชันนั้นไม่ได้ถูกตั้งค่าเป็นรายการหลักแต่ถูกเพิ่มเข้าไปในเมนูย่อย ตัวเลือกขั้นสูงสำหรับ Ubuntuดังนั้น แม้ว่าคุณจะติดตั้งเวอร์ชัน 6.8.0-60 ที่ต่ำกว่า 6.8.0-85 แต่เมื่อรีสตาร์ทเครื่อง คุณก็จะยังคงบูตด้วยเวอร์ชัน 85 อยู่ดี

เพื่อให้ GRUB2 จะเลือกเวอร์ชันที่คุณต้องการจากเมนูย่อยโดยอัตโนมัติคุณจำเป็นต้องทราบตำแหน่งที่แน่นอนของมัน อีกครั้ง คำสั่งที่แสดงรายการ menuentry y submenu มันช่วยให้คุณเห็นโครงสร้างและลำดับตัวเลขที่ GRUB จะใช้

  ส่วนแบ่งการตลาดปัจจุบันของ Windows, macOS และ Linux: การวิเคราะห์และแนวโน้ม

ลองนึกภาพว่าหลังจากรันคำสั่งแสดงรายการแล้ว คุณพบว่าเคอร์เนลเป้าหมายของคุณ (ตัวอย่างเช่น "Ubuntu, with Linux 6.8.0-60-generic") ปรากฏอยู่ในตำแหน่งที่สี่ของเมนูย่อย "ตัวเลือกขั้นสูง" และเมนูย่อยนี้เป็นเมนูแรกหลังจากรายการหลัก ในกรณีนั้น การรวมกันของดัชนี โดยเริ่มจากศูนย์ จะเป็น 1> 2 (เมนูย่อยอยู่ในตำแหน่งที่ 1 รายการอยู่ในตำแหน่งที่ 2 ภายในเมนูย่อยนั้น)

ในไฟล์ /etc/default/grubจากนั้นคุณจะต้องแก้ไขบรรทัดนั้น:

GRUB_DEFAULT=0

โดย:

GRUB_DEFAULT="1>2"

หลังจากบันทึกการเปลี่ยนแปลงและเรียกใช้งานแล้ว sudo update-grub, ครั้งต่อไปที่คุณบูตเครื่อง เคอร์เนลเฉพาะนั้นจะถูกเลือกโดยอัตโนมัติ ภายใน "ตัวเลือกขั้นสูง" โดยไม่ต้องเข้าเมนูย่อยด้วยตนเองทุกครั้ง

หลังจากรีสตาร์ทแล้ว คุณสามารถตรวจสอบได้ว่าทุกอย่างเป็นไปด้วยดีหรือไม่ uname-r o uname -aตรวจสอบว่าเวอร์ชันเคอร์เนลที่ใช้งานอยู่ตรงกับเวอร์ชันที่คุณตั้งค่าไว้หรือไม่ GRUB_DEFAULT.

การแก้ไขการตั้งค่า GRUB2

ถอนการติดตั้งเคอร์เนล HWE และ edge แล้วกลับไปใช้เวอร์ชัน stable

เมื่อคุณมี บูตระบบด้วยเคอร์เนลเวอร์ชันเสถียรจากสาขา linux-generic (ตัวอย่างเช่น ซีรี่ส์ 5.15.x บน Ubuntu 22.04 LTS) ขั้นตอนต่อไปที่สมเหตุสมผลหากเคอร์เนล HWE หรือเคอร์เนลรุ่นใหม่ล่าสุดทำให้คุณมีปัญหา คือการล้างสาขาเหล่านั้นออกจากระบบ

คุณสามารถใช้คำสั่งต่อไปนี้เพื่อถอนการติดตั้ง HWE metapackages ได้ ฉลาดล้าง โดยใช้สัญลักษณ์ตัวแทน (wildcard) ที่ครอบคลุมทั้งสาขา เช่นนี้:

sudo apt purge linux-generic-hwe-22.04*

หลังจากลบเมตาแพ็กเกจเหล่านั้นแล้ว คุณอาจต้องการดำเนินการดังต่อไปนี้ ลบอิมเมจของเคอร์เนลเวอร์ชันใหม่ๆ ที่คุณไม่ต้องการใช้แล้วด้วยตัวอย่างเช่น หากคุณต้องการกำจัดเคอร์เนลเวอร์ชันที่สูงกว่า 6.x ทั้งหมด แล้วใช้เคอร์เนลซีรีส์ 5.x แทน คุณสามารถใช้คำสั่งเช่นนี้ได้:

sudo apt purge linux-image-6*

การล้างข้อมูลประเภทนี้จะลบแพ็กเกจอิมเมจเคอร์เนลที่มีชื่อขึ้นต้นด้วย "linux-image-6" ดังนั้นจึงควรตรวจสอบสิ่งที่คุณกำลังจะถอนการติดตั้งอย่างละเอียดก่อนยืนยัน อย่าลืมว่า คุณต้องรักษาอย่างน้อยหนึ่งสาขาที่มีเสถียรภาพและใช้งานได้โดยปกติ ลินุกซ์ทั่วไปเพราะหากไม่มีมัน ระบบอาจหมดเคอร์เนลที่สามารถบูตได้

หลังจากทำการล้างข้อมูลเคอร์เนลแล้ว สิ่งสำคัญคือต้องดำเนินการดังต่อไปนี้ อัปเดตการตั้งค่า GRUB เพื่อหยุดการอ้างอิงรายการที่ไม่มีอยู่อีกต่อไปมิเช่นนั้น คุณอาจพบตัวเลือกเมนูที่ชี้ไปยังเคอร์เนลที่ถูกลบไปแล้ว หากต้องการสร้างไฟล์การกำหนดค่าขึ้นใหม่ ให้ใช้คำสั่งต่อไปนี้:

sudo update-grub

หากคุณต้องการให้แน่ใจว่าสาขาทั่วไปยังคงติดตั้งอยู่ คุณสามารถบังคับติดตั้งได้โดยใช้คำสั่ง:

sudo apt install linux-generic

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

ขั้นตอนสุดท้าย หากคุณได้เปลี่ยนแปลง GRUB_DEFAULT ไปยังดัชนีหรือชื่อเฉพาะเพื่อแก้ไขปัญหาที่เกิดจาก HWE/edge คุณสามารถคืนค่ากลับเป็นค่าเริ่มต้นได้ (โดยปกติ 0) แก้ไขอีกครั้ง /etc/default/grub:

sudo nano / etc / default / grub

และปล่อยบรรทัดไว้ดังนี้:

GRUB_DEFAULT="0"

จากนั้นบันทึกและเรียกใช้ sudo update-grub และเริ่มต้นใหม่ด้วย sudo reboot เพื่อให้ระบบบูตได้ตามปกติด้วยเคอร์เนลเวอร์ชั่นล่าสุดจากสาขา ลินุกซ์ทั่วไป ที่คุณได้ติดตั้ง

ท้ายที่สุดแล้ว การควบคุมว่าเคอร์เนลใดจะบูตโดยใช้ GRUB2 จะกลายเป็นเครื่องมือพื้นฐานสำหรับผู้ใช้ Ubuntu, Debian หรือระบบปฏิบัติการที่พัฒนาต่อยอดจากระบบเหล่านั้น ที่ไม่ต้องการพึ่งพาการอัปเดตล่าสุด โดยการรวมการติดตั้งเวอร์ชันเฉพาะ การใช้ "ตัวเลือกขั้นสูง" การเลือกตามดัชนีหรือชื่อเมนู และการล้างสาขาที่มีปัญหาคุณสามารถปรับแต่งแกนหลักของระบบให้ตรงกับความต้องการที่แท้จริงของคุณได้ ไม่ว่าจะเป็นความเสถียรที่มั่นคงบนเซิร์ฟเวอร์ ความเข้ากันได้สูงสุดบนอุปกรณ์ที่ทันสมัย ​​หรือการผสมผสานที่ลงตัวระหว่างทั้งสองอย่างในสภาพแวดล้อมเดสก์ท็อปที่คุณไม่ต้องการเสี่ยงต่อการใช้งานประจำวันของคุณบนเคอร์เนลที่ยังอยู่ในระหว่างการทดลอง

ไม่แสดงเมนู GRUB เมื่อเปลี่ยน GRUB_TIMEOUT=
บทความที่เกี่ยวข้อง:
GRUB ไม่แสดงเมนูหลังจากเปลี่ยน GRUB_TIMEOUT: สาเหตุและวิธีแก้ไขที่ชัดเจน