背景
dd
USBディスクドライブのコマンドでUbuntu 20.04「カスタム」imgを作成しました。Serva
以下をPXEサーバーとして使用します。Serva
マップ時間。
公式Ubuntu 20.04.4 ISO PXEの起動が成功しました。 「カスタム」イメージをPXE起動すると正しくダウンロードされますが、カーネルパニックがvmlinuz
発生します。initrd
initrd
質問
イメージファイル(ルートパーティションフォルダ)のすべてのファイルをコピーして、ServaのリポジトリにLinuxアセットを追加するのは正しいですかNWA_PXE/{my customized image name}
?
このアプローチが正しい場合、initrd
起動時に一部のカーネルモジュール(SMBやCIFSなど)が欠落してカーネルパニックが発生する可能性がありますか?
これは次の記事に触発されました。PXEを使用したカスタムLinuxイメージの起動
エラーコードは次のとおりです。
[ 1.437739] ---[ end Kernel panic - not syncing: Attempted to kill init! exit code=0x00000200 ]---
ServaAsset.infの設定は次のとおりです。
[PXESERVA_MENU_ENTRY]
asset = customized img beta
platform = amd64
kernel_bios = /NWA_PXE/$HEAD_DIR$/casper/vmlinuz
append_bios = showmounts toram root=/dev/cifs initrd=/NWA_PXE/$HEAD_DIR$/casper/initrd boot=casper netboot=cifs nfsroot=//$IP_BSRV$/NWA_PXE_SHARE/$HEAD_DIR$ NFSOPTS=-ouser=serva,pass=avres,sec=ntlmv2,vers=2.0,ro ip=dhcp ro ipv6.disable=1
kernel_efi64 = /NWA_PXE/$HEAD_DIR$/boot/vmlinuz-5.11.0-40-generic
append_efi64 = showmounts toram root=/dev/cifs initrd=/NWA_PXE/$HEAD_DIR$/boot/initrd.img-5.11.0-40-generic boot=casper netboot=cifs nfsroot=//$IP_BSRV$/NWA_PXE_SHARE/$HEAD_DIR$ NFSOPTS=-ouser=serva,pass=avres,sec=ntlm,vers=1.0,ro ip=dhcp ro ipv6.disable=1
答え1
PXEブート可能なLinuxディストリビューションには、スクリプトINITRD
にinit
IPインポート、DNSクライアント設定、CIFSまたはNFSインストール(またはディストリビューションがライブバージョンの場合)などのPXEブート関連タスクを処理できる特別なコードがあります。 )。このコードがないと、init
そのブートイメージに対して適切な「ルート変更」が行われなくなりますが、init
コマンドソルバーに制御権を返すべきではないスクリプトなので、次のような結果が表示されます。
[ end Kernel panic - not syncing: Attempted to kill init! exit code=0x00000200 ]---
お客様の場合、PXE ブート機能が必要な場合は、PXE サポートの導入から始めて、特定の機能を追加することをお勧めします。たとえば、ライブ展開を使用し、埋め込みsquashfsイメージに必要な機能を追加します。
Servaは、特定のディストリビューションのPXEバグを修正するために補足INITRDを複数回生成するか、単に必須プロトコルのサポートが不足していること(たとえば、ブートINITRDレベルのCIFSサポート)などを念頭に置いてください。