Войти

Показать полную графическую версию : Как заставить Win7 не считать HDD/SDD переносными накопителями?


Sevilho
23-10-2013, 17:14
Win7 Pro 64-bit, Eng.

Когда открываешь в трее значок "Safely Remove Hardware and Eject Media" (безопасное отключение вставляемых накопителей) то видишь все SATA накопители, включая системный SSD.

Вроде такого быть не должно за исключением, быть может, внешнего винта.

Не так безобидно: когда подключаешь по SATA внешний HDD, то при перезагрузке он вылезает на первое место (из-за того, что на первом месте в приоритете загрузке в БИОСе выставлены Removable device) и система не может загрузиться.

Хотелось бы найти способ указать ОС'ме что вот этот накопитель постоянный, а вот это отключаемый.

diagnoz_
23-10-2013, 17:21
Жесткий диск выставлен в режим AHCI?Материнка не на NForce?
Вроде такого быть не должно за исключением, быть может, внешнего винта. »
Может быть.Винт поддерживает горячую замену.

Sevilho
23-10-2013, 19:10
По-моему любые SATA винты поддерживают горячую замену. Но вот на офисном компе вроде бы нет винтов в списке. Только флэшки.

diagnoz_
23-10-2013, 19:52
Sevilho,
Жесткий диск выставлен в режим AHCI?Материнка на NForce 4?
Как вариант проверьте в свойствах жесткого диска, включено кэширование?
Или если не поможет, то удалите NForce -е дровишки, а оставьте Майкрософтовские.и посмотрите на результат.
По-моему любые SATA винты поддерживают горячую замену. »
но не везде корректно реализована эта поддержка.

Sevilho
24-10-2013, 19:16
Жесткий диск выставлен в режим AHCI?Материнка на NForce 4? »
А где выставляется AHCI и как это смотреть? Неужели в BIOS'e?

Мать на интеловском чипсете Q43.

diagnoz_
24-10-2013, 20:16
Неужели в BIOS'e? »
Да.

Sevilho
25-10-2013, 17:05
Ну так стоит ли отказываться от такого прогрессивного режима ?:)

diagnoz_
25-10-2013, 17:33
Sevilho,
Да нет.он по идее и стоит у Вас в этом режиме.
Попробуйте удалить\переустановить\обновить интеловские драйвера с сайта производителя.
Если используется режим AHCI, то в «Безопасном извлечении устройств », отображается Ваш жесткий диск, потому что это обусловлено особенностями AHCI режима (функция HotPlug), безопасное извлечение оборудования во время работы самой системы.

Sevilho
26-10-2013, 13:16
А я по совету Стеркина (специалиста по SSD) как раз заменил драйвера контроллера на MS-ские (msahci.sys по-моему).

Еще нашел ветку форума (http://forum.ixbt.com/topic.cgi?id=22:76622), где эта проблема решается добавлением ключика в реестр. Этот ключик описывает тип драйва: удаляемый или постоянный. Значением указываем постоянный. В ключике указывается "адрес" драйва в виде {номер контроллера, номер канала}. После этого драйв перестается видиться в списке.

Но оставшийся внешний драйв стал редко успешно отключаться: система пишет что он занят. Утилитой Lockhunter обнаружил, что занят сервисом wmpnetwork.exe. Но раньше этот сервис тоже был запущен.

Вообщем по совокупности плюсом и минусов вернул как было. Минус: нужно выбирать отстреливаемый драйв среди нескольких. Плюс: надежное отстреливание (для меня важнее).

diagnoz_
26-10-2013, 13:38
Sevilho,
Я писал ранее Вам про удаление интелловских драйверов, и чтобы по дефолту ставились Майкрософтовские, но после удалил это сообщение и решил посмотреть на результат с переустановкой интелловских.Такое происходит не только с SSD-накопителями.И за реестр в курсе, но решил подождать, опять что скажет удаление\установка\обновление интелловских драйверов.:)

Sevilho
26-10-2013, 22:57
Вообще то не очень логично отображать все SATA драйвы, т.к., например, системный не отстрелишь - он все время занят. У меня данные на втором драйве - его тоже не отстрелишь по той же причине. Так зачем их отображать? Система могла бы быть и поумнее и не отображать драйвы, на которые установлены системные папки (для драйва данных - папки "My xxx").

8-ку еще не пробовал, но надеюсь там поправили.

А как драйверы влияют? Если в реестре есть значения каким типом интепретирует драйв ОС. По дефолту - все Removable.

Iska
26-10-2013, 23:20
Так зачем их отображать? »
Затем, что есть стандарт.

Sevilho
27-10-2013, 14:28
Затем, что есть стандарт. »
СТандарт SATA? Ой-ли? SATA - стандарт аппаратного уровня, обеспечивает горячее подключение и оптимизацию выполнения очереди команд. А как трактовать драйв - дело ОС. И наличие ключей в Реестре - тому подтверждение.

Avatar-Lion
27-10-2013, 15:45
В своё время я потратил огромное количество времени на изучение вопроса "безопасного извлечения устройств", поскольку сталкивался с подобной фигней на самых разных компьютерах и ноутбуках. Пришёл к следующим выводам:

1) BIOS здесь не при делах. На современных материнках ASUS (Socket 1155) видел в BIOS'е опции Hot Plug именно для конкретных SATA-разъёмов на материнке, но как они влияют на функцию безопасного извлечения в самой ОС - каюсь, не проверял. Причем это единственный случай, когда про Hot Plug было упоминание в BIOS'е. Конечно, на более старых материнках такая функция тоже могла быть, но навскидку я могу только свежие ASUS'ы вспомнить.

2) Будет устройство считаться извлекаемым или нет - зависит не столько от материнки \ BIOS'а \ чипсета \ системы, сколько от драйвера. Если быть точным, то всё решает DWORD-параметр "Capabilities", который есть у каждого устройства в системном реестре. Для этого надо прогуляться в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum и там найти нужный девайс. Приводы и харды, как правило, находятся в категориях IDE или SCSI. Несложно заметить, что Capabilities у большинства устройств разный и, самое главное, я пока что не смог найти чёткого списка всех возможных значений этого параметра, чтобы понять при каком значении просто отключается функция безопасного извлечения, а не что-нибудь ещё из других функций устройства. Я не уверен даже кто именно задает значение параметра Capabilities - устанавливаемый драйвер или сама система.

3) В любом случае, вручную менять параметр Capabilities смысла мало, поскольку исходное значение будет восстанавливаться автоматом при каждой перезагрузке компьютера. Единственный выход - это сделать REG-файлик вида:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\IDE\CdRomPBDS_DVD+-RW_DS-8W1P____________________BD1B____\5&c10f4f&0&0.0.0]
"Capabilities"=dword:00000002
После чего создать в ветке HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run новый строковый параметр (имя любое) со значением вида regedit /s "C:\Documents and Settings\user\My Documents\DVD Not Removable.reg (ну или где там ваш reg-файлик лежит). В этом случае для текущего пользователя указанный девайс будет скрыт из списка безопасного извлечения. При этом подобная халява возможна только в Windows XP, в Windows 7 придётся серьёзно поковыряться в правах для нужной ветки реестра, ибо Windows 7 уже не дает так легко менять параметр Capabilities. Причем применять такой трюк с reg-файликом можно для чего угодно, вплоть до кард-ридеров, веб-камер и прочей мелочи, которая порой по неясным причинам оказывается в списке безопасно извлекаемых девайсов.

4) Я более чем уверен, что разработчики всех драйверов для SATA-контроллеров предусмотрели те или иные опции для включения \ отключения опции горячего извлечения. Другое дело, что реализовано оно может быть по-разному.
- AHCI-драйвер от Microsoft в этом плане самый удобный. Просто делаем Пуск - Выполнить: reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\msahci\Controller0\Channel0" /f /v TreatAsInternalPort /t REG_DWORD /d 0x00000001 (как видим, при необходимости Channel0 можно поменять на 1, 2, 3 и т.д. - смотря какой именно SATA-разъём надо отключить).
- AHCI-драйвер от Intel в этом плане менее удобен: он отключает все внутренние SATA-порты (насчет eSATA не знаю, сорри). В принципе, большой беды тут не вижу, ибо мало кто лазит внутрь, чтобы дёргать харды на горячую, а для USB-хардов функция безопасного извлечения и так прекрасно работает. Самое обидное, что вместе с драйвером Intel обычно даёт в нагрузку и собственную утилиту для мониторинга состояния хардов в рамках технологии Intel Rapid Storage Technology. И она не позволяет включать \ отключать безопасное извлечение для конкретных SATA-портов... В общем, недоработка серьезная весьма для такой конторы, я считаю, но тут уж ничего не поделаешь.
- AHCI-драйвер от AMD в этом плане ужасный просто, в том смысле что его установка ничего не меняет. Впрочем, функция безопасного извлечения актуальна только для старых чипсетов, если не ошибаюсь. Как правило, единственный вариант убрать безопасное извлечение харда - это заморочиться с тем самым REG-файликом при старте ОС. Ну либо остаться на AHCI-драйвере от Microsoft, он в этом плане более удобный. Хотя недавно наткнулся на интересный совет: вручную принудительно поставить RAID-драйвер, а не AHCI. На чипсетах 7xx-серии прокатило, как ни странно - контроллер хоть и перебрался в SCSI-категорию, но заимел при этом надпись "AHCI Compatible". Безопасное извлечение пропало. При этом что самое забавное, ставить нужно RAID-драйвер от Vista, ибо RAID-драйвер для Widows 7 устанавливаться не желает по причине "отсутствия совместимого оборудования".
- AHCI-драйвер от Marvell в этом плане простой как две копейки: после его установки на SATA-контроллер достаточно зайти в его свойства, перейти на новую вкладку Policy и снять галочку "Enable Safely Removable", после чего достаточно лишь перезагрузить комп и все SATA-диски, которые подключены к нему, пропадут из списка безопасно извлекаемых. Как видим, отдельно для каждого харда такое не настроить, да и встречаются SATA-контроллеры от Marvell очень редко, но тут уж ничего не поделаешь.
- AHCI-драйвер от NVidia в этом плане такой же: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvata, где нужно исправить или добавить строку типа DWORD DisableRemovable=1 (вместо раздела "nvata", могут быть "nvatabus" , "nvata64").
- AHCI-драйвер от JMicron в этом плане схож с предыдущим. Достаточно лишь сделать Reg-файлик вида:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\jraid\Private]
"CustomizedSetting2"=dword:00000038
И дважды кликнуть на нём. После перезагрузки все харды, подключенные к нему, пропадут.

Sevilho
28-10-2013, 18:36
Обширная полезная инфа по разным вендорам да еще собранная вместе. Тянет на гайд.

Avatar-Lion
30-10-2013, 00:16
Sevilho, Спасибо, конечно, но хотелось бы услышать комментарии более опытных товарищей. В частности, очень интересует кто же именно задаёт значение параметра Capabilities - система или драйвер? Лично я считаю что все же драйвер, однако inf-файлы драйверов не содержат упоминаний даже о таком слове. Просто по мне так так проще перед установкой драйвер отредактировать, нежели потом с REG-файликом морочиться. Который, кстати, любой неопытный юзер выкинет из автозапуска (сам или через "ускоряльщик-оптимизатор" какой-нибудь), после чего наверняка удивится появившемуся харду.

bifido
28-05-2018, 22:28
Avatar-Lion,
Бесценная информация, очень пригодилась, сделал для семерки задание в планировщике (http://www.paralint.com/blog/2008/11/13/stop-internal-drive-showing-up-in-safely-remove-hardware/).

Avatar-Lion
29-05-2018, 10:41
bifido, http://forum.oszone.net/thread-273177.html - здесь чуть больше информации.




© OSzone.net 2001-2012