arm7に組み込みLinuxがあります。
フラッシュデバイスであるMTDパーティション10(たとえば/ dev / mtd10)にrootfsがマウントされています。ボリュームは UBIFS デバイス UBI0 (/dev/ubi0) です。
私はおおよそ次のガイドラインに従ってPivot_root(chrootに似ています)tmpfsを設定しました。ライブルートファイルシステムのサイズを変更するにはどうですか?。
mtd10(UBI0)を削除/再フォーマットしたいです。私が経験している問題は、UBI0が使用中であるというメッセージが表示されるまで、UBI0を分離/フォーマットできないことです。だから、次のコマンドを使用します。
fuser -vm /dev/mtd10
これで終了できるプロセスのリストが提供されたので、すべての操作を実行してから、UBI0にマウントされているすべてのパーティションをアンマウント(またはumount -l)しました。
したがって、私のシステムは、私が実行しているシェルに加えてUBI0に依存しません。私は多くの方法の組み合わせを試しましたが、うまくいくように見える唯一の方法は(exit
コマンドを使用して)ログアウトして再度ログインすることです(私は私のユーザー名を入力するだけですroot
)。
この時点telinit u
でログアウト/実行すると、UBI0が消えて分離できます。
修正する:Killはrc_mxc.S
ログアウトと同様の効果を持ちます(つまり、シェルが終了して再度ログインする必要がありますが、これはスクリプトも終了します。
ここで問題は、スクリプトを書く方法がわからないということです。スクリプト内で実行すると、exit
スクリプトは終了します。
答え1
find /proc/$$ -type l -ls
FSを開いた状態でシェルで実行します。このFSへの各リンクに対して適切な処置を取ってください。
fd
サブディレクトリで:runはファイル記述子番号、指すファイル、exec n>replacement
またはその記述子を閉じます。n
replacement
&-
- またはサブディレクトリ:runの
exe
tmpfsルートディレクトリにある必要なシェルのパスを置き換えます。map_files
exec /bin/sh
/bin/sh
- As
cwd
:cd
別のディレクトリに。 - As
root
:tmpfsルートディレクトリに移動しますchroot .
。