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


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に新しいカーネルを手動でインストールする適切な方法は何ですか?


最近のカーネルが必要な特別な理由はありますか?
marcelm

回答:


10

新しい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、使用可能なカーネルをバージョン番号ベースの順序で表示するように、または一部のブートローダーではそれが不可能な場合に、インストール後に自動的に構成されます。 、最後にインストールしたものを自動的に優先するものとして設定するだけです。

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


[...] it is smart enough to know that isn't a good thing to do, and will abort the operation.<-実行しているカーネル(この場合)がわからない場合は、実行できますuname -raskubuntu.com/questions/359574/…から取得
Ismael Miguel

12

手元の問題

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

解決

バックポートリポジトリを追加し、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ページを使用して、必要な手順とapt-pinningのページを通知しました。この記事も参照されました。

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

ベストオブラック!


何らかの理由で、バックポートの優先度700により、システムはすべてのパッケージをバックポートバージョンにアップグレードしようとします。499以下に設定すると、すべてが動作するようです。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

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

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

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

apt install -t stretch-backports pckg_name

1
または-t stretch-backports、最初の行に追加して、すべての適切な依存関係を自動的に取得することもできますapt install -t stretch-backports linux-{image,headers}-4.18.0-0.bpo.3-amd64
mivk 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.