switch_root
の理由 コマンド ラインで動作していないのは、busybox の次のコードです:
if (st.st_dev == rootdev || getpid() != 1) {
// Show usage, it says new root must be a mountpoint
// and we must be PID 1
bb_show_usage();
}
あなたは PID 1 ではないため、この bb_show_usage
に陥っています。 .その意味は、switch_root
initramfs init スクリプトのコマンドは switch_root
を実行する必要があります exec
で .つまり
exec switch_root ...
「見つかりません」エラーのもう 1 つの問題は、initramfs ルート ファイルシステムに共有ライブラリがないため、実行可能ファイルに必要な共有ライブラリが見つからないことが原因である可能性があります。 switch_root
を取得できる場合 exec
で動作する の場合、「見つかりません」というエラーは解消される可能性があります。