ฉันจะบูตด้วยเคอร์เนลเวอร์ชั่นที่เก่ากว่าได้อย่างไร


55

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

คำตอบ:


58

วิธีที่ง่ายที่สุดในการแสดง Grub ของคุณคือการกดปุ่มค้างไว้ในSHIFTขณะที่ทำการบู๊ต

คุณสามารถแสดง Grub ได้โดยไม่ต้องบูทเคอร์เนลใด ๆ :

gksudo gedit /etc/default/grub

เปลี่ยนGRUB_TIMEOUTเป็น -1 และแสดงความคิดเห็นGRUB_HIDDEN_TIMEOUT

จบด้วยการวิ่ง

sudo update-grub

5
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported. ฉันแสดงความคิดเห็นGRUB_HIDDEN_TIMEOUTและตั้งค่าGRUB_TIMEOUT=0
acidghost

เพื่อให้ชัดเจน: GRUB_HIDDEN_TIMEOUT เป็นตัวแปรสภาพแวดล้อมที่ต้องตั้งค่าเมื่อเรียกใช้ 'update-grub' หรือไม่
Jonathan Hartley

1
@JonathanHartley GRUB_HIDDEN_TIMEOUTถูกกำหนดไว้ใน/etc/default/grub
wjandrea

20

กดปุ่ม Shift ค้างไว้ขณะบู๊ตจะแสดงเมนูด้วง ตอนนี้คุณสามารถเลือกรุ่นเคอร์เนลที่เก่ากว่าได้แล้ว

สำหรับการเลือกเคอร์เนลเก่าเป็นเคอร์เนลเริ่มต้นโปรดดูโพสต์นี้


2
ในกรณีของฉัน (Ubuntu 16.04) มันเปลี่ยนไป การเปลี่ยนที่ถูกต้องไม่ทำงาน
บ๊อบ

1
เกิดอะไรขึ้นถ้าเมล็ดที่แก่กว่านั้นไม่ปรากฏในด้วง (ถูกลบออก) นี่หมายความว่าเมล็ดเหล่านี้ไม่สามารถเข้าถึงได้หรือไม่?
Kalamalka Kid

1
ฉันต้องใช้การหลบหนี (แทนที่จะเปลี่ยน)
Jonathan King เมื่อ

5

ในขณะที่บูตเมื่อ GRUB ปรากฏขึ้นพร้อมกับรายการให้เลือกรายการที่สองนั่นคือตัวเลือกขั้นสูงสำหรับ Ubuntu ที่นั่นคุณสามารถดูรุ่นเคอร์เนลรุ่นเก่า ๆ ที่ติดตั้งไว้ก่อนหน้านี้ได้ มิฉะนั้นคุณจะไปที่grub.cfgและวางเคอร์เนลเวอร์ชันที่คุณต้องการด้านบนของรายการเคอร์เนลที่ติดตั้งในปัจจุบัน ทั้งสองวิธีใช้งานได้


3

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

  1. รีบูทพีซีของคุณด้วยปุ่ม Shift เพื่อแสดง GRUB หลังจาก BIOS เริ่มทำงาน คุณจะเห็นสิ่งที่ชอบ: หน้าเริ่มต้นของด้วง

  2. เลือก "Advanced options สำหรับ Ubuntu" และจดจำดัชนีของบรรทัดเมนูนี้ (นับเริ่มจาก 0) บนดัชนีรูปภาพคือ 1

เลือกเคอร์เนลคอนกรีต

  1. เลือกเคอร์เนลคอนกรีตสำหรับบูตและจดจำดัชนีของบรรทัดเมนูนี้ (นับเริ่มจาก 0) บนดัชนีรูปภาพของเคอร์เนลที่เลือกคือ 2

  2. ระบบเริ่มต้น การดำเนินการนี้ใช้สำหรับการบูตครั้งเดียวบนเคอร์เนลคอนกรีต หากคุณต้องการเริ่มต้นจากเคอร์เนลคอนกรีตตลอดเวลาคุณควรทำตามขั้นตอนต่อไป:

4.1 เปิดและแก้ไขไฟล์ติดตั้ง GRUB:

sudo nano /etc/default/grub

4.2 ค้นหาบรรทัด GRUB_DEFAULT = ... (โดยค่าเริ่มต้น GRUB_DEFAULT = 0) และตั้งค่าในพา ธ เมนูเครื่องหมายคำพูดไปยังเคอร์เนลคอนกรีต (จำดัชนีเมนูจากขั้นตอนที่ 2 และ 3) ในระบบดัชนีแรกของฉันคือ 1 และที่สองคือ 2 ฉันตั้งค่าเป็น GRUB_DEFAULT

GRUB_DEFAULT="1>2"

บันทึกไฟล์.

4.3 อัปเดตข้อมูล GRUB เพื่อใช้การเปลี่ยนแปลง:

sudo update-grub

4.4 หลังจากรีบูตคุณจะบูตเคอร์เนลโดยอัตโนมัติโดยเลือกเมนูพา ธ ตัวอย่างบนเครื่องของฉัน 1 -> 2

4.5 ตรวจสอบเวอร์ชั่นเคอร์เนลหลังจากรีบู๊ต:

uname -r


2

โดยhttps://help.ubuntu.com/community/Grub2 :

GRUB_HIDDEN_TIMEOUT = 0

การตั้งค่านี้กำหนดระยะเวลาที่หน้าจอที่ไม่มีเมนูด้วง 2 จะปรากฏขึ้น ในขณะที่หน้าจอว่างเปล่าผู้ใช้สามารถกดปุ่มใดก็ได้เพื่อแสดงเมนู

พฤติกรรมเริ่มต้นคือการซ่อนเมนูหากมีระบบปฏิบัติการเพียงระบบเดียวเท่านั้น หากผู้ใช้ที่มีเฉพาะ Ubuntu ต้องการแสดงเมนูให้วางสัญลักษณ์ # ที่จุดเริ่มต้นของบรรทัดนี้เพื่อปิดการใช้งานคุณสมบัติเมนูที่ซ่อนอยู่

ดาวน์เกรดเคอร์เนล: วิธีดาวน์เกรดเคอร์เนลที่ 11.10

อัพเกรดเคอร์เนล: ฉันจะอัพเกรดเคอร์เนลเป็น 3.1 ได้อย่างไร


1

กรุณาติดตั้งเคอร์เนลก่อนหน้าด้วยคำสั่งต่อไปนี้:

sudo apt-get install linux-image-3.0.0-12-generic linux-headers-3.0.0-12-generic

จากนั้นรีบูท คุณจะได้รับแจ้งให้เลือกเคอร์เนลของคุณ


1
  1. ทันทีหลังจากหน้าจอสแปลช BIOS / UEFI ในระหว่างการบู๊ตด้วย BIOS ให้กดปุ่มค้างไว้อย่างรวดเร็วShiftซึ่งจะทำให้เมนู GNU GRUB ปรากฏขึ้น (ถ้าคุณเห็นโลโก้อูบุนตูคุณพลาดจุดที่คุณสามารถเข้าสู่เมนูด้วง) ด้วยการกด UEFI (อาจจะหลายครั้ง) Escปุ่มเพื่อเข้าสู่เมนูด้วง บางครั้งหน้าจอสแปลชของผู้ผลิตเป็นส่วนหนึ่งของ bootloader ของ Windows ดังนั้นเมื่อคุณเปิดเครื่องมันจะตรงไปที่หน้าจอ GRUB จากนั้นกดShiftไม่จำเป็น

  2. จากหน้าจอด้วงเลือกตัวเลือกขั้นสูงสำหรับอูบุนตูEnterและกด

    ป้อนคำอธิบายรูปภาพที่นี่

  3. หน้าจอสีม่วงใหม่จะปรากฏขึ้นเพื่อแสดงรายการของเมล็ด ใช้ปุ่ม↑และ to เพื่อเลือกรายการที่ถูกเน้น กด Enter เพื่อบูตเคอร์เนลที่เลือก 'e' เพื่อแก้ไขคำสั่งก่อนการบู๊ตหรือ 'c' สำหรับบรรทัดคำสั่ง กด Esc เพื่อกลับสู่เมนูก่อนหน้า

    ป้อนคำอธิบายรูปภาพที่นี่


1
แม้ว่าจะเหมือนกับคำตอบที่สั้นกว่านี้มาก: askubuntu.com/a/584738/307523คำตอบของคุณไปได้ไกลยิ่งขึ้นด้วยภาพหน้าจอและShiftกุญแจเพื่อทำให้ด้วงด้วงในตอนแรก
WinEunuuchs2Unix

0

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

Grub Version: 2.02~beta2-36ubuntu3.22


         ┌───────────┤ Use arrow, page, home & end keys. Tab toggle option ├────────────┐
         │ Menu No.     ----------- Menu Name -----------                               │ 
         │                                                                              │ 
         │  1>3  Ubuntu, with Linux 4.15.0-55-generic                                  ↑│ 
         │  1>6  Ubuntu, with Linux 4.15.0-54-generic                                  ▒│ 
         │  1>9  Ubuntu, with Linux 4.14.134-0414134-generic                           ▒│ 
         │  1>12 Ubuntu, with Linux 4.14.120-0414120-generic                           ▮│ 
         │  1>15 Ubuntu, with Linux 4.14.114-0414114-generic                           ▒│ 
         │  1>18 Ubuntu, with Linux 4.14.110-0414110-generic                           ▒│ 
         │  1>21 Ubuntu, with Linux 4.14.98-041498-generic                             ▒│ 
         │  1>24 Ubuntu, with Linux 4.14.89-041489-generic                             ▒│ 
         │  1>27 Ubuntu, with Linux 4.14.78-041478-generic                             ▒│ 
         │  1>30 Ubuntu, with Linux 4.14.70-041470-generic                             ▒│ 
         │  1>33 Ubuntu, with Linux 4.4.0-157-generic                                  ▒│ 
         │  1>36 Ubuntu, with Linux 3.16.60-031660-generic                             ▒│ 
         │  1>36 Ubuntu, with Linux 3.16.60-031660-generic                             ▒│ 
         │  2    Ubuntu 18.04.1 LTS (18.04) (on /dev/nvme0n1p10)                       ▒│ 
         │  3    Advanced options for Ubuntu 18.04.1 LTS (18.04) (on /dev/nvme0n1p10)  ▒│ 
         │  3>0  Ubuntu (on /dev/nvme0n1p10)                                           ↓│ 
         │                                                                              │ 
         │                                                                              │ 
         │                     [Display Grub Boot]            Exit                      │ 
         │                                                                              │ 
         └──────────────────────────────────────────────────────────────────────────────┘ 



หมายเหตุ:ในตัวอย่างgrub-menu.sh shortนี้ใช้เพื่อเรียกสคริปต์ shortพารามิเตอร์ยับยั้งเส้นเหล่านี้:

     │  1>10 Ubuntu, with Linux 4.14.134-0414134-generic (upstart)                 ▒│ 
     │  1>11 Ubuntu, with Linux 4.14.134-0414134-generic (recovery mode)           ▒│ 

ปุ่มควบคุม

หลังจากเลื่อนดูรายการต่างๆ (คุณสามารถใช้ล้อเลื่อนของเมาส์หรือปุ่มลูกศร) กดEscapeเพื่อกลับไปที่บรรทัดคำสั่ง

หากคุณกดEnterคำสั่งเชื่อมโยง grub สำหรับรายการจะปรากฏขึ้น:

menuentry 'Ubuntu, with Linux 4.14.134-0414134-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.14.134-0414134-generic-advanced-b40b3925-70ef-447f-923e-1b05467c00e7' {
recordfail
savedefault
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root b40b3925-70ef-447f-923e-1b05467c00e7
else
search --no-floppy --fs-uuid --set=root b40b3925-70ef-447f-923e-1b05467c00e7
fi
echo 'Loading Linux 4.14.134-0414134-generic ...'
linux /boot/vmlinuz-4.14.134-0414134-generic root=UUID=b40b3925-70ef-447f-923e-1b05467c00e7 ro noplymouth fastboot acpiphp.disable=1 pcie_aspm=force vt.handoff=7 i915.fastboot=1 nopti nospectre_v2 nospec mem_sleep_default=deep
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.14.134-0414134-generic
}
Press <Enter> to continue

การอัพเดตด้วงเพื่อบู๊ตเคอร์เนลก่อนหน้า

ชุดคำสั่ง grub มีอยู่สำหรับแต่ละรายการเมนู รายการที่รวบรวมจะถูกเก็บไว้ใน/boot/grub/grub.cfgไฟล์

ในตัวอย่างนี้เราต้องการหมายเลขเมนู `1> 9> ตั้งเป็นค่าเริ่มต้นดังนั้นเราจึงใช้:

sudo -H gedit /etc/default/grub

และค้นหาบรรทัดนี้:

GRUB_DEFAULT=0

และเปลี่ยนเป็น:

GRUB_DEFAULT="1>9"

จากนั้นบันทึกไฟล์และเรียกใช้

sudo update-grub
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.