연결이 끊긴 블록 장치는 /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대신 기기를 초기화해야 합니다. 루트 사용자로서:

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항목을 통해 장치를 강제로 연결 해제해 보세요.작동할 수 있습니다(문제가 무엇인지에 따라 다름).

관련 정보