UASP(USB Attached SCSI Protocol) 지원되는 외장하드 케이스를 하나 샀습니다. 버바팀(Verbatim) DIY Kit Pro USB 3.0.
하드도 넣어보고, SSD도 넣어보고 하면서 브라스웰 N3700 기반 노트북의 USB 3.0 포트에 연결하여 테스트해 봤는데, 장치관리자에서 UASP로 연결은 되지만 읽기/쓰기 시도를 할 때마다 외장케이스가 뻗어버리는(연결끊김) 증상이 100% 확률로 반복되었습니다.
사실 얼마 전에 강원전자의 넷메이트(NETmate) I-NA301U 무전원 2.5인치 하드독도 동일 증상때문에 제조사 고객센터 기사님께 피드백을 드리면서 해결책을 여쭙다가(윈도우7 에서는 정상작동했음)… 공교롭게도 하드웨어 불량이 생기는 바람에 환불처리를 했던지라, 이쯤 되면 외장케이스의 문제로 몰아갈 케이스는 아니라고 판단하였습니다.
공교롭게도 최근 해외 쪽에서 N3700 기반 + 리눅스 환경에서 동일 증상이 보고되었고,
https://bbs.archlinux.org/viewtopic.php?id=209282
국내에서도 다른 외장하드 사용기에서 윈도우10 + USB 3.0 + UASP 환경에서 비슷한 증상이 있었음이 보고된 것으로 봤을 때,
https://blog.naver.com/hybridneo/220606767357
메인보드는 UASP 미지원인데 외장하드 케이스의 드라이버는 UAS로 잡히면서 뻗어버리는 게 아닌가~ 싶었습니다.
(아니면 UASP 드라이버 설계가 잘못됐거나, 메인보드 UASP 설계가 미흡한 거겠죠.ㅠㅠ)
———————————
각설하고,
마소 개발자 사이트의 문서를 보니
https://msdn.microsoft.com/ko-kr/library/windows/hardware/dn423379(v=vs.85).aspx
“SuperSpeed저장장치를 사용할경우 Uaspstor.sys 또는 Usbstor.sys 중 어떤 드라이버가 로드되나요?”항목에
“대용량 저장 장치를 Windows 8에 연결하고 해당 장치가 UAS를 지원하면 Windows가 Uaspstor.sys를 로드합니다. 경우에 따라 특정 xHCI 호스트 컨트롤러에서 하드웨어 스트림에 관련된 알려진 문제나 장치의 UAS 프로토콜 구현에 관련된 알려진 문제가 있을 수 있습니다. 이 경우 Windows는 BOT 프로토콜로 대체하고 Usbstor.sys 드라이버를 대신 로드합니다.”
라는 문구가 있었습니다.
———————————
생각해 봤는데, Usbstor.sys 는 Uaspstor.sys 출시 이전의 USB 대용량 저장 장치용 드라이버 같았습니다. 윈도우7에서 USB3.0 포트에 외장하드를 물리면 UASP 없이 정상작동했던 케이스로 미뤄봤을 때, UASP를 안 쓰고 Usbstor.sys 가 로드되도록 우회하면 속도는 조금 느려질지라도 USB 3.0 포트에서 버바팀 외장하드케이스를 쓸 수 있을 것 같았습니다.
검색하여…
방법을 찾았습니다.(이게 왜 마소 포럼에 올라와 있지? 올라온지 몇 달이 지났는데 윈도우10 에서는 왜 아직까지 패치가 안 나온 거지?)
1. PC 설정 – 업데이트 및 복구 – 복구 – 고급 시작 옵션 – 다시 시작 – 문제 해결 – 고급 옵션 – 명령 프롬프트. (윈도우10 1703(크리에이터)는 “PC 설정 – 업데이트 및 복구 – 복구 – 고급 시작 옵션 – 다시 시작 – 문제 해결 – 시작 설정 – 다시 시작 – 키보드 숫자 6번 : 안전 모드(명령 프롬프트 사용) 사용”으로 접근.)
2. 재부팅되면 계정(관리자권한 있는) 선택 후 비밀번호 입력
3. 명령프롬프트가 뜨면 다음과 같이 입력
C: 엔터
cd ₩ 엔터
cd windows\system32\drivers 엔터
ren uaspstor.sys uaspstor.sys.old 엔터
(윈도우10 1703에서 “액세스가 거부되었습니다”라는 에러가 뜬다면? 본문 하단에 해결방법 추가해 두겠습니다.)
copy usbstor.sys uaspstor.sys 엔터
4. 명령프롬프트 창을 X버튼 눌러서 종료 시도
5. “계속” 을 선택하여 재부팅 (윈도우10 1703에서는 Ctrl+Alt+Del 눌러서 재부팅 메뉴 진입하면 됩니다.)
여기까지가 위 링크에 나온 방법을 번역한 것입니다. 그러니까… usbstor.sys 를 uaspstor.sys 이름으로 복사하여 UASP를 무력화하겠다는 거지요.
저는 안전빵으로 이걸 추가했습니다.
제어판 – 장치관리자 – 범용 직렬 버스 컨트롤러 – USB 루트 허브(xHCI) – 전원 관리 탭 – 전원을 절약하기 위해 컴퓨터가 이 장치를 끌 수 있음(A) 체크 해제
———————————
결국 UASP 우회에 성공했고, 외장하드 케이스에 SSD 넣었더니 200MB/s 정도 연속쓰기 속도가 나왔습니다. UASP 지원 환경보다는 확실히 느리지만, 그래도 USB 2.0 포트에서 쓰는 것보단 나으니 근근히 쓰려고요. ㅠㅠ
3. 11. 추가
강원전자 INEO USB3.0 에 쓰인 ASM1053 칩셋에 강제로 펌웨어를 밀어넣은 사례가 검색되고,
https://cafe.naver.com/ssdsamo/102515
비슷하게 UASP 지원 안되던 M350케이스에 강제로 펌웨어 밀어넣어서 UASP 되게 만든 사례도 검색되고,
https://cafe.naver.com/ssdsamo/102547
위 두 글의 소스가 되었던 글도 검색이 되는데,
https://cafe.naver.com/ssdsamo/102507
그러고 보면 (재고 때문인 건지) UASP가 원활히 지원되지 않는 외장하드케이스가 의외로 유통되고 있을 수도 있을 것 같습니다.(테스트만이 살 길인가;;;)
아무튼 새로텍 US7R 이랑 버바팀 DIY Kit Pro는 UASP 지원이 정상적으로 된다고 검색이 되네요.
2017. 6. 23. 추가
uaspstor.sys 파일명 변경 시 “액세스가 거부되었습니다”라는 에러 뜨는 것 해결법① 탐색기로 C:₩Windows₩System32₩drivers 경로에 접근합니다.② uaspstor.sys 파일을 찾아서 마우스 우클릭 → 속성을 누릅니다.③ “보안” 탭에서 “고급” 버튼을 누릅니다(아래 스샷 참고).
④ 소유자가 아마 TrustedInstaller 로 설정되어 있을 겁니다. 아래 스샷을 참고하여 “변경(C)”을 눌러주고…
⑤ 아래 스샷을 참고하여 선택할 개체 이름에 Users 라고 입력 후 “이름 확인” 버튼을 누릅니다. 그러면 현재 사용자명이 앞에 추가될 겁니다. ”확인”버튼을 눌러 대화창을 빠져나옵니다.
⑥ 보안 탭으로 돌아왔으면… “그룹 또는 사용자 이름”에서 Users를 선택해보세요. 아래 스샷처럼 Users의 사용 권한에 읽기 관련 항목만 체크되어 있을 겁니다. 이걸 바꿀 거예요. “편집” 버튼을 누르고…
⑦ Users 클릭 → “Users의 사용 권한”에서 모든 권한을 체크해주고 확인버튼을 눌러 빠져나옵니다.
⑧ 이제 속성 창에서 완젼히 빠져나옵니다.⑩ 안전 모드(명령 프롬프트 사용)으로 재부팅 후 본문 상단에서 언급한 usbstor.sys을 uaspstor.sys로 빠꿔치기하는 작업을 해주면 됩니다.