initramfsで変数を保存する(起動時)

initramfsで変数を保存する(起動時)

実際のファイルシステムをマウントする前に、起動時に環境変数をどのように保存できますか?

私は知っていますが、/etc/environmentinitramfsはまだファイルにアクセスできません。値を保存するためにファイルを作成することも検討しましたが、ファイルがシステムに存在している間に物理ファイルシステムをマウントした後に上書きされます。

Ps:起動時に変数を読むのではなく、後で使用するために変数を保存したいと思います。

回答後の修正

について:

  • カーネルモジュールの作成(ヘルプを探すここそしてそこ) 名前付きmod.ko
  • 起動時にモジュールが利用可能であることを確認してください(initramfs-toolsを使用してカーネルイメージにモジュールを含めるか、ファイルシステムで参照してください)。
  • スクリプトに次の行を追加します。

カーネルイメージにまだモジュールが含まれていない場合

insmod /path/to/mod.ko

そうでなければ直接

echo "env_var=value" > /proc/name_of_your_process

name_of_your_processモジュール内部に与えられた名前はどこにありますか(実行時)__initentry = proc_create("name_of_your_process",0777,NULL,&my_fops);

その後、スクリプト起動プロセス中

cat /proc/name_of_your_process
>> env_var=value
rmmod mod.ko

ベストアンサー1

まあ、一般的な環境継承(エクスポートするだけです...)は理論的には可能ですが...問題は何でもファイルシステムの初期化通常、奇妙なことが起こらないようにするために、スタートアップで意図的に環境を整理できます。環境変数を確認しないと、セキュリティリスクが発生する可能性があります。

私は知っていますが、/etc/environmentinitramfsはまだファイルにアクセスできません。

興味深い部分はおおよそファイルシステムの初期化欲しいものは何でもできるということです。唯一の限界はあなたの想像力です。

ファイルにアクセスできるように設定できます。マウント、修正、削除。あるいは、チェックサムなしで既存のファイルシステムを使用している場合は、それを変更することもできます。いいえ何でもインストールします(または少なくとも読み取り/書き込みモードでない場合)。 GRUBはいgrubenv

ファイルシステムや物理ストレージを混乱させたくない場合は、ramディスク、tmpfs、またはループデバイスを設定できます。 initramfs何かを残す方法は数え切れないほどあります(通常はクリーンアップに取り組む必要があります)。それ)。

おすすめ記事