2012-09-09

FreeBSD] FreeBSD에서 HDD fail일때 에러메시지에 대해



제 목 : FreeBSD에서 HDD fail일 때 에러메시지에 대해
글쓴이 : 좋은진호(truefeel, http://coffeenix.net/ )
글쓴날 : 2004.09.30(목)


다음은 dmesg 명령을 했을 때 결과이다.
 

spec_getpages:(#da/0x20005) I/O read failure: (error=6) bp 0xde8b9244 vp 0xf980a900
        size: 7168, resid: 7168, a_count: 7060, valid: 0x0
        nread: 0, reqpage: 0, pindex: 0, pcount: 2

spec_getpages:(#da/0x20005) I/O read failure: (error=6) bp 0xde8b9244 vp 0xf980a900
        size: 7168, resid: 7168, a_count: 7060, valid: 0x0
        nread: 0, reqpage: 0, pindex: 0, pcount: 2

 

1) 위의 에러 메시지 중에 #da/0x20005 는 device명으로 /dev 디렉토리에서 major, minor number를 보고 어떤 HDD가 fail인지 알 수 있다.

  ls -l /dev/da* 로 확인해보면 /dev/da0s1f 파티션에서 난 에러임을 알 수 있다.


 crw-r----- 2 root operator  13, 0x00020002 6 30 22:13 /dev/da0s1
 crw-r----- 2 root operator  13, 0x00020000 6 30 22:13 /dev/da0s1a
 crw-r----- 2 root operator  13, 0x00020001 6 30 22:13 /dev/da0s1b
 crw-r----- 2 root operator  13, 0x00020002 6 30 22:13 /dev/da0s1c
 crw-r----- 2 root operator  13, 0x00020003 6 30 22:13 /dev/da0s1d
 crw-r----- 2 root operator  13, 0x00020004 6 30 22:13 /dev/da0s1e
 crw-r----- 2 root operator  13, 0x00020005 6 30 22:13 /dev/da0s1f
 ... 생략 ...

 

2) error=6는 에러 번호로 /usr/src/sys/sys/error.h 에 정의되어 있다.
  자주 나오는 에러 코드는 5, 6, 22 정도

#define EIO       5        /* Input/output error */
#define ENXIO      6        /* Device not configured */
#define EINVAL     22       /* Invalid argument */


참고로 /usr/src/sys/miscfs/specfs/spec_vnops.c 파일을 보라.
         

댓글 없음:

댓글 쓰기