切断されたブロックデバイスは/ dev /に残り、syncコマンドを終了できません。

切断されたブロックデバイスは/ dev /に残り、syncコマンドを終了できません。

私は4.10.0-38-lowlatencyカーネルとKDE5デスクトップを備えたLinux Mint 18/2を実行しています。

私は多数のUSBフラッシュドライブをテストするためにカスタムbashスクリプトを使用していますが、f3今日は奇妙な状況に直面しました。ドライブがマシンから物理的に切断されても、/dev/から消えません。

syncまた、すべてのコマンドが完全に中断され、sudo pkill -9 sync役に立たないことも確認しました。

ついにやりましたsudo rm /dev/sddが、syncまだ永遠に止まっています。

エラーの開始後に実行されているすべての同期プロセスはシステムに残ります。 Htopは常にI / Oを実行していると言います。

ここに画像の説明を入力してください。

このようなことを経験した人はいますか?コンピュータを再起動せずにこの問題を解決できますか?

答え1

削除できず、/dev/sdX file代わりに端末を初期化する必要があります。 rootユーザーとして:

echo "1" > /sys/block/sdX/device/delete

または sudo を使用して実行します。

sudo bash -c 'echo 1 > /sys/block/sdX/device/delete'

または

echo 1 | sudo tee /sys/block/sdX/device/delete

答え2

のエントリは、/dev単にデバイスファイル、つまりアプリケーションがドライバと通信するゲートウェイです。で項目を作成または削除しても、デバイスの動作だけで/devなくドライバの動作にも影響しません。ドライバはこれらの項目を認識しません。

プロセスはD状態に留まってはいけません。その場合、カーネルのバグを示します。カーネルエラーは、ハードウェアエラーが原因で発生する可能性があります。ほとんどのドライバは、ハードウェアがマイナーな方法で誤動作していると正しく対処できません。pkill -9ドライバが割り込み可能な操作を実行していると判断した場合、プロセスは終了しますが、ドライバが割り込み不可能なコードに閉じ込められると、これは永久に続く可能性があります。

手がかりが見つかる場所はシステムログにあります。誤動作するドライバや異常な現象(突然接続が切断されたり、誤ったメッセージを送信するデバイスなど)を検出する一般的なドライバ(USBバスドライバなど)に手がかりがある可能性があります。dmesgまたはjournalctl -k、または試してみてくださいless /var/log/kern.log(カーネルログを含むファイルを見ていない場合は、Mintはそれを呼び出すようです)。

/sysアイテムを介してデバイスを強制的に切断します。動作できます(問題が何であるかによって異なります)。

関連情報