아루피!
접속 : 6431   Lv. 80

Category

Profile

Counter

  • 오늘 : 200 명
  • 전체 : 589585 명
  • Mypi Ver. 0.3.1 β
[IT] SPTD.sys 관련 블루 스크린 문제 해결 (0) 2009/12/18 PM 12:47
[ 증상 ]
고객에 따라서는 부팅이 불가능한 경우가 있거나, 종료가 정상적으로 이뤄지지 않는경우가 있습니다.
우선 부팅 or 윈도우 종료와 관련된 문제 중 데몬을 사용하는 고객은 다음에 나온
해결방법을 통하여 해결이 가능하였습니다
만약 데몬 제거(데몬 관련 내용 완전 삭제)가 어려울 경우
마지막 확인은 윈도우 재설치 이후 데몬 3.47버전 사용입니다.


[ 해결 ]

Daemon Tools 3.47 버전을 이용한다. 혹은,

SPTD를 안전모드에서 따로 설치 후 Daemon Tools v4의 최초 구동을 안전모드에서 한다.

[ 설명 ]

최근 필자는 인텔의 듀얼 코어 CPU가 장착된 노트북을 구입하였다. 여기에 가상 ODD 에뮬레이터 중 가장 널리 사용되는 프로그램인 Daemon Tools(이하 데몬)의 가장 최신 버전인 4.03 버전을 설치하였는데, 이후 윈도우 진입이 되지 않고 전혀 부팅을 할 수 없는 문제가 발생하였다.
찾아보니 필자 이외에도 이런 문제를 겪은 사람이 많은 것 같은데, 국내에선 만족할 만한 정보를 얻지 못해 직접 조사하고 테스트를 해본 다음 그 결과를 나누고자 한다.
우선 이 문제가 발생하는 원인은 현재까지 확실한 결론을 내지 못한 것으로 보인다. 데몬의 제작진조차도 해당 문제가 발생했을 때 단지 SPTD를 일시적으로 제거한 상태에서 Minidump 폴더를 보내주기를 요청할 뿐 어떤 확실한 원인 분석이나 해결책을 적어놓지는 않았다.
그러나 사용자들의 경험을 토대로 원인을 짚어보자면, 주로 Dual Core CPU 시스템이나 64bit 시스템이 데몬 4에서 쓰이는 SPTD.sys 파일과 충돌하기 때문이라는 것이 가장 유력하다.
이외 윈도우의 특정 업데이트가 SPTD와 충돌을 일으키는 것이라는 얘기도 있고, 특정 노트북 시스템과의 비호환 문제도 여러번 제기되었는데, 어떤 것도 아직 확실한 결론은 아니다.



데몬은 4.x 버전 들어오면서 ODD 가상 장치 드라이버로 SCSI Pass Through Direct (SPTD) layer 라는 것을 사용하게 되었는데, 이것은 커널 레벨에서 로딩되는 드라이버로 보인다.
실제로 데몬 4.x 버전 프로그램을 받아 실행을 해보면 우선 SPTD 설치를 위해 재부팅을 하겠다는 메시지가 뜬다. 이 메시지에는 추가적인 경고 메시지를 보여주는데, 그 내용인즉 "SPTD는 SoftICE나 WinDBG 등과 같은 커널모드 디버거와 호환되지 않으므로 이들 프로그램을 이용할 것이라면 절대 설치하지 말라"는 것이다.
듀얼 코어나 64비트 CPU가 이것과 무슨 관련이 있는지는 알 수 없으나 어떻든 SPTD가 새로운 유형의 CPU, 그리고 그와 관련된 윈도우 시스템과 호환되지 않아서 이런 문제가 발생한다고 보는 것이 현재로선 가장 신뢰할 만한 것 같다.

보다 정확하게 팩트만 보자면, 싱글 코어 시스템에서 이런 문제가 발생한다는 보고를 필자가 보지는 못했다는 점, 그리고 듀얼 코어나 64비트 시스템이라 하더라도 이 문제가 발생하지 않는 시스템이 있다는 점이 가장 주목할 만한 부분이다. 즉 듀얼 코어나 64비트 CPU에 윈도우XP를 설치한 시스템 중 일부에서 이런 현상이 발생한다고 볼 수 있는 것이다.


지금까지에 의하면, 이 문제를 해결하기 위해 두 가지 방법 정도를 사용할 수 있다.


하나는 데몬의 3.x 버전 중 가장 최신 버전인 3.47 버전을 설치하는 것이다. 3.47 버전은 아무런 문제를 발생시키지 않았다.
두번째는 약간의 트릭을 이용하여 4.x 버전을 설치하는 것이다.


이하에서는 데몬 툴즈 4.03 설치시 부팅이 되지 않는 시스템에 약간의 트릭을 이용하여 정상적으로 부팅이 되도록 4.03을 설치하는 방법을 설명하고자 한다.


우선은 기존에 데몬 4를 설치한 이유로 부팅이 되지 않고 있다면, 먼저 데몬 4와 함께 SPTD 드라이버를 완전히 삭제하여야 한다. 포인트는 데몬 4를 언인스톨 하여도 SPTD는 언인스톨되지 않으므로 따로 삭제를 해야 한다는 점이다.

안전모드로 부팅을 한다.
부팅할 때, 화면 하단에 "Press ESC to calcel loading SPTD.sys"라는 메시지가 뜨는데, 이때 반드시 ESC 키를 눌러 SPTD.sys 파일을 로딩하지 않도록 한다. 지금 그것을 삭제하려고 하기 때문이다.
[프로그램 추가/삭제]에서 Daemon Tools 4를 제거한다.
첨부한 sptdinst_x86.exe 프로그램(64비트 CPU 사용자는 sptdinst_x64.exe 프로그램)을 이용하여 다음 명령을 실행한다.
sptdinst_x86.exe remove
위 프로그램은 SPTD 드라이버를 추가하거나 삭제하는 프로그램이다. 이것은 데몬 4.x 버전에 포함되어 있는 것이지만, 별도로 프로그램을 제공하기도 한다. SPTD가 데몬에 의해서만 사용되는 것은 아니기 때문이다. 어떻든 SPTD 드라이버를 단독으로 추가하거나 삭제하기 위해서는 이 프로그램이 별도로 있어야 한다.
실제의 파일과 레지스트리 정보들도 가급적 제거하도록 한다.
우선 다시 안전모드로 재부팅. 운영체제 설치 폴더의 system32/drivers의 sptd.sys 파일과 dtscsi.sys 파일을 삭제한다. 그리고 레지스트리 편집기를 열어 검색을 통해 위 두 파일과 관련한 항목들도 모두 삭제하도록 한다. 완전하게 삭제하지 않으면 여전히 문제를 발생시킬 수 있다.


이하에서는 본격적으로 데몬 4.03을 설치하는 방법이다. 문제발생이 예상되는 시스템에 아직 한번도 데몬 4를 설치한 적이 없다면 이 과정부터 하면 되겠다.

안전모드로 부팅을 한다.
첨부한 sptdinst_x86.exe 프로그램(64비트 CPU 사용자는 sptdinst_x64.exe 프로그램)을 이용하여 다음 명령을 실행한다
sptdinst_x86.exe add
위 프로그램은 SPTD 드라이버를 추가하거나 삭제하는 프로그램이다. 이것은 데몬 4.x 버전에 포함되어 있는 것이지만, 별도로 프로그램을 제공하기도 한다. SPTD가 데몬에 의해서만 사용되는 것은 아니기 때문이다. 어떻든 SPTD 드라이버를 단독으로 추가하거나 삭제하기 위해서는 이 프로그램이 별도로 있어야 한다.
이번에는 정상적으로 부팅 과정을 수행한 후(노멀모드), 데몬 4.x 버전을 설치한다. 약간 시간이 걸릴 수도 있다. 그리고 가장 중요한 부분, 마지막에 Run Daemon-Tools의 체크를 해제한다. 즉 설치 후 노멀모드에서 바로 데몬을 실행하지 말라는 말이다.
이 부분, 설치 과정 마지막에 있는 "데몬 실행" 부분의 체크를 해제해야한다는 것이 매우 중요하다. 위에서 언급했듯이 데몬의 최초 실행을 안전모드에서 해야하기 때문이다.
다시 안전모드로 부팅한다. 이번에는 화면 하단에 "Press ESC to calcel loading SPTD.sys"라는 메시지가 뜰때, ESC 키를 누르면 안된다. 지금 안전모드에서 데몬을 로딩하려고 하기 때문이다.
정상적으로 안전모드로 부팅했으면 아이콘을 눌러 데몬을 실행한다. 우측 하단에 데몬 아이콘이 생기겠지만 노멀모드와는 달리 "새로운 장치를 발견했다"거나 하는 메시지는 없을 것이다.
이제 정상적으로 재부팅을 수행하면 별 문제없이 데몬 4.x 버전을 사용할 수 있다.



필자는 개인적으로 그냥 3.47 버전을 이용하는 것이 좋아보인다.
실제로 위의 방법을 이용하여 4.x 버전을 설치하여 별 문제 없이 사용해오긴 했는데, 그럼에도 불구하고 가끔씩 부팅이 이루어지지 않는 문제점이 있었기 때문이다. 물론 이것을 반드시 데몬 4 때문이라고 단정지을 수는 없는 상황이지만, 가장 의심이 가는 원인이기는 하다.
또한 필자가 3.47 버전으로 그냥 버티기(?)를 권하는 이유는, 대부분의 사용자에게 있어 이런 위험을 감수할 만큼 4.x 버전을 반드시 설치해야할 이유가 별로 없기 때문이다. 4.x 버전이 3.x 버전과는 완전히 다른 ODD 에뮬레이션 아키텍쳐를 사용하였다고는 하지만, 사실 현재의 컴퓨팅 환경에서 ODD 에뮬레이터의 특수한 능력을 이용해야하는 상황은 그다지 많지 않다고 생각한다. 그러나 새로운 유형의 락이 걸린 게임 CD 등을 에뮬레이션 해야할 일이 많거나 하는 사용자라면, 어쩔 수 없이 위와같은 방법을 써서라도 4.x 버전을 설치하거나, 혹은 다른 가상 ODD 소프트웨어를 이용하는 방법을 써야할 것이다.
물론 이 모든 문제는 4.x 버전을 설치했을 때 부팅이 되지 않는 문제가 발생하는 특정 시스템에 한정되는 얘기고, 대부분의 32비트 싱글 코어 시스템 사용자는 그냥 정상적으로 4.x 버전을 설치해서 사용하면 되겠다.

신고

 
X