いいですね。 RHEL 6サーバーを実行しているシステムがあり、ハードウェアの制限のためにRHEL 6が私が使用できる最新バージョンです。次に、pxe操作用のライブネットワーク起動可能なinitramfsを作成しようとしました。最新のシステムRHEL 7/8では、dmsquash-live-rootおよびlivenet dracutモジュールを含むinitramfsファイルにリモートルートおよびライブブート機能を提供します。私のRHEL 6サーバーにはライブネットがなく、dmsquash-live-rootだけがあります。したがって、下の図に示すように、新しいシステムから90livenetディレクトリをコピーして、/usr/share/dracut/modules.d/ディレクトリに配置しました。
これにより、私のRHEL 7システムと同じ内容が表示され、含まれます。ただし、以下のconfファイルを使用して次のdracutコマンドを実行すると、dracutはモジュールが存在しないかのようにモジュールをスキップします。存在しないモジュールを指定すると、dracutコマンドは文句を言い、一般的に失敗するので、これは私にとって奇妙です。ただし、この場合、ライブネットの埋め込みについて文句を言うことなく、単にナビゲートするようです。
dracut -v -f -c dracut.conf initramfs-3.10.0-693.72.1.rt56.672.el6rt.x86_64.img 3.10.0-693.72.1.rt56.672.el6rt.x86_64 > output.txt
#Dracut.conf
# Dracut modules to add to the default
add_dracutmodules+="nfs network dmsquash-live livenet"
# additional kernel modules to the default
add_drivers+="nfs nfs4"
omit_dracutmodules+="biosdevname"
私の質問は、誰かが私のコマンドやconfの使い方に問題があるかどうかを指摘したり、モジュールディレクトリと内容をmodule.dディレクトリに含めることに加えて、私が実行する必要がある追加の手順を説明できることです。 (ps dracutコマンドを使用する前に、インストールスクリプトを実行する必要があるかどうかを確認するために/module-setup.shも試しました。のインストールスクリプトと非常に似ています)
その設定ファイルの他のすべてのエントリをgrepすることができ、私が挿入したライブネットモジュールを除くすべてのエントリがあります。
答え1
RHEL 6は2010年にリリースされたため、そのバージョンはサポートされていない可能性dracut
がありますmodule-setup.sh
。それこれは、2011-02-02にリリースされたバージョン008で導入されたようです。
module-setup.sh
別のスクリプトに変換してみてください。各check
、、、、関数はdepends
、同じ名前(接尾辞なし)を持つ独自のスクリプトでなければなりませんinstall
。関数の内部(および間のテキスト)のみをコピーする必要があります。安全のためにshebang()を含めてスクリプトを実行可能にします()。installkernel
.sh
{
}
#! /bin/bash
chmod +x check depends install installkernel
たとえば、/usr/lib/dracut/modules.d/90livenet/module-setup.sh
次のような場合:
#! /bin/bash
check () {
A
}
depends () {
B
}
install () {
C
}
installkernel () {
D
}
次のファイルに置き換える必要があります。
/usr/lib/dracut/modules.d/90livenet/check
:
#! /bin/bash
A
/usr/lib/dracut/modules.d/90livenet/depends
:
#! /bin/bash
B
/usr/lib/dracut/modules.d/90livenet/install
:
#! /bin/bash
C
/usr/lib/dracut/modules.d/90livenet/installkernel
:
#! /bin/bash
D