特定のディレクトリのファイルの列挙\書き込みコマンドは中断されます。

特定のディレクトリのファイルの列挙\書き込みコマンドは中断されます。

私は機械とリモートで通信していますssh。このシステムは、非常に限られたコマンドセットを使用してカスタムLinuxを実行します。

ある時点では、特定のディレクトリはファイルの書き込みを拒否します。を実行するか、ls[タブ]をクリックしてファイル名をオートコンプリートするか、ワイルドカードを使用してファイルを削除すると、コマンドは中断されます。

新しいsshセッションを開いてクリックすると、ps | grep D次のようになります。

  PID  Uid        VSZ Stat Command
  628 root            DWN [jffs2_gcd_mtd4]
  930 root       2912 D   rm /mnt/flash/system/config
  995 root       2400 D   scp -t /mnt/flash/system/
 2083 root       3044 D   ls -AlSh /mnt/flash/system
 6994 root       2912 D   chmod +x /mnt/flash/system/config
13281 root       3052 S   grep D
22220 root       2400 D   scp -t /mnt/flash/system/

実行mountコマンドは次のように表示されます。

rootfs on / type rootfs (rw)
/dev/root on / type ext2 (rw)
proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw)
tmpfs on /tmp type tmpfs (rw)
/dev/mtdblock4 on /mnt/flash type jffs2 (rw)

状態のあるプロセスD(プロセスがディスクI / O操作を実行していることを示します。通常、この状態は観察されませんが、ps複数回実行すると同じ状態が表示されるため、プロセスは実際にI / O操作で停止します)は次のとおりです。マウントパスのファイルを削除、一覧表示、編集、または書き込みます/mnt/flash

このマウントパスファイルシステムはjffs2次のとおりです。表示されているプロセスの1つjffs2_gcd_mtd4の状態はですDWN

私はLinuxについての明確な知識がないので、できるだけ簡単に説明してください。

  • それでは、DWN状態とは何ですか?これは、プロセスが承認されたことを示します(つまり終了しました)。
  • この問題をどのように解決できますか?このパスではファイルを編集できず、コンピュータを再起動するのは高価なオプションです(たとえば、物流)。

答え1

ps状態はDWNフラグの組み合わせです。

D    uninterruptible sleep (usually IO)
W    paging (not valid since the 2.6.xx kernel)
N    low-priority (nice to other users)

ディスク待機状態に閉じ込められるのは心配な問題であり、ドライバエラーを示す強力な兆候です。重大に破損したドライブに接続されたドライバであっても、最終的にはタイムアウトが発生し、そのドライブにアクセスするシステムコールにEIOが返されます。

あなたが言ったように、「カスタム」カーネルを実行している場合、ファイルシステムがあまりにもまれであるため、ドライバが無限に待って停止することができるという問題を提起する前に聞いたことはありません。これは、本番を考慮する必要があることを示唆しています。機械が破損しています。

個人的には、このようなドライバーは気を付けなければなりません。10年前に孤児になったと思います。特にそれ以来ドライバーを作成した動機フラッシュメモリコントローラの発展により、このような状況が大幅に解消された。

コメントに返信を追加するには:

残念ながら、ウェッジドライバはしばしばハードウェアチャネルを束ねて再起動しなければそれを解放することができます。あなたはこの装置が操作上アクセスしにくいと言いました。火星にいないことを願っています。再起動するように誰かに送信する前に、デバイスのマウント(通常は/etc/fstabにありますが、可能であれば/etc/rc.localにもあります)を削除したことを確認してください。そうしないと、システムが再び停止する可能性があります。

@goldilocksがコメントで指摘したように、ハードウェアエラーは明らかな可能性があるため、フラッシュメモリを取り外すことができる場合は、交換ハードウェアを技術者に送信します。フラッシュは失敗する前の書き込みサイクル数が制限されており、古いフラッシュは最新のフラッシュより書き込み周期が少ないことは注目に値します。

問題が解決したら、リモートインターフェイスで許可されている場合は、メモリに新しいファイルシステムを構築してマウントできます。

関連情報