LinuxでディスクレスPXEイメージを作成する方法

LinuxでディスクレスPXEイメージを作成する方法

タイトルは紹介です。この問題を解決するには、Linuxの専門家が本当に必要です。これは明らかな質問ではないか、少なくとも私にとってはそうではありません。私はこれを行う方法を正確に知っており、以前にやったことがありますが、今回は何かを見逃しています。この場合、pxeイメージは起動せず、ルートに切り替えることはできません。

現在のイメージを作成するために私が試したことは次のとおりです。

  1. ターゲットハードウェアにLinux Redhatバージョン7をインストールして設定します。

  2. 「nfs」および「network」モジュールを含むカスタムinitramfsを作成しました。したがって、画像はオンボードハードドライブから起動して動作します。

  3. rsync cmdを使用してルートファイルシステムをコピーし、カスタムinitramfsと一致するカーネルをpxeのtftpbootサーバーに配置します。

  4. fstabファイルを消去し、ハードドライブのuuidをコメントアウトしてから、両方を試してください(fstabが空またはnfsにルートマウントされているfstab)。

  5. initramfsとvmlinuzの権限の変更

  6. nfs サーバーサービスを設定し、no_root_squash と rw を使用してルートファイルシステムをエクスポートできるようにします。

私が経験している問題:イメージがpxに移動してvmlinuzを実行してからinitramfsを実行しますが、スイッチルートに到達するとサービスが失敗します。しばらくするとdracutシェルに入り、dracut report/run/initramfs/rdsosreport.txtを見てみました。

Failed to switch root: Specified switch root path '/sysroot' does not seem to be an OS tree. os-release file is missing initrd-switch-root.service: Main Process exited, code=exited, status=1/FAILURE 

確認すると、OSリリースファイルがあり、ターゲットハードウェアハードドライブの作業イメージにあるファイルと同じです(毎回正常に起動します)。

ルートファイルシステムがあり、正しい絶対パスを使用して適切な場所を指します。これが私のpxelinux.cfgのデフォルトの行です。

root=nfs:192.9.600.5:/correct/path/to/rootfilesystem  

また、この行が間違っているか不正確であるとdracut致命的なエラーが発生し、dracutはroot = nfs ...などで何をすべきかわからなかったか、間違った理由でルートファイルシステムを使用できない場合は権限を与えます。パスまたは権限が不足しています。エラーが発生しました。

また、ルートの切り替え中にpxeサーバーへの接続が失われたことを確認しました。ルートがnfsにあるがnfsとネットワークモジュールがあるため、失敗した理由かもしれません。それ以外の場合、initramfsはswitch-root.serviceが失敗する前に発生しますか?だから今この時点で接続が切断される理由が何なのか混乱しています。特に、pxe イメージが生成されるイメージには nfs があり、ブート時にアクティブになるためです。

私はこれを無駄に調べましたが、誰かが私が間違っていることを指摘したり、問題の原因を見つけるのに役立つことができればとても感謝します。

ベストアンサー1

NFSバージョンのロックにすることができます。まず、マニュアルでは、起動オプションとして root=nfs:server-ip:/exported/root/directory,vers=4.2 を使用することをお勧めします。ジョブシステムで/rootを/mntとしてマウントして確認することもできます。

  1. 正しくインストールされている場合
  2. cat /proc/mounts は、デフォルトのマウントで NFS バージョンを確認します。
  3. lsmodは実際に使用されているモジュールを表示できます。

NFSv4 には多くの派生エントリと非互換性があり、NFSv3 が動作するには RPC デーモンが必要なため、NFS は非常に面倒です。これは時々混乱することがあります。一部のディスクレスクライアントを実行すると、initramfsのモジュールは基本システムのモジュールとはまったく異なる動作をすると言えます。

dracutでNFSマウントを試して結果を提供することもできます。 tcpdumping クライアントトラフィックは、何が起こっているのかを確認するのにも役立ちます。

また、他の警告があるかどうかを確認するために、今夜最新のEL7を起動してみましょう。

おすすめ記事