Computer >> 컴퓨터 >  >> 시스템 >> Windows 7

Windows에서 내부 SSD/SATA 드라이브가 이동식 드라이브로 표시될 때 해결 방법

Windows 10, 8.1 또는 7을 사용하다 보면 내장형 SSD나 SATA 하드 디스크를 이동식 장치(리무버블 미디어)로 잘못 인식하는 경우가 있습니다. 이 경우 작업 표시줄 시스템 트레이에 일반 USB 메모리처럼 '하드웨어 안전 제거' 아이콘이 나타나게 됩니다.

물론 Windows가 설치된 SATA 드라이브를 실제로 꺼낼 수는 없지만, 추가로 장착된 SATA 디스크를 실수로 제거 대상에 포함시킬 위험이 있습니다. 또한 이렇게 '이동식'으로 분류된 드라이브는 Windows 7 및 8.1에서 여러 개의 파티션을 생성할 수 없다는 단점도 있습니다(다중 파티션 생성은 Windows 10 1703 이상부터 가능합니다).

이 문제의 원인은 Windows가 내부 SATA 드라이브와 외장 eSATA 하드 디스크에 동일한 드라이버인 표준 SATA AHCI 컨트롤러(Standard SATA AHCI Controller)를 사용하기 때문입니다. 드라이브가 연결되면 운영 체제는 해당 드라이브가 HotPlug(핫 플러그, 전원 켜진 상태에서의 탈착) 기능을 지원하는지 확인하는데, 컨트롤러가 AHCI 모드로 동작한다면 이 기능은 항상 지원됩니다. 이론적으로 AHCI 모드의 SATA 드라이브는 모두 안전 제거 목록에 표시되어야 하지만, 대부분의 칩셋 제조사는 내부 SATA 드라이브를 자동으로 숨기는 기능을 자체 드라이버나 별도 유틸리티에 통합해 두었습니다.

SATA 컨트롤러 드라이버 설치

안전 제거 목록에 내장 SATA/SSD 드라이브가 표시된다면, 가장 먼저 더 적합한 컨트롤러 드라이버를 설치해 보는 것이 좋습니다. 메인보드 또는 PC 제조사 웹사이트에서 최신 버전의 하드 디스크 컨트롤러 드라이버를 찾아 설치하세요. 아울러 메인보드 칩셋용 기본 드라이버(Intel Rapid Storage Technology, RST, AHCI Driver, Intel Matrix Storage Manager 등)도 함께 설치하면 도움이 됩니다.

BIOS에서 SATA 컨트롤러 설정 변경

일부 BIOS/UEFI의 고급 설정 메뉴에서는 컨트롤러의 HotSwap 또는 HotPlug 모드를 비활성화할 수 있습니다. 사용 중인 컴퓨터에서 해당 옵션이 제공되는지 확인해 보세요. 또한 컨트롤러 모드를 AHCI에서 IDE로 변경하는 방법도 있지만, 이 경우 AHCI 모드가 제공하는 NCQ 등 다양한 성능상 이점을 잃게 되므로 권장하지 않습니다.

TreatAsInternalPort: 레지스트리로 SATA 포트를 내부 포트로 지정하기

NVidia 컨트롤러를 사용하는 경우에는 레지스트리를 통해 내장 드라이브의 안전 제거 기능을 비활성화할 수 있습니다. regedit.exe를 실행한 후 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvata 키로 이동하여 DisableRemovable이라는 이름의 DWORD 값을 만들고 데이터를 1로 설정합니다(환경에 따라 nvata 대신 nvatabus 키가 존재할 수 있습니다).

NVidia 외의 환경에서도 레지스트리를 통해 특정 컨트롤러 포트를 '내부 포트' 속성으로 지정하는 범용적인 방법이 있습니다.

먼저 하드 디스크가 연결된 컨트롤러의 버스 번호를 확인해야 합니다. 장치 관리자(devmgmt.msc)를 열고 디스크 드라이브(Disk drives) 목록에서 해당 드라이브를 찾은 뒤 속성을 엽니다. 여기서 버스 번호(Bus Number)와 포트 번호(Target ID)를 확인하고 기록해 둡니다. 예시에서는 버스 번호와 포트 번호가 모두 0입니다.

Windows 7에서는 TreatAsInternalPort 레지스트리 매개변수를 사용해 컨트롤러 포트를 내부 포트로 지정할 수 있습니다. regedit.exe를 실행한 후 HKLM\SYSTEM\CurrentControlSet\Services\msahci\Controller(n)\Channel(N) 키로 이동합니다. 여기서 (n)은 드라이브가 연결된 컨트롤러 번호, (N)은 컨트롤러 채널(포트) 번호입니다.

해당 레지스트리 키에서 이름이 TreatAsInternalPort이고 값이 1인 DWORD 매개변수를 생성합니다.

내부 드라이브로 표시할 모든 SATA 드라이브에 대해 이 작업을 반복해야 합니다. 예를 들어 컴퓨터에 드라이브 컨트롤러가 2개 있고, 첫 번째 컨트롤러에 SATA 드라이브 2개, 두 번째 컨트롤러에 SATA 드라이브 1개가 연결되어 있다면 다음 명령을 실행합니다:

reg add "HKLM\SYSTEM\CurrentControlSet\Services\msahci\Controller0\Channel0" /f /v TreatAsInternalPort /t REG_DWORD /d 0x00000001
reg add "HKLM\SYSTEM\CurrentControlSet\Services\msahci\Controller0\Channel1" /f /v TreatAsInternalPort /t REG_DWORD /d 0x00000001
reg add "HKLM\SYSTEM\CurrentControlSet\Services\msahci\Controller1\Channel0" /f /v TreatAsInternalPort /t REG_DWORD /d 0x00000001

설정 변경 후에는 컴퓨터를 재시작해야 합니다.

참고로 diskpart나 diskmgmt.msc에서 보이는 디스크 번호가 SATA 또는 RAID 채널 번호와 항상 일치하는 것은 아니므로 주의해야 합니다.

Windows 10/8.1에서는 MSAHCI 대신 StorAHCI 드라이버가 사용되므로 TreatAsInternalPort 매개변수의 레지스트리 위치가 다릅니다. HKLM\SYSTEM\CurrentControlSet\Services\storahci\Parameters\Device 키로 이동한 후, TreatAsInternalPort라는 이름의 다중 문자열 값(REG_MULTI_SZ)을 생성하고 각 줄에 내부 포트로 지정할 SATA 컨트롤러의 포트 번호를 입력합니다. 예를 들어 포트 0부터 3까지의 모든 드라이브를 내부 드라이브로 지정하려면 TreatAsInternalPort 값을 다음과 같이 설정합니다:

0
1
2
3

설정 완료 후 컴퓨터를 재시작하면 포트 번호 0~3에 연결된 모든 SATA/SSD 드라이브가 안전 제거 목록에서 숨겨지고, 더 이상 이동식 드라이브로 표시되지 않습니다.