initrd コマンドは systemd サービスと対話して同じことを行います。

initrd コマンドは systemd サービスと対話して同じことを行います。

私はブートプロセスがどのように機能するかについて一般的なアイデアを持っていますが、今ではinitrdプロセスをカスタマイズしているので、頭を閉じることはできません。

リモートファイルシステムまたはディスク(NFSやiSCSIなど)に接続できるsystemdサービスがありますが、場合によってはsystemdサービスが実行する操作をinitrdプロセスで処理する必要がある場合はどうなりますか?

initrdで同じことをする非システムバージョンを構築しましたか?もしそうなら、systemdサービスは何をしたいのかが外部で行われたかどうかを検出する必要がありますか? initrdにロードされたカーネルモジュールなどの操作はハブルートプロセスの後に残り、systemdサービスで再実行されますか?

デフォルトでは、私の質問は、systemdサービスを使用してNFSまたはiSCSIボリュームを追加のフォルダまたはデバイスにマウントするローカルハードドライブのインストールを実行し、設定をディスクレスブートに変更する場合はsystemdサービスです。少なくとも起動に必要なすべての作業はinitrdで実行する必要があります。しかし、追加のボリュームをマウントしてsystemdサービスを実行し続けたい場合は、initrdマウントボリュームの構成をどのように処理しますか?

ローカルディスクのインストールではsystemd-networkdを使用していますが、initrdはネットワークデバイスを起動して静的に設定するか、DHCPを使用する必要があります。それでは、systemd-networkdはどうなりますか? initrdによって開始されたネットワークプロファイルがもう存在しないか、まだ必要ですか? (initrd設定はピボットルートまたは同様のエントリから削除されますか?)

(カスタムの背景としてiSCSIを使用してディスクなしで起動する方法はよく文書化されていますが、リモートDMAプロトコルSRPを使用してディスクなしで起動したいので、initrdはSRPカーネルモジュール(ib_srpなど)をロードしてリモートボリューム。)

関連情報