grubを使ってシステムを起動しました。
Linux /boot/vmlinuz-4.5.0 root=/dev
initrd /boot/initrd-4.5.0
正しく起動しないようにrootをdevに設定しました。もちろん、これはBusyboxの項目に戻り、何とかマウントを使用して初期化を開始できることをオンラインで読みました。私は周りを見回して/ sbinの下でswitch_rootを見つけ、それを使ってみましたが、成功しませんでした。ルートを変更してPID 1で初期化を開始するには?また、私の初期化はSystem Vで、すべてが同じパーティションにあります。
ベストアンサー1
切り替えたいルートディレクトリをインストールする必要があります。私はあなたがすでにこれを行う方法を知っていると仮定します。基本的にmkdir /newroot; mount -r /dev/something /newroot
それからあなたは必要です変える現在実行中の代替シェルです。これはPID 1(verificationが利用可能echo $$
)で実行され、ターゲットinitはその番号を再取得する必要があります。したがって、exec
使用するには組み込みシェルが必要です。
switch_root
移行するルートディレクトリと、移行後に実行するinit実行可能ファイル名という2つ以上のパラメータを許可します。
したがって、代替シェルを交換するだけです。
exec switch_root /newroot /sbin/init
、/sbin/init
ルートをmountに変更した後、PID 1を再インポートして追加の初期/newroot
化を続行できます。