Apa cara yang tepat untuk menginstal kernel baru secara manual di Debian 9?

9

Saya tidak memiliki cukup kepercayaan untuk melakukan ini sendirian dan mengambil risiko server tidak melakukan boot atau sesuatu.

Saya ingin memutakhirkan kernel dari:

$ uname -r
4.9.0-6-amd64

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

ke kernel versi 4.15 atau 4.16. Apapun yang Anda rekomendasikan.


Saya hanya berpikir saya tahu bagaimana daftar versi yang tersedia:

$ 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)

Saya perlu header juga. Di Ubuntu ada juga paket yang dipanggil extraatau mirip, jadi saya bingung tidak melihatnya di sini.


Apa cara yang tepat untuk menginstal kernel baru secara manual di Debian 9?

LinuxSecurityFreak
sumber
Apakah ada alasan khusus Anda membutuhkan kernel yang lebih baru?
marcelm

Jawaban:

10

Jika Anda ingin menginstal kernel Debian-package yang lebih baru, Anda harus menggunakannya dari repositori backports. Anda tampaknya sudah memiliki repositori yang ditambahkan ke aptkonfigurasi Anda , jadi Anda sudah siap.

Karena kernel Anda saat ini adalah versi dasar amd64, saya berasumsi Anda tidak akan memerlukan versi penjadwal waktu nyata, maupun versi cloud.

Lari saja

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

yaitu "menginstal versi -amd64 dasar dari kernel 4.16 yang di-backport untuk Debian 9, dan paket header yang sesuai".

Berbeda dengan paket reguler, linux-imagepaket versi baru tidak akan langsung menggantikan kernel 4.9.0 yang ada, tetapi akan menginstalnya. (Itu karena nomor versi dimasukkan sebagai bagian dari nama paket.) Bootloader akan secara otomatis dikonfigurasikan pada linux-imagepost-install untuk menyajikan kernel yang tersedia dalam urutan berbasis nomor versi, atau jika itu tidak memungkinkan untuk beberapa bootloader. , secara otomatis mengatur yang baru diinstal sebagai yang lebih disukai.

Jika ternyata kernel baru Anda tidak mau boot, Anda bisa memilih kernel sebelumnya dari bootloader, dan kemudian hapus paket kernel yang terbukti tidak berfungsi. Jika Anda secara tidak sengaja memberi tahu manajer paket untuk menghapus kernel yang sedang Anda jalankan, cukup cerdas untuk mengetahui bahwa itu bukan hal yang baik untuk dilakukan, dan akan membatalkan operasi.

telcoM
sumber
[...] it is smart enough to know that isn't a good thing to do, and will abort the operation.<- Jika Anda tidak yakin kernel mana yang Anda jalankan (dalam hal ini), Anda dapat menjalankan uname -r(diambil dari askubuntu.com/questions/359574/... )
Ismael Miguel
12

Masalah di Tangan

Anda memerlukan kernel Linux yang lebih baru daripada yang diinstal pada instance Debian Anda. Ada beberapa risiko untuk ini. Disarankan agar Anda tidak menyimpang dari kernel LTS stabil default yang disediakan Debian. Namun karena kebutuhan di pihak Anda, Anda memerlukan kernel yang lebih baru.

Larutan

Anda dapat menambahkan repositori backports , menggunakan apt-pinning untuk mengontrol apa yang diinstal di sini, dan menginstal komponen yang diperlukan untuk memutakhirkan kernel Anda.

Saya sangat merekomendasikan apt-pinning karena Anda dapat menambahkan repositori alternatif atau bahkan repositori pihak ketiga dan mengontrol apa yang diinstal dari mereka. Hal ini memungkinkan Anda, sekali lagi dengan risiko Anda sendiri, untuk menginstal dan memperbarui paket dan pustaka alternatif dan memperbaruinya di samping komponen utama Sistem Operasi Anda. Pin-pin memungkinkan untuk kontrol granular paket dari sumber alternatif (yaitu tidak stabil) dengan risiko kerusakan yang lebih rendah. Jika Anda memahami risikonya, Anda dapat bergerak maju dengan ini.

Tambahkan repositori Backports dan atur apt-preferensi

Langkah pertama adalah menambahkan repositori yang tepat ke akun Anda sources.list. Saya akan merekomendasikan Anda menggunakan /sources.list.d/tetapi Anda dapat melakukan ini hanya dalam satu file.

#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

Anda sources.listharus terlihat seperti ini. Anda tidak perlu komponen yang tidak bebas jika Anda tidak memerlukan perangkat lunak tidak bebas. Selanjutnya Anda harus memberikan prioritas paket pin menggunakan /etc/apt/preferences. File ini akan terlihat seperti ini:

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

Anda bisa lebih terperinci dalam pendekatan Anda menentukan paket individu, dan menetapkan nilai yang lebih tinggi atau lebih rendah ke prioritas pin.

Setelah ini, Anda lari apt-get update.

Instal Kernel yang Diinginkan

Menggunakan apt-cache search linux-imageAnda akan daftar semua kernel yang tersedia. Ketika Anda telah mengidentifikasi kernel mana yang Anda inginkan, Anda dapat menginstalnya menggunakan apt-get install linux-image-flavour. Anda disarankan untuk menginstal paket header Linux yang cocok juga. Jika Anda memerlukan gambar grsec di lingkungan Anda, instal saja yang itu. Sekali lagi dengan paket tajuk yang sesuai juga.

Saat reboot, Anda akan dapat memilih kernel mana yang ingin Anda luncurkan pada menu GRUB. Jika Anda mengalami masalah, Anda selalu dapat memilih kernel yang dikenal baik, dan boot menggunakan itu.

Kesimpulan

Saya telah menggunakan apt-pinning untuk berhasil mengelola instalasi Debian komputer pribadi saya. Saya menggunakan metode di atas untuk menginstal apa yang merupakan kernel terbaru saat itu (4.15) dan sistem saya telah bekerja dengan baik. Namun, ambil ini dengan sebutir garam karena ini adalah komputer pribadi dan bukan apa yang saya asumsikan sebagai server produksi yang Anda inginkan untuk menginstal ini. Saya menyertakan tautan ke semua sumber yang saya referensikan juga. Saya menggunakan halaman Wiki Debian ini untuk menginformasikan tentang langkah-langkah yang diperlukan, serta halaman tentang pin-apt . Artikel ini juga direferensikan.

Jika Anda memiliki pertanyaan atau masalah tentang pos ini, jangan ragu untuk bertanya kepada saya. Jika ada koreksi atau kesalahpahaman dalam jawaban ini mohon informasikan kepada saya. Saya dapat memperbarui pos yang diperlukan.

Semoga berhasil!

kemotep
sumber
Untuk beberapa alasan, prioritas 700 untuk backports menyebabkan sistem saya mencoba untuk memutakhirkan semua paket ke versi backports. Jika saya mengaturnya ke 499 atau lebih rendah, semuanya tampaknya berperilaku. root @ pc: / etc / apt # grep -r iority * preferensi.d / sparky: Pin-Prioritas: 1001 preferensi.d / utama: Pin-Prioritas: 1000 preferensi.d / utama: Pin-Prioritas: 900 preferensi.d / main: Pin-Priority: 800 preferensi.d / backports: Pin-Priority: 499
pierce.jason
2

Untuk menginstal linux-image dan paket tajuknya gunakan perintah berikut:

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

Beberapa dependensi perlu diinstal dari backports setelah menjalankan perintah di atas, dapat diinstal melalui:

apt install -t stretch-backports pckg_name
GAD3R
sumber
1
Atau -t stretch-backportsdapat ditambahkan ke garis awal, sehingga secara otomatis mendapat semua dependensi yang tepat: apt install -t stretch-backports linux-{image,headers}-4.18.0-0.bpo.3-amd64.
mivk