제 목 : 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 파일을 보라.