web-dev-qa-db-ja.com

Debian 9に新しいカーネルを手動でインストールする適切な方法は何ですか?

一人でこれを行うには十分な自信がなく、サーバーが起動しないなどの危険を冒しています。

カーネルを以下からアップグレードしたいと思います。

$ uname -r
4.9.0-6-AMD64

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

カーネルバージョン4.15または4.16。どちらをお勧めします。


私は利用可能なバージョンをリストする方法を知っていると思います:

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

ヘッダーも必要です。 Ubuntuにはextraなどのパッケージもあるので、ここに表示されないのではと混乱しています。


Debian 9に新しいカーネルを手動でインストールする適切な方法は何ですか?

9

新しいDebianパッケージカーネルをインストールする場合は、backportsリポジトリからカーネルを使用する必要があります。そのリポジトリがapt構成にすでに追加されているようです。これで準備は完了です。

現在のカーネルは基本的なAMD64バージョンなので、リアルタイムスケジューラバージョンもクラウドバージョンも必要ないと思います。

ただ走れ

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

つまり、「Debian 9用にバックポートされた4.16カーネルの基本的な-AMD64バージョンと、対応するヘッダーパッケージをインストールします」。

通常のパッケージとは異なり、新しいバージョンのlinux-imageパッケージは、既存の4.9.0カーネルを完全に置き換えることはありませんが、同時にインストールされます。 (これは、バージョン番号がパッケージ名の一部として含まれているためです。)ブートローダーは、インストール時にlinux-imageで自動的に構成され、使用可能なカーネルをバージョン番号ベースの順序で表示するか、一部のバージョンでは不可能です。ブートローダーは、最後にインストールされたものを優先的に自動的に設定します。

新しいカーネルが起動しないことが判明した場合は、ブートローダーから以前のカーネルを選択し、機能しないことが判明したカーネルパッケージを削除します。誤ってパッケージマネージャーに現在実行中のカーネルを削除するように指示した場合、それを行うのは適切ではなく、操作を中止します。

10
telcoM

手元の問題

Debianインスタンスにインストールされているものよりも新しいLinuxカーネルが必要です。 これにはいくつかのリスクがあります これには。 Debianが提供するデフォルトの安定したLTSカーネルから逸脱しないことをお勧めします。しかし、あなたの側のニーズのために、より新しいカーネルが必要です。

解決

backports repository を追加し、apt-pinningを使用してここに何をインストールするかを制御し、カーネルのアップグレードに必要なコンポーネントをインストールできます。

apt-pinning をお勧めします。代替リポジトリまたはサードパーティのリポジトリを追加して、そこからインストールするものを制御することができるからです。これにより、再び自己責任で、代替パッケージとライブラリをインストールおよび更新し、オペレーティングシステムの主要コンポーネントと一緒に更新することができます。 apt-pinningは、破損のリスクが低い代替ソース(つまり、安定していない)からのパッケージをきめ細かく制御できるようにします。リスクを理解すれば、これを進めることができます。

Backportsリポジトリを追加し、apt-preferencesを設定します

最初のステップは、適切なリポジトリをsources.listに追加することです。 /sources.list.d/の使用をお勧めしますが、これは1つのファイルで実行できます。

#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

sources.listは次のようになります。自由でないソフトウェアを必要としない場合、自由でない部品は必要ありません。次に、/etc/apt/preferencesを使用してパッケージにピンの優先順位を与える必要があります。このファイルは次のようになります。

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

個々のパッケージを指定し、ピンプライオリティに高い値または低い値を割り当てるアプローチでは、よりきめ細かくすることができます。

この後、apt-get updateを実行します。

必要なカーネルをインストール

apt-cache search linux-imageを使用すると、使用可能なすべてのカーネルが一覧表示されます。必要なカーネルを特定したら、apt-get install linux-image-flavourを使用してインストールできます。対応するLinuxヘッダーパッケージもインストールすることをお勧めします。環境にgrsecイメージが必要な場合は、代わりにそれをインストールしてください。ここでも適切なヘッダーパッケージを使用します。

再起動すると、GRUB)メニューで起動するカーネルを選択できます。問題が発生した場合は、常に既知の適切なカーネルを選択し、代わりにそれを使用して起動できます。

結論

私はapt-pinningを使用して、パーソナルコンピュータのDebianインストールの管理を成功させました。上記の方法を使用して、当時最新のカーネル(4.15)をインストールしましたが、システムは正常に動作しています。ただし、これはパーソナルコンピュータであり、これをインストールする本番サーバーではないと私が想定しているので、これを一口にしてください。私が参照したすべてのソースへのリンクも含めています。この Debian Wiki page を使用して、必要な手順を通知したり、 apt-pinning のページを使用したりしました。この 記事 も参照されました。

この投稿について質問や懸念がある場合は、遠慮なく私に尋ねてください。この回答に訂正や誤解がある場合は、お知らせください。必要に応じて投稿を更新できます。

ベストオブラック!

12
kemotep

Linux-imageとそのヘッダーパッケージをインストールするには、次のコマンドを使用します。

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

上記のコマンドを実行した後、いくつかの依存関係をバックポートからインストールする必要があります。

apt install -t stretch-backports pckg_name
2
GAD3R