Alpine Linux:virtカーネルをインストールした後にカーネルの起動順序を安全に変更する最良の方法は何ですか?

Alpine Linux:virtカーネルをインストールした後にカーネルの起動順序を安全に変更する最良の方法は何ですか?

-vanillaカーネルを削除する方が良いですか、それともブート設定を保存して変更する方が良いですか?もしそうなら、OSがファイルを更新するときにファイルを失わない最善の方法は何ですかextlinux.cfg

しばらく前に、私たちは個人用にWireguardサーバーをホストするためにAlpine 3.12 Edge VMを展開しました。最近パッケージアップデート(定期的なセキュリティパッチなど)を行いましたが、apk最新バージョンのlinux-vanillaがインストールされ、Wireguardのサポートが中止されました。 RTNETLINKエラーがたくさんあります。 modprobewireguardは満足できず、パッケージのインストールから既存のwireguardモジュールをロードできません。とても汚れています。

そのため、Wireguardサポートを含むバージョン5.4を入手するためにlinux-virtカーネルにサイドアップグレードすることにしました。apk add linux-virt5.4.38-0-virt(2020年5月4日ビルド)をインストールするRanは本当に素晴らしいです。ところで、起動のデフォルト値を変更する方法は…?

カーネルを更新し、Wireguardが動作するようにしたときにコンソールを介して手動で上書きしました。そして、今日の午前中にVMを再起動するまで、起動順序の問題を解決できなかったことを忘れました。それでも最善の解決策が見つかりません。

  • デフォルトのブートを無視して-virtを指定すると、カーネルは正しく機能します。ただし、何らかの理由でVMを再起動すると、extlinuxはデフォルトで-vanillaカーネルに設定されます。これは機能しません。
  • 分解にもかかわらず、修正されたcfgはAlpineプログラムによって自動的に更新される/boot/extlinux.cfgため、手動で変更したくありません。update-extlinux
  • extlinux.cfgのデフォルトオプションは、menu.c32.cfgに含まれているメニューをレンダリングするsyslinuxモジュールを指します。 GUIブート選択メニューを失いたくはありませんが、設定ファイルの順序を手動で変更せずに(将来のOSがファイルを更新するたびに順序を失うことなく)、デフォルトのカーネルを更新する方法がわかりません。

私はこのAlpine VMを展開仕様にできるだけ近づけたいと思います。ほとんど触れないので、使用するたびにもう一度学ぶ必要があります。必要な場合以外はextlinuxを変更しない方が良いでしょうが、extlinuxは私が欲しいものを提供しますか?

また、インストールされたパッケージのクリーンアップ中にapk del linux-vanillaこれを実行しましたが、87個のファームウェアパッケージも削除されました。再インストールすることに決め、何をすべきかを決めました...

これは仮想マシンなので、これは必要ないと思いますが、インストールに害を及ぼすことなく実際に-vanillaカーネルと関連ファームウェアパッケージを削除できるかどうか混乱しています。

追加のファームウェアパッケージ用にインストールされた通常のカーネルを維持し、起動時に-virtカーネルを上書きする必要がありますか?それとも、apk del linux-vanillaファームウェアパッケージをインストールしないことによる他の副作用なしにlinux-virt 5.4 LTSカーネルを無期限に動作させることは可能ですか?リストをスキャンした後、私のインスタンスは削除したいものを使用していないようですが、削除すると意図しない結果が発生する可能性があるかどうかはわかりません。

FWIW、もともとWireguardの問題を解決する過程でシステムがインストール/アップグレードされました。

  • linux-vanilla-4.19.118-r0
  • linux-virt-4.19.118-r0
  • linux-vanilla-dev-4.19.118-r0
  • linux-virt-5.4.38-r0(現在実行中)

修正する最良の方法について、比較的初心者の質問をご理解ください。インターネットを検索しましたが、update-extlinux特に互換性のある方法でextlinuxブート画面を修正するための文書が不足しているようです。それとも私のGoogle Fuが私を捨てたかもしれません…

ベストアンサー1

最善のアプローチはあなたの要件に依存していると思います。私はAlpineユーザーではないので、完全な答えを与えることはできません。しかし、同様の問題を解決した方法は次のとおりです。

リアルタイムカーネルで Debian を実行する組み込みシステムがあります。通常のカーネルはバージョン番号が少し高い傾向があるため、追加の操作なしで起動するデフォルトのカーネルになります。組み込みコンピュータから通常のカーネルを起動すると、産業環境での保護メカニズムによって施設がシャットダウンする可能性がある微妙なタイミングの問題が発生する可能性があります。誰かが自分の間違いを認識していない間に間違ったカーネルを起動する可能性があるかなりのリスクがあります。したがって、この場合は、このコンピュータからすべての一般的なカーネルパッケージを削除することにしました。通常、私はメインカーネルをアップグレードした後に問題が発生した場合に備えて、2番目のカーネルをバックアップ用にしたいのですが、この場合は混乱したシステムを数分で自動的に再インストールすることもできました。したがって、これらのシステムに通常のカーネルをインストールするリスクが利点よりも大きいと思います。

私はブートローダの設定が簡単で安定していることを望んでいるので、それを台無しにしないことにしました。そして、構成管理システムがブートローダー構成を変更できるようにすることは、それ自体のリスクを伴います。

仮想環境では定期的にバックアップを作成できるため、使用しないカーネルを簡単に削除したい場合があります。 Debian は、常に最新のリアルタイムカーネル (たとえば linux-image-4.19.0-8-rt-amd64) に依存する linux-image-rt-amd64 という仮想パッケージを提供します。このダミーパッケージをインストールしてlinux-image-amd64("rt"を除く)を削除します。これは自動化/文書化が簡単です。アルパインにwireguard-virt依存しているようですが、linux-virt依存しませんlinux-vanilla。したがってapk del linux-vanilla、ファームウェアパッケージが一緒に削除されることを心配しないことをお勧めします。

おすすめ記事