web-dev-qa-db-ja.com

/ procを「アンマウント」するにはどうすればよいですか?

NANDフラッシュのファームウェアアップデートを行う方法についての this チュートリアルに従っています。私は、新しいルートを配置するディレクトリを変更するだけでそれに従いました。すべての/bin/dev/sbin/usrフォルダーをtmpfsにあるRAMにコピーしています。

次のコマンドは、私が問題にぶつかり始めるところです:

umount /sys
umount /proc

killall5sysが問題なくアンマウントされたが、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

誰かが私を正しい方向に向けることができますか?いつものように、些細なことを見逃しているような気がします。

2
TopGunCoder

まあ、おそらくマウントを解除する必要はありません/proc。 procfsは 実際のファイルシステムでさえも ではなく、メモリの内容と現在実行中のプロセスの表現です。あなたが望むのはおそらく バインドマウント chroot内の場所に:

# mkdir -m 0555 /tmp/newroot/proc
# mount --bind /proc /tmp/newroot/proc
7
Joseph R.

lsofをまだインストールしていない場合はインストールし、シングルユーザーモードで再起動してlsof | grep /procと言います。まだ/procを使用しているすべてのプログラムを強制終了します。次に、それをアンマウントできます。

2
Warren Young

umount -l /procでレイジーアンマウントを使用すると、すべての参照が削除されるまでマウントは保持されますが、ルートをアンマウントできるように切断されます(pivot_rootを使用した後)。

または、mount --moveを使用してマウントポイントを移動することもできます。

0
Timothy Baldwin