NANDフラッシュのファームウェアアップデートを行う方法についての this チュートリアルに従っています。私は、新しいルートを配置するディレクトリを変更するだけでそれに従いました。すべての/bin
/dev
/sbin
/usr
フォルダーをtmpfs
にあるRAM
にコピーしています。
次のコマンドは、私が問題にぶつかり始めるところです:
umount /sys
umount /proc
killall5
sys
が問題なくアンマウントされたが、procをアンマウントしようとすると、次のようになります。
umount: can't umount /proc: Device or resource busy
同様の問題で this リンクと同様のchroot
を使用してみました。しかし、それはあまり役に立たないようです。
次のコマンドを使用して、newrootにchrootしようとしましたが、さらに悲しみがあります。
chroot /tmp/newroot /bin/ash
エラー:
umount: can't umount /proc: Invalid argument
誰かが私を正しい方向に向けることができますか?いつものように、些細なことを見逃しているような気がします。
まあ、おそらくマウントを解除する必要はありません/proc
。 procfsは 実際のファイルシステムでさえも ではなく、メモリの内容と現在実行中のプロセスの表現です。あなたが望むのはおそらく バインドマウント chroot内の場所に:
# mkdir -m 0555 /tmp/newroot/proc
# mount --bind /proc /tmp/newroot/proc
lsof
をまだインストールしていない場合はインストールし、シングルユーザーモードで再起動してlsof | grep /proc
と言います。まだ/proc
を使用しているすべてのプログラムを強制終了します。次に、それをアンマウントできます。
umount -l /proc
でレイジーアンマウントを使用すると、すべての参照が削除されるまでマウントは保持されますが、ルートをアンマウントできるように切断されます(pivot_root
を使用した後)。
または、mount --move
を使用してマウントポイントを移動することもできます。