В некоторых случаях Windows 10, 8.1 и 7 может распознавать внутренний жесткий диск (SATA или SSD) как съемное устройство. В результате в системном трее для такого локального диска отображается значок безопасного извлечения устройства (как у обычной USB флешки).
Конечно, вы не сможете извлечь на лету 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 и создайте DWORD параметр с именем DisableRemovable и значением 1 (обратите внимание, что вместо раздела nvata может быть ключ nvatabus).
Также есть универсальный способ выставить для конкретного порта контроллера атрибут диска “внутренний порт” через реестр.
Сначала нужно определить номер шины контроллера, через который подключен жесткий диск. Для этого откройте диспетчер устройств devmgmt.msc, найдите в разделе дисков свой диск, откройте его свойства. Запомните номер шины (Bus Number) и номер порта (канала) диска (Target ID). В моем примере номер шины и порта — 0.
В Windows пометить порт контроллера как внутренний можно с помощью параметр реестра TreatAsInternalPort. Для этого перейдите в HKLM\SYSTEM\CurrentControlSet\Services\msahci\Controller(n)\Channel(N), где (n) – номер контроллера, через который подключен диск, а (N) номер канала контроллера.
Создайте в данном ключе реестра DWORD параметр с именем 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
После внесения изменений нужно перезагрузить компьютер.
В 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
Осталось перезагрузить компьютер, и все SATA/SSD диски с портами от 0 до 3 пропадут из безопасного извлечения и перестанут отображаться как removable.
Вот решение от MS https://support.microsoft.com/ru-ru/help/3083627/internal-sata-drives-show-up-as-removeable-media
Лично у меня, такая хрень случилась, когда я поменял процессор(intel на amd) с материнской платой(asus на gigabyte). Так вот, чтоб всё стало, как было прежде, нужно заменить драйвер: через Диспечер устройств (нажмите одновременно на клавиши клавиатуры «Win» + «R». В поле «Открыть» введите команду: «devmgmt.msc» (без кавычек), а затем нажмите на кнопку «ОК».)
Контроллеры IDE ATA/ATAPI :
amd сата контроллер
на
Стандартный контроллер SATA AHCI
Прописал в реестре, помогло! Спасибо!
Помогла вот эта часть статьи, цитирую:
===============================
Настройки SATA контроллера в BIOS
В некоторых версиях BIOS/UEFI в расширенных настройках возможно отключить горячее подключение (HotSwap или HotPlug) для разъёма, через который подключается жесткий диск. Проверьте, доступна ли у вас эта функция.
===============================
Спасибо!
Спасибо большое. метод с реестром для винды работает отлично.
Windows 10 20h2 через реестр все сделал как написано, но ничего не изменилось, что я делаю не так?
Нужно номер шины прописывать, тогда отключает горячее подключение.
Подключено 3 диска: 2 одинаковых жестких и 1 ssd
При просмотре шины показывает
Жесткий диск №1 «Размещение: Bus Number 0, Target Id 0, LUN 0″
Жесткий диск №2 «Размещение: Размещение 1 (Bus Number 0, Target Id 0, LUN 0)»
Как узнать где (n) – номер контроллера, через который подключен диск, а где (N) номер канала контроллера?
Нормально ли если у двух жестких дисков вот это «Bus Number 0, Target Id 0, LUN 0» одинаковое?
Если нужно пометить только один диск, как внутренний, то нужно ли помечать еще и другие тоже?
Какая у вас ОС? Если Windows 10, то нужно использовать параметр реестра TreatAsInternalPort. Там просто указывается номер диска (нумерация начинается с 0).
Если старая ОС, то когда Bus Number 0, Target Id 0 одинаковые, значит диски подключены через разные контроллеры.
У меня после этого способа, комп перестал загружаться(( как будто ссд диск совсем не видит
…создайте DMORD параметр с именем DisableRemovable
Надо бы поправить, не бывает параметра DMORD.
Ну подумаешь, буква перевернулась.
Спасибо, через реестр win11 помогло.
Спасибо, помогло через реест, windows 10
а как nvme отключить? обновил какой то драйвер, уже не известно какой и появилась эта фигня.
винда 11
Добавил параметр в реестр — помогло. Спасибо большое!
SSD NVME M.2 отображался как внешний scsi дисковое устройство. Перепробовал все советы — не помогло. Потом посмотрел в диспетчере устройств/контроллеры запоминающих устройств -стоит драйвер Silicom NVME. Удалил полностью, включая копии драйвера в скрытых устройствах. Перезагрузил, комп несколько раз рестартовал, неудачно. Загрузил в safe mode. Window установил стандартный драйвер контроллера NVM. Перезагрузил — всё отлично, диск — как внутренний!!!
Спасибо. Помогло
Спасибо большое !!! Пол дня ковырялся в реестре ничего не работало ,оказалось всё намного проще благодаря Вашему комментарию.
Добрый день друзья мои! Поделюсь, как у меня получилось убрать из быстрого извлечение NVMe диски, вдруг кому пригодится: Диспетчер устройств-Контроллеры запоминающих устройств-там у меня было две строки Phison NVMe 1.2 Storport miniport. Я нажал: Обновить драйвер — Найти драйверы на этом компьютере — Выбрать драйвер из списка доступных драйверов на компе — Стандартный контроллер NVM Express-Перезагрузка — и все получилось! Всем бесконечного терпения:)
Большое спасибо 🙏🫡
В целом уже давно подходил к этому делу, но четно. Сегодня опять на весь день подсел и именно это помогло) Спасибо
Помогло, благодарю. Способ с реестром не помогал, 2 диска M2 на asus Z790 windows11
Спасибо. На эту проблему был потрачен весь день опробовано было уже все, только это и помогло.
Спасибо Друг! Два дня с бубном а тут вон оно чё одна минута и готово. Спасибо.
Николай, вы лучший!
делал по топику не помогло,целый день убил на это,а по вашему методу все прошло отлично,теперь не мозолит глаза,спасибо большое
Спасибо, помогло!
Windows 10, контроллер «Asmedia 106x SATA Controller», диск самый простой: ST1000NM0011.
Везде где можно, для «TreatAsInternalPort» поставил «0 1 2 3», «как советуют лучшие гуру» администрирования.
Диск все-равно отображается как съемный.
Вопрос остается открытым….
Добрый день. с накопителями и сменой драйвера на стандартный всё ясно.
а вот как быть с сервером? :)))
пришлось срочно купить сервер, в наличии были только iRU. в итоге, после установки всех драйверов, как флешку можно извлечь — сетевую карту, RAID контроллер и «Intel Xeon processor P family/Core i7 PCI Express Root Port A» 3 шт. и Root Port C 2 шт.
как эту беду побороть я не представляю, но никто не застрахован случайно нажать не туда в самый ответственный момент, а хотелось бы этого избежать. есть идеи?
в саппорт конечно же обращусь, если тут никто не поможет.
жаль нельзя скриншот приложить для наглядности.
Попробуйте скрыть иконку безопасного извлечения usb устройств (Safely Remove Hardware) из трея через реестра:
Предварительно посмотрите старое значение:
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\SysTray /v “Services”
Измените:
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\SysTray /v “Services” /t reg_dword /d 29 /f
Елси поможет для текущего пользователя, примените для всех через HKLM
Там всё есть меню, отстаньте от реестра раз уж пользуете эту прогу.
Николай, я готов Вас расцеловать)) 2 дня убил на это, а оказалось все так просто. Большое спасибо, дружище!
Давно пользую эту прогу: USB Safely Remove.
Николай 24.10.2023 Стандартный контроллер NVM Express-Перезагрузка — и все получилось! Всем бесконечного терпения:)
Спасибо! за подсказку !