Локальный SATA/SSD диск отображается как съемное устройство в Windows

В некоторых случаях Windows 10, 8.1 и 7 может распознавать внутренний жесткий диск (SATA или SSD) как съемное устройство. В результате в системном трее для такого локального диска отображается значок безопасного извлечения устройства (как у обычной USB флешки).

Внутренний SATA диск отображаются как съемные носители

Конечно, вы не сможете извлечь на лету SATA диск, на котором установлена Windows, но запросто сможете случайно извлечь дополнительный SATA диск. Еще один недостаток таких “Removable” дисков — в Windows 7 нельзя было разбить такой жесткий диск на разделы (в Windows 10 1703 и выше это возможно).

Эта проблема связан с тем, что в Windows по-умолчанию использует универсальный драйвер как для SATA (внутренних), так и для eSATA (внешних) жестких дисков — Standard SATA AHCI controller. Операционная система при подключении таких дисков проверяет поддержку режима HotPlug (извлечения диска “на-горячую”). Данный функционал всегда поддерживается при работе контроллера в режиме AHCI, поэтому в теории, подключенные в таком режиме SATA диски, всегда должны отображаться в списке “Безопасное извлечение устройств”. Однако большинство производителей чипсетов встраивают в драйвер своих устройств или дополнительное ПО функционал автоматического скрытия внутренних SATA дисков.

Установка драйвера SATA контроллера

Если у вас внутренний SATA/SSD диск отображаются в списке безопасного извлечения, скорее всего стоит попробовать установить более подходящий драйвер. Попытайтесь найти последнюю версию драйвер контроллера жесткого диска на сайте производителя вашей материнской платы или компьютера. Также установите родной драйвер чипсета, через который подключен ваш жесткий диск (Intel Rapid, RST and AHCI Driver and GUI, Intel Matrix Storage Manager и т.д.)

Настройки SATA контроллера в BIOS

В некоторых версиях BIOS/UEFI в расширенных настройках возможно отключить горячее подключение (HotSwap или HotPlug) для разъёма, через который подключается жесткий диск. Проверьте, доступна ли у вас эта функция. Также можно изменить режим работы контролера с AHCI на IDE, но вы лишитесь всех преимуществ AHCI.

TreatAsInternalPort: Настройка режима работы SATA дисков через реестр

Для NVIdia контроллеров можно отключить безопасное извлечение на внутренних дисках через реестр. Перейдите в ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvata и создайте DMORD параметр с именем DisableRemovable и значением 1 (обратите внимание, что вместо раздела nvata может быть ключ nvatabus).

Также есть универсальный способ выставить для конкретного порта контроллера атрибут диска “внутренний порт” через реестр.

Сначала нужно определить номер шины контроллера, через который подключен жесткий диск. Для этого откройте диспетчер устройств devmgmt.msc, найдите в разделе дисков свой диск, откройте его свойства. Запомните номер шины (Bus Number) и номер порта (канала) диска (Target ID). В моем примере номер шины и порта — 0.

sata диск Bus Number

В Windows пометить порт контроллера как внутренний можно с помощью параметр реестра TreatAsInternalPort. Для этого перейдите в HKLM\SYSTEM\CurrentControlSet\Services\msahci\Controller(n)\Channel(N), где (n) – номер контроллера, через который подключен диск, а (N) номер канала контроллера.

Создайте в данном ключе реестра DMORD параметр с именем TreatAsInternalPort и значением 1.

Это действие нужно выполнить для всех SATA дисков, которые вы хотите пометить внутренними. Например, у вас на компьютере 2 контроллера, к первому подключено 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, создайте мультистроковый (REG_MULTI_SZ) параметр TreatAsInternalPort, в каждой строке которого нужно указать номер порта SATA контроллера, который нужно пометить “внутренним”. Например, чтобы пометить внутренними все диски с 0 до 3, в качестве значения TreatAsInternalPort нужно указать:

0
1
2
3

TreatAsInternalPort - поместить sata порт внутренним

Осталось перезагрузить компьютер, и все SATA/SSD диски с портами от 0 до 3 пропадут из безопасного извлечения и перестанут отображаться как removable.

(c)winitpro

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top