switch_rootコマンドは、新しいファイルシステムのpid 1プロセスで/ sbin / initをどのように生成しますか?

switch_rootコマンドは、新しいファイルシステムのpid 1プロセスで/ sbin / initをどのように生成しますか?

カーネルが initramfs で起動すると、実際の rootfs の準備のために init プロセスが開始されます。実際のrootfsが準備されたら、initramfsのinitプロセスを実際のrootfsの別のinitに渡す必要があります。

私の質問は:init(old)にすでにプロセスID 1があるのですが、なぜ新しいinitプロセスにもプロセスID 1があるのですか?

一部の人はswitch_rootコマンドで切り替えが行われていると言いますが、コードを見た結果、switch_rootは/dev、procなどをマウントし、ルートを新しいfsに変更してexecv(/sbin/init)を見つけました。

switch_rootはinit(old)の子プロセスとして実行する必要があり、プロセスIDは2、3、または1を除くすべての値でなければなりません。そうなんですか?

ベストアンサー1

おすすめ記事