Dracutは、initramfsのビルド中に新しいカスタムdracutモジュールをスキップします。

Dracutは、initramfsのビルド中に新しいカスタムdracutモジュールをスキップします。

いいですね。 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/bashchmod +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

おすすめ記事