Làm cách nào để khởi động với phiên bản kernel cũ hơn?


55

Hạt nhân mới nhất đang gây ra sự cố với âm thanh của tôi, hoạt động tốt với phiên bản cũ hơn. Vì tôi chỉ cài đặt Ubuntu, Grub không được hiển thị khi khởi động. Làm cách nào tôi có thể tự chọn phiên bản kernel trong khi khởi động?

Câu trả lời:


58

Cách đơn giản nhất để hiển thị Grub của bạn là nhấn và giữ SHIFTnút trong khi khởi động.

Thay vào đó, bạn luôn có thể hiển thị Grub mà không cần khởi động bất kỳ kernel cụ thể nào:

gksudo gedit /etc/default/grub

thay đổi GRUB_TIMEOUTthành -1 và nhận xétGRUB_HIDDEN_TIMEOUT

kết thúc bằng cách chạy

sudo update-grub

5
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported. Tôi đã nhận xét GRUB_HIDDEN_TIMEOUTvà thiết lậpGRUB_TIMEOUT=0
axitghost

Nói rõ hơn: GRUB_HIDDEN_TIMEOUT là biến môi trường cần được đặt khi chạy 'update-grub'?
Jonathan Hartley

1
@JonathanHartley GRUB_HIDDEN_TIMEOUTđược định nghĩa trong/etc/default/grub
wjandrea

20

Giữ phím shift trong khi khởi động, sẽ hiển thị menu Grub. Bây giờ bạn có thể chọn một phiên bản kernel cũ hơn.

Để chọn kernel cũ làm kernel mặc định, vui lòng xem bài đăng này


2
Trong trường hợp của tôi (Ubuntu 16.04), nó đã bị dịch chuyển trái. Ca làm việc đúng không hoạt động.
Bob

1
Điều gì nếu các hạt nhân cũ hơn không được hiển thị trong grub (chúng đã bị loại bỏ)? Điều này có nghĩa là những hạt nhân này không thể truy cập?
Kalamalka Kid 7/12/2016

1
Tôi đã phải sử dụng lối thoát (thay vì thay đổi)
Jonathan King

5

Trong khi khởi động khi GRUB xuất hiện với các mục, hãy chọn mục thứ hai, tức là Tùy chọn nâng cao cho Ubuntu , bạn có thể thấy các phiên bản kernel cũ hơn đã được cài đặt trước đó, bạn có thể chọn một trong số chúng phù hợp với bạn. Nếu không, bạn vào grub.cfg và dán phiên bản kernel yêu cầu của bạn lên trên mục nhập kernel hiện được cài đặt. Trong cả hai cách nó hoạt động


3

Nếu bạn có một vài Kernels trong hệ thống, bạn có thể đặt thủ công phiên bản Kernel nào sẽ bắt đầu:

  1. Khởi động lại PC của bạn bằng cách nhấn nút Shift để hiển thị GRUB sau khi BIOS sẽ khởi động. Bạn sẽ thấy một cái gì đó như: trang bắt đầu GRUB

  2. Chọn "Tùy chọn nâng cao cho Ubuntu" và ghi nhớ chỉ mục của dòng menu này (số bắt đầu từ 0) Trên chỉ mục hình ảnh là 1

Chọn hạt nhân bê tông

  1. Chọn kernel cụ thể để khởi động và cũng ghi nhớ chỉ mục của dòng menu này (đếm bắt đầu từ 0) Trên chỉ mục hình ảnh của Kernel được chọn là 2

  2. Hệ thống khởi động. Hành động này là cho một khởi động trên kernel cụ thể. Nếu bạn muốn bắt đầu từ Kernel cụ thể mọi lúc, bạn nên thực hiện các bước tiếp theo:

4.1. Mở và chỉnh sửa tệp cài đặt GRUB:

sudo nano /etc/default/grub

4.2. Tìm dòng GRUB_DEFAULT = ... (theo mặc định GRUB_DEFAULT = 0) và đặt trong đường dẫn menu trích dẫn đến Kernel cụ thể (Ghi chỉ mục menu từ bước 2 và 3). Trong hệ thống của tôi, chỉ số đầu tiên là 1 và thứ hai là 2. Tôi đặt thành GRUB_DEFAULT

GRUB_DEFAULT="1>2"

Lưu tập tin.

4.3. Cập nhật thông tin GRUB cho các thay đổi áp dụng:

sudo update-grub

4.4. Sau khi khởi động lại, bạn tự động khởi động trên Kernel bằng đường dẫn menu đã chọn. Một ví dụ trên máy của tôi 1 -> 2

4.5. Kiểm tra phiên bản Kernel sau khi khởi động lại:

uname -r


2

Bởi https://help.ubfox.com/community/Grub2 :

GRUB_HIDDEN_TIMEOUT = 0

Cài đặt này xác định thời lượng màn hình không có menu GRUB 2 sẽ được hiển thị. Trong khi màn hình trống, người dùng có thể nhấn bất kỳ phím nào để hiển thị menu.

Hành vi mặc định là ẩn menu nếu chỉ có một hệ điều hành. Nếu người dùng chỉ có Ubuntu muốn hiển thị menu, hãy đặt ký hiệu # ở đầu dòng này để tắt tính năng menu ẩn.

Hạ cấp hạt nhân: Cách hạ cấp hạt nhân vào ngày 11.10

Nâng cấp kernel: Làm cách nào tôi có thể nâng cấp kernel lên 3.1?


1

Vui lòng cài đặt kernel trước bằng lệnh sau:

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

Sau đó khởi động lại. Bạn sẽ được nhắc chọn kernel của bạn.


1
  1. Ngay sau màn hình giật gân BIOS / UEFI trong khi khởi động, với BIOS, nhanh chóng nhấn và giữ Shiftphím, sẽ hiển thị menu GNU GRUB. (Nếu bạn thấy logo Ubuntu, bạn đã bỏ lỡ điểm bạn có thể vào menu GRUB.) Với UEFI nhấn (có thể vài lần) Escphím để vào menu GRUB. Đôi khi, màn hình giật gân của nhà sản xuất là một phần của bộ tải khởi động Windows, vì vậy khi bạn bật nguồn máy, nó sẽ chuyển thẳng đến màn hình GRUB, sau đó nhấn Shiftlà không cần thiết.

  2. Từ màn hình GRUB, chọn Tùy chọn nâng cao cho Ubuntu và nhấn Enter.

    nhập mô tả hình ảnh ở đây

  3. Một màn hình màu tím mới sẽ xuất hiện hiển thị danh sách các hạt nhân. Sử dụng các phím và to để chọn mục nào được tô sáng. Nhấn Enter để khởi động kernel đã chọn, 'e' để chỉnh sửa các lệnh trước khi khởi động hoặc 'c' cho một dòng lệnh. Nhấn Esc để trở về menu trước.

    nhập mô tả hình ảnh ở đây


1
Mặc dù giống như câu trả lời ngắn hơn nhiều này: Askubfox.com/a/584738/307523 Câu trả lời của bạn đi xa hơn với ảnh chụp màn hình và Shiftchìa khóa để đưa ra grub ở vị trí đầu tiên.
WinEunuuchs2Unix

0

Câu trả lời của Jackkobec mô tả một phương pháp xem grub.cfgvà cuộn qua mã nguồn để tìm số menu. Một cách dễ dàng hơn là với kịch bản này :

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                      │ 
         │                                                                              │ 
         └──────────────────────────────────────────────────────────────────────────────┘ 



Lưu ý: Trong ví dụ này grub-menu.sh shortđã được sử dụng để gọi tập lệnh. Các shorttham số ngăn chặn những dòng này:

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

Phím điều khiển

Sau khi cuộn qua các mục (bạn có thể sử dụng bánh xe cuộn chuột hoặc phím mũi tên) nhấn Escapeđể trở về dòng lệnh.

Nếu bạn nhấn Entercác lệnh liên kết grub cho mục nhập được hiển thị:

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

Cập nhật grub để khởi động kernel trước

Một tập hợp các lệnh grub tồn tại cho mỗi mục menu. Các mục biên dịch được lưu trữ trong /boot/grub/grub.cfgtập tin.

Trong ví dụ này, chúng tôi muốn số menu `1> 9> được đặt làm mặc định để chúng tôi sử dụng:

sudo -H gedit /etc/default/grub

và tìm dòng này:

GRUB_DEFAULT=0

và thay đổi nó thành này:

GRUB_DEFAULT="1>9"

Sau đó lưu tệp và chạy

sudo update-grub
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.