Cách thích hợp để cài đặt kernel mới theo cách thủ công trên Debian 9 là gì?


9

Tôi không đủ tự tin để làm điều này một mình và mạo hiểm máy chủ không khởi động hoặc cái gì đó.

Tôi muốn nâng cấp kernel từ:

$ uname -r
4.9.0-6-amd64

$ uname -v
#1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07)

đến phiên bản kernel 4.15 hoặc 4.16. Bất cứ điều gì bạn đề nghị.


Tôi chỉ nghĩ rằng tôi biết làm thế nào để liệt kê các phiên bản có sẵn:

$ apt-cache search linux-image | grep amd64

linux-headers-4.9.0-6-amd64 - Header files for Linux 4.9.0-6-amd64
linux-headers-4.9.0-6-rt-amd64 - Header files for Linux 4.9.0-6-rt-amd64
linux-image-4.9.0-6-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-6-amd64-dbg - Debug symbols for linux-image-4.9.0-6-amd64
linux-image-4.9.0-6-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-6-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-6-rt-amd64
linux-image-amd64 - Linux for 64-bit PCs (meta-package)
linux-image-amd64-dbg - Debugging symbols for Linux amd64 configuration (meta-package)
linux-image-rt-amd64 - Linux for 64-bit PCs (meta-package), PREEMPT_RT
linux-image-rt-amd64-dbg - Debugging symbols for Linux rt-amd64 configuration (meta-package)
linux-headers-4.9.0-3-amd64 - Header files for Linux 4.9.0-3-amd64
linux-headers-4.9.0-3-rt-amd64 - Header files for Linux 4.9.0-3-rt-amd64
linux-headers-4.9.0-4-amd64 - Header files for Linux 4.9.0-4-amd64
linux-headers-4.9.0-4-rt-amd64 - Header files for Linux 4.9.0-4-rt-amd64
linux-headers-4.9.0-5-amd64 - Header files for Linux 4.9.0-5-amd64
linux-headers-4.9.0-5-rt-amd64 - Header files for Linux 4.9.0-5-rt-amd64
linux-image-4.9.0-3-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-3-amd64-dbg - Debug symbols for linux-image-4.9.0-3-amd64
linux-image-4.9.0-3-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-3-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-3-rt-amd64
linux-image-4.9.0-4-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-4-amd64-dbg - Debug symbols for linux-image-4.9.0-4-amd64
linux-image-4.9.0-4-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-4-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-4-rt-amd64
linux-image-4.9.0-5-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-5-amd64-dbg - Debug symbols for linux-image-4.9.0-5-amd64
linux-image-4.9.0-5-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-5-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-5-rt-amd64
linux-headers-4.15.0-0.bpo.2-amd64 - Header files for Linux 4.15.0-0.bpo.2-amd64
linux-headers-4.15.0-0.bpo.2-cloud-amd64 - Header files for Linux 4.15.0-0.bpo.2-cloud-amd64
linux-headers-4.16.0-0.bpo.1-amd64 - Header files for Linux 4.16.0-0.bpo.1-amd64
linux-headers-4.16.0-0.bpo.1-cloud-amd64 - Header files for Linux 4.16.0-0.bpo.1-cloud-amd64
linux-image-4.15.0-0.bpo.2-amd64 - Linux 4.15 for 64-bit PCs
linux-image-4.15.0-0.bpo.2-amd64-dbg - Debug symbols for linux-image-4.15.0-0.bpo.2-amd64
linux-image-4.15.0-0.bpo.2-cloud-amd64 - Linux 4.15 for x86-64 cloud
linux-image-4.15.0-0.bpo.2-cloud-amd64-dbg - Debug symbols for linux-image-4.15.0-0.bpo.2-cloud-amd64
linux-image-4.16.0-0.bpo.1-amd64 - Linux 4.16 for 64-bit PCs
linux-image-4.16.0-0.bpo.1-amd64-dbg - Debug symbols for linux-image-4.16.0-0.bpo.1-amd64
linux-image-4.16.0-0.bpo.1-cloud-amd64 - Linux 4.16 for x86-64 cloud
linux-image-4.16.0-0.bpo.1-cloud-amd64-dbg - Debug symbols for linux-image-4.16.0-0.bpo.1-cloud-amd64
linux-headers-4.9.0-4-grsec-amd64 - Header files for Linux 4.9.0-4-grsec-amd64
linux-image-4.9.0-4-grsec-amd64 - Linux 4.9 for 64-bit PCs, Grsecurity protection (unofficial patch)
linux-image-grsec-amd64 - Linux image meta-package, grsec featureset
linux-image-cloud-amd64 - Linux for x86-64 cloud (meta-package)
linux-image-cloud-amd64-dbg - Debugging symbols for Linux cloud-amd64 configuration (meta-package)

Tôi cũng cần tiêu đề. Trên Ubuntu cũng có gói được gọi extrahoặc tương tự, vì vậy tôi bối rối không thấy nó ở đây.


Cách thích hợp để cài đặt kernel mới theo cách thủ công trên Debian 9 là gì?


Có bất kỳ lý do cụ thể mà bạn cần một hạt nhân gần đây hơn?
marcelm

Câu trả lời:


10

Nếu bạn muốn cài đặt kernel đóng gói Debian mới hơn, bạn nên sử dụng kernel từ kho lưu trữ backports. Dường như bạn đã lưu trữ kho lưu trữ đó vào aptcấu hình của mình , vì vậy bạn đã thiết lập xong.

Vì kernel hiện tại của bạn là phiên bản amd64 cơ bản, tôi giả sử bạn sẽ không cần phiên bản lập lịch thời gian thực, cũng không phải phiên bản đám mây.

Chỉ cần chạy

apt-get install linux-image-4.16.0-0.bpo.1-amd64 linux-headers-4.16.0-0.bpo.1-amd64

tức là "cài đặt phiên bản -amd64 cơ bản của hạt nhân 4.16 được nhập vào Debian 9 và gói tiêu đề tương ứng".

Không giống như các gói thông thường, linux-imagegói phiên bản mới sẽ không hoàn toàn thay thế kernel 4.9.0 hiện tại mà sẽ cài đặt cùng với nó. (Đó là vì số phiên bản được đưa vào như một phần của tên gói.) Các Bootloader sẽ tự động được cấu hình ở linux-imagehậu cài đặt vào một trong hai hiện các hạt nhân có sẵn theo một thứ tự phiên bản số dựa trên, hoặc nếu đó là không thể đối với một số Bootloader , chỉ cần tự động đặt cái được cài đặt gần đây nhất là cái được ưa thích.

Nếu hóa ra kernel mới của bạn sẽ không khởi động, bạn có thể chọn kernel trước đó từ bộ tải khởi động, sau đó loại bỏ gói kernel được chứng minh là không hoạt động. Nếu bạn vô tình nói với người quản lý gói để loại bỏ kernel mà bạn hiện đang chạy, thì đủ thông minh để biết rằng đó không phải là điều nên làm và sẽ hủy bỏ thao tác.


[...] it is smart enough to know that isn't a good thing to do, and will abort the operation.<- Nếu bạn không chắc chắn trong đó nhân đang dùng (trong trường hợp này), bạn có thể chạy uname -r(lấy từ askubuntu.com/questions/359574/... )
Ismael Miguel

12

Vấn đề trong tầm tay

Bạn yêu cầu một nhân Linux mới hơn so với nhân được cài đặt trên phiên bản Debian của bạn. Có một số rủi ro cho việc này. Bạn nên tránh đi lạc từ hạt nhân LTS ổn định mặc định mà Debian cung cấp. Tuy nhiên do nhu cầu của bạn, bạn cần một hạt nhân mới hơn.

Giải pháp

Bạn có thể thêm kho lưu trữ backports , sử dụng apt-pinning để kiểm soát những gì được cài đặt ở đây và cài đặt các thành phần cần thiết để nâng cấp kernel của bạn.

Tôi đặc biệt khuyên bạn nên ghim apt vì bạn có thể thêm kho lưu trữ thay thế hoặc thậm chí kho của bên thứ ba và kiểm soát những gì được cài đặt từ chúng. Điều này cho phép bạn, một lần nữa tự chịu rủi ro, cài đặt và cập nhật các gói và thư viện thay thế và cập nhật chúng cùng với các thành phần chính của Hệ điều hành. Ghim Apt cho phép kiểm soát chi tiết các gói từ các nguồn thay thế (nghĩa là không ổn định) với rủi ro thấp hơn để phá vỡ. Nếu bạn hiểu rủi ro, bạn có thể tiến về phía trước với điều này.

Thêm kho lưu trữ Backports và thiết lập tùy chọn apt

Bước đầu tiên là thêm các kho lưu trữ thích hợp vào sources.list. Tôi muốn giới thiệu bạn sử dụng /sources.list.d/nhưng bạn có thể làm điều này chỉ trong một tập tin.

#Main Stable Repo
deb http://deb.debian.org stable main contrib non-free 
deb-src http://deb.debian.org stable main contrib non-free
#Stable-updates
deb http://deb.debian.org stable-updates main contrib non-free 
deb-src http://deb.debian.org stable-updates main contrib non-free 
#Security Updates 
deb http://deb.debian.org/debian-secruity stable/updates main contrib non-free
deb-src http://deb.debian.org/debian-secruity stable/updates main contrib non-free 
#Stretch Backports    
deb http://ftp.debian.org/debian stretch-backports main contrib non-free
deb-src http://ftp.debian.org/debian stretch-backports main contrib non-free

Bạn sources.listnên trông giống như thế này. Bạn không cần các bộ phận không miễn phí nếu bạn không yêu cầu phần mềm không miễn phí. Tiếp theo, bạn sẽ cần phải cung cấp các gói ưu tiên pin sử dụng /etc/apt/preferences. Tập tin này sẽ trông như thế này:

Package: *
Pin: release a=debian-security
Pin-Priority: 1000

Package: *
Pin: release a=stable
Pin-Priority: 900

Package: *
Pin: release a=stable-updates
Pin-Priority: 800

Package: *
Pin: release a=stretch-backports
Pin-Priority: 700

Bạn có thể chi tiết hơn trong cách tiếp cận của mình khi chỉ định các gói riêng lẻ và gán giá trị cao hơn hoặc thấp hơn cho các ưu tiên pin.

Sau này bạn chạy apt-get update.

Cài đặt kernel mong muốn

Sử dụng apt-cache search linux-imagebạn sẽ liệt kê tất cả các hạt nhân có sẵn. Khi bạn đã xác định được kernel nào bạn muốn, bạn có thể cài đặt nó bằng cách sử dụng apt-get install linux-image-flavour. Bạn cũng nên cài đặt gói tiêu đề Linux phù hợp. Nếu bạn yêu cầu hình ảnh grsec trong môi trường của bạn, hãy cài đặt hình ảnh đó thay thế. Một lần nữa với gói tiêu đề thích hợp là tốt.

Khi khởi động lại, bạn sẽ có thể chọn kernel nào bạn muốn khởi chạy trong menu GRUB. Nếu bạn gặp vấn đề, bạn luôn có thể chọn kernel tốt đã biết và khởi động bằng cách sử dụng thay thế.

Phần kết luận

Tôi đã sử dụng tính năng ghim apt để quản lý thành công cài đặt Debian trên máy tính cá nhân của mình. Tôi đã sử dụng phương pháp trên để cài đặt kernel mới nhất vào thời điểm nào (4.15) và hệ thống của tôi đã hoạt động tốt. Tuy nhiên, hãy dùng cái này với một hạt muối vì nó là một máy tính cá nhân và không phải cái mà tôi cho là máy chủ sản xuất mà bạn muốn cài đặt. Tôi đang bao gồm các liên kết đến tất cả các nguồn tôi tham khảo là tốt. Tôi đã sử dụng trang Debian Debian này để thông báo về các bước cần thiết, cũng như trang về ghim apt . Bài viết này cũng đã được tham khảo.

Nếu bạn có bất kỳ câu hỏi hoặc quan tâm về bài đăng này, đừng ngần ngại hỏi tôi. Nếu có bất kỳ sửa chữa hoặc quan niệm sai trong câu trả lời này xin vui lòng thông báo cho tôi. Tôi có thể cập nhật bài viết khi cần thiết.

May mắn nhất!


Vì một số lý do, ưu tiên 700 cho backport khiến hệ thống của tôi cố gắng nâng cấp tất cả các gói lên phiên bản backport. Nếu tôi đặt nó ở mức 499 hoặc thấp hơn, mọi thứ dường như sẽ hoạt động. root @ pc: / etc / apt # grep -r iority * Preferences.d / sparky: Pin-Priority: 1001 Preferences.d / main: Pin-Priority: 1000 Preferences.d / main: Pin-Priority: 900 Preferences.d / main: Pin-Priority: 800 Preferences.d / backports: Pin-Priority: 499
pierce.jason

2

Để cài đặt hình ảnh linux và gói tiêu đề của nó, sử dụng lệnh sau:

apt install linux-{image,headers}-4.16.0-0.bpo.1-amd64

Một số phụ thuộc cần phải được cài đặt từ backport sau khi chạy lệnh trên, nó có thể được cài đặt thông qua:

apt install -t stretch-backports pckg_name

1
Hoặc -t stretch-backportscó thể được thêm vào dòng ban đầu, để nó tự động nhận được tất cả các phụ thuộc đúng : apt install -t stretch-backports linux-{image,headers}-4.18.0-0.bpo.3-amd64.
mivk
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.