특정 디렉터리의 파일 열거\쓰기 명령이 중단됩니다.

특정 디렉터리의 파일 열거\쓰기 명령이 중단됩니다.

나는 기계와 원격으로 통신하고 있다 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다음과 같습니다. 표시된 프로세스 중 하나 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가 의견에서 지적했듯이 하드웨어 오류는 뚜렷한 가능성이므로 플래시 메모리를 제거할 수 있는 경우 교체 하드웨어를 기술자에게 보낼 것입니다. 플래시는 실패하기 전의 쓰기 주기 횟수가 제한되어 있으며, 오래된 플래시는 최신 플래시보다 쓰기 주기가 적다는 점은 주목할 가치가 있습니다.

문제가 해결되면 원격 인터페이스에서 허용하는 경우 메모리에 새 파일 시스템을 구축하고 마운트할 수 있습니다.

관련 정보