Cách thêm kernel mới vào grub2


24

Làm thế nào chúng ta có thể thêm một hạt nhân vào grub2? Tôi biết những thứ chúng ta có thể làm với các phiên bản cũ, nhưng dường như nó đã thay đổi. Những tập tin nào chúng ta nên chỉnh sửa?

Câu trả lời:


11

Để thêm kernel mới vào grub2:

  1. Di chuyển kernel của bạn đến / boot /
  2. Chạy sudo update-grub

update-grub sẽ quét máy tính của bạn để tìm hạt nhân và tạo một danh sách các hạt nhân có sẵn khi khởi động.

Để bạn chọn kernel nào khởi động khi khởi động, bạn có thể phải giữ nút SHIFT xuống ngay sau khi BIOS của bạn đăng bài.

Bạn có thể chỉnh sửa / etc / default / grub để thay đổi các tùy chọn và tham số khởi động mặc định mà bạn có thể cần.

Non-Debian Linux

Xem ghi chú grub cho bản phân phối của bạn, chẳng hạn như các tài liệu Fedora GRUB 2 này .

  • grub2-mkconfig -o /boot/grub2/grub.cfg

Điều gì nếu bạn có 2 bản phân phối Linux mà không có phân vùng khởi động / riêng biệt? Bạn có phải sao chép kernel từ rootfs thứ cấp sang kernel chính không? Hay 'grub-update' cũng kiểm tra các phân vùng khác để tìm kernel mới?
jiggunjer

Đây là một câu hỏi riêng biệt, nhưng hoặc thực thi được sử dụng nên đọc /boot/và tạo chính xác. Tệp cấu hình grub (ví dụ /etc/default/grub:) có thể khác nhau trên mỗi HĐH, vì vậy hãy đảm bảo bạn đồng bộ hóa chúng. Tuy nhiên, cách tốt nhất có thể là có một hệ điều hành duy nhất tạo ra các mục grub cho bạn.
earthmeLon

Không thực sự là một câu hỏi riêng biệt, OP không chỉ định cấu hình của anh ấy và khởi động kép là một câu hỏi phổ biến. Nghĩ rằng nó có thể thêm giá trị cho câu trả lời của bạn, điều này đã tốt rồi. Vì vậy, nói cách khác, HĐH thứ cấp thậm chí không cần grub riêng, grub từ hệ điều hành chính sẽ quét các thư mục / boot trên tất cả các phân vùng và tìm hạt nhân.
jiggunjer

1
Làm cách nào để di chuyển kernel sang / boot? mv kernel /boot? Tôi tìm một kernel có thể được chuyển đến / boot ở đâu?
Thomas Weller

3

Tôi đang chạy Fedora 20 và lệnh cập nhật grub2 là grub2-mkconfig. Ngoài ra, toàn bộ quá trình có thể được thực hiện với kernel build make:

make xconfig (make config, etc)
make bzImage
make modules
sudo make modules_install
sudu make install

Bước này (bước cuối cùng) sẽ sao chép kernel vào / boot và cập nhật bộ tải khởi động grub2. Rất dễ dàng, và nó hoạt động chính xác trong trường hợp của tôi. Vấn đề duy nhất của tôi là bạn không thực sự tìm hiểu bất kỳ chi tiết quan trọng nào của quy trình, mọi thứ đều được tự động hóa. Nếu bạn có vấn đề và phải tìm ra những gì sai, bạn có thể bị mắc kẹt.


sudo make installnói với tôi : Cannot find LILO.
René Nyffalanger

Có thể bạn đang xây dựng một phiên bản cũ hơn của kernel? LILO đã được sử dụng trên phiên bản kernel cũ hơn 3.x (không chắc chắn là phiên bản chính xác) Bạn đang làm việc với bản phân phối nào?
philbrooksjazz

Đây là trên Arch Linux, với bản RC mới nhất (4.6.0-rc5) mà tôi đã git nhân bản từ kho lưu trữ Linux Torvalds.
René Nyffalanger

0

/boot/grub/grub.cfglà tập tin thay thế menu.lsttừ grub1

Trong các hệ thống Debian / Ubuntu, hệ thống này được tạo bởi update-grub, nó chạy các tập lệnh /etc/grub.dbằng cách sử dụng một cái gì đó tương tự run-parts.


0

Nếu kernel mới được cài đặt với dpkg (như thể nó được biên dịch với make-kpkg), update-grub2 là đủ (nó cũng loại bỏ các kernel không còn tồn tại nữa)


0

Bạn không "chỉnh sửa" để thêm hạt nhân nữa. Nó quét và thêm chúng một cách linh hoạt. Nếu bạn PHẢI thêm một lần quét không tìm thấy, bạn nên tìm trong /etc/grub.d và sửa đổi hoặc sao chép và custom40 (nó được thêm vào lần cuối để đây là nơi tuyệt vời để kiểm tra cấu hình của bạn trước khi bạn đặt nó lên đầu danh sách).


0

Hãy thử update-grubhoặc update-grub2tùy thuộc vào phiên bản grub của bạn. Bạn sẽ phải chạy chúng dưới quyền root sudo. Điều này làm việc cho tôi khi tôi cài đặt một bản phân phối Linux thứ hai mà không cần cài đặt lại grub.


Tôi nhận ra rằng câu trả lời của tôi tương tự như câu trả lời của Alan, nhưng tôi đã thêm lệnh grub2.
beatgammit
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.