Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   Как убрать безопасное извлечение для HDD \ SSD (http://forum.oszone.net/showthread.php?t=273177)

Avatar-Lion 01-12-2013 21:27 2265088

Как убрать безопасное извлечение для HDD \ SSD
 
Данная тема носит сугубо информационно-познавательный характер и предназначена для людей, которые хотят убрать свои жёсткие диски и твердотельные накопители из списка безопасно извлекаемых устройств. Сначала у меня появилась мысль отредактировать свой изначальный пост, но потом решил создать отдельную тему, поскольку сей вопрос тревожит пользователей регулярно. Надеюсь, модераторы со мной согласятся и не станут удалять тему. Ну или просто перенесут в более подходящий раздел форума. В общем, как там говорил Гагарин? Поехали...

***

Будет ли устройство считаться извлекаемым или нет, зависит от DWORD-параметра "Capabilities", который есть у каждого устройства в системном реестре (ветка HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum). Данный параметр, в свою очередь, задаётся драйвером устройства при каждой загрузке системы. Отредактировав его по формуле "текущее значение минус четыре", мы сделаем устройство уже обычным, а не извлекаемым. Надо заметить, что приоритет данного параметра для системы выше исходного значения, которое задаёт драйвер. Таким образом, изменив параметр "Capabilities" и перезапустив Проводник (Explorer.exe), мы уберём жёсткий диск или любое другое устройство из списка безопасно извлекаемых устройств. Хотя после перезагрузки, естественно, всё вернётся обратно. Выхода здесь два:
  1. Задать нужное значение параметру "Capabilities", после чего запретить системе (пользователь SYSTEM) доступ в эту ветку. Если честно, сам я это не проверял и что будет после этого, я не знаю. Возможно, появятся какие-то ошибки в виде системных сообщений или записи в Журнале Windows. А возможно, ничего не будет. Совет этот я взял отсюда (пост №16), ни о каких негативных последствиях там не написано, но это не значит, что их нет.
  2. В каталоге Пуск > Все программы > Автозагрузка (правой кнопкой > Открыть) создаём ярлык, вставив в качестве пути к файлу строчку regedit /s "C:\Windows\HDD Not Removable.reg" (название самому ярлыку можете дать любое). Естественно, проследите чтобы файл HDD Not Removable.reg действительно находился в C:\Windows и содержал уже отредактированный DWORD-параметр "Capabilities". Пример такого файла:
    Код:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SCSI\Disk&Ven_ATA&Prod_OCZ-REVODRIVE3\5&39dd44c4&0&000000]
    "Capabilities"=dword:00000060 <<< это уже измененное значение, исходное было 64!

Естественно, у обоих методов есть минусы. В первую очередь это касается Windows 7, которая (в отличие от Windows XP) по умолчанию запрещает пользователю редактирование таких важных настроек как параметры оборудования. Это значит, что вам придётся вручную править параметры доступа к нужной ветке реестра, причём нет никаких гарантий, что права эти не вернутся обратно после обновления какого-либо драйвера или просто самой системы. Кроме того, в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum очень много различного оборудования, причём некоторые ветки дублируются, поэтому найти именно свой жёсткий диск и именно тот параметр, на который смотрит система, может быть не так уж и легко. Гораздо лучше будет попытаться присвоить нужное значение параметру "Capabilities" с помощью драйвера. Конечно, написать драйвер с нуля простой пользователь не сможет, но вот попытаться найти и поставить референсный драйвер на SATA-контроллер ему вполне по силам. На всякий случай уточню: референсный драйвер - это драйвер, написанный "авторами" самой железки (Intel, AMD, NVIDIA и т.д.). Такие компании-производители как ASUS, GigaByte, MSI и прочие сами драйвера не пишут, они лишь выкладывают у себя на сайтах копию референсных драйверов. Причём несложно догадаться, что отслеживать новые драйвера тех.поддержка всех без исключения производителей ленится, поэтому не удивляйтесь, если для вашей "элитной" материнской платы от той же ASUS на сайте будет лежать лишь одна-единственная версия SATA-драйвера, да и тот уже покрылся пылью, поскольку по версии видно, что лежит он там с тех самых пор, как материнская плата поступила в продажу...

***

Intel
Перейдите на страницу Центра загрузки Intel и с помощью системы выпадающих менюшек выберите следующие пункты:
1) Семейство продукции: ПО
2) Серия продукции: ПО для набора микросхем
3) Название продукции: Технология хранения Intel ® Rapid (Intel ® RST)

Нажмите кнопку Поиск. Будет сформирован список доступных для загрузки файлов. Кликните по слову "Дата" в заголовке этой колонки, чтобы самый новый из файлов оказался первым в списке. Выберите его и вам будет предложено скачать три файла: архивы f6flpy-x86.zip и f6flpy-x64.zip, а также установщик SetupRST.exe. В архивах содержатся драйвера для 32-разрядной и 64-разрядной системы соответственно. Процедура обновления драйвера стандартная: извлекаем все файлы из архива, после чего в Диспетчере устройств выбираем ручное обновление драйвера для SATA-контроллера, указав ему каталог с распакованными драйверами. Особо ленивые пользователи могут воспользоваться установщиком (SetupRST.exe). Он и драйвер вам новый поставит, и соответствующую утилиту (по сути бесполезную) закинет в автозапуск.

Важно! Компания Intel не обеспечивает обратной совместимости в своих драйверах со старыми версиями SATA-контроллеров. Немного истории... Физически SATA-контроллер располагался в ICH (сокр. от I/O Controller Hub, он же "южный мост"). ICH подключался, в свою очередь, к MCH (сокр. от Memory Controller Hub, он же "северный мост"), который являлся связующим звеном для всех устройств (процессор, видеокарта, память и т.д.). Однако в процессе развития и совершенствования компьютерных технологий северный мост перебрался в центральный процессор. Оставшийся сиротой ICH переименовали в PCH (сокр. от Platform Controller Hub, хотя многие по привычке кличут его "южным мостом"). Всё это привело к появлению новых драйверов для SATA-контроллеров. Изучив inf-файлы драйверов Intel, можно сделать следующие выводы:

- Южный мост: ICH7R/DH, ICH7M/MDH, ICH8R/DH/DO, ICH8M-E/M, ICH9R/DO/DH
- Последняя актуальная версия драйвера: 11.2.0.1006 (скачать)

- Южный мост: ICH9M-E/M, ICH10D/DO, ICH10R
- Последняя актуальная версия драйвера: 11.7.0.1013 (скачать)

Соответственно, если ваш южный мост более современный, то он в эти списки не входит и можно скачивать самую последнюю версию драйвера. Посмотреть модель своего южного моста можно с помощью любой программы, предназначенной для сбора информации о компьютере, например, AIDA64 (скриншот-пример).

AMD
Драйвера компании AMD одновременно и проще, и сложнее. С одной стороны, есть единый пакет под названием "AMD Chipset Drivers", куда помимо всего прочего входят драйвера для SATA-контроллеров, работающих в режиме AHCI. С другой стороны, у них есть пакет "AMD RAID Drivers", который включает в себя всё те же AHCI-драйвера, однако после их установки SATA-контроллер перестаёт быть таковым и становится уже SCSI-контроллером. Кстати, попасть на страницу загрузки драйверов AMD для чипсетов нормальным путём почему-то нельзя, её можно найти только с помощью поисковика. Поэтому даю прямую ссылку. Чем одна версия драйверов отличается от другой - не указано, кстати, поэтому будем исходить из того, что версия 13.4 выпущена под Windows XP, а версия 13.9 под Windows 7.

Общие рекомендации по установке драйверов AMD:

- При установке выбирайте "Пользовательский" режим, а не "Быстрый". Дело в том, что в состав любого пакета драйверов у AMD входит менеджер установки (AMD Catalyst Install Manager). Который, естественно, успешно установится в любом случае, в то время как какие-то драйвера могут не подойти. Но вы об этом не узнаете! Потому выбирайте "Пользовательский" режим. В этом случае установщик перед установкой покажет вам список устанавливаемых компонентов. Если драйвера подходят, то список будет выглядеть примерно так: скриншот. А примерно так выглядит установщик, когда подходящих драйверов не нашлось: скриншот.

- Может случится такое, что после установки AMD Chipset Drivers название SATA-контроллера в Диспетчере устройств поменялось, а вот толку от этого никакого. Например, был "Стандартный контроллер AHCI 1.0 Serial ATA", а стал "AMD SATA Controller", однако жёсткий диск по-прежнему считает, что его можно "безопасно извлечь". В этом случае устанавливаем пакет AMD RAID Drivers.

- Если AMD RAID Drivers откажется устанавливаться, то придётся воспользоваться обходным путём. Для этого перейдите в каталог, где лежит распакованный драйвер. По умолчанию путь будет примерно таким: C:\AMD\Support\13-9_win7_win8_32-64_raid\Packages\Drivers\SBDrv\SB7xx\RAID. В нём будет два подкаталога: один для 32-разрядных систем, другой для систем с 64-разрядной архитектурой (с соответствующей пометкой "64А"). Откройте Диспетчер устройств и укажите путь к нужному каталогу с драйвером вручную. Если же система скажет, что подходящих драйверов там не нашлось, то придётся установить драйвер в принудительном порядке. Для этого на экране указания пути к каталогу с драйвером нажимайте не "Обзор", а кнопку ниже - "Выбрать драйвер из списка уже установленных драйверов". С помощью кнопки "Установить с диска..." выберите inf-файл драйвера.

- Если же и ручное указание inf-файла не помогло, то пробуем AMD RAID Drivers версии 13.4, а не 13.9. Дело в том, что в версии 13.4 есть драйвера для Windows Vista, которые должны подойти и для Windows 7. Только обратите внимание, что Windows Vista имела кодовое название "Longhorn" при разработке, поэтому подкаталоги с драйверами с ней могут иметь сокращенное название LH.

NVIDIA
К счастью, компания NVIDIA куда лучше относится к драйверам, нежели AMD. На странице загрузки драйверов NVIDIA всегда можно выбрать пункт "Legacy", чтобы получить доступ к архиву драйверов, выпущенных в прошлом для чипсетов. Но бывает и так, что даже установка драйверов ситуацию с безопасным извлечением не меняет. В этом случае придётся открыть ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvata (как вариант, Nvraid) и создать DWORD-параметр с названием DisableRemovable, после чего дважды кликнуть на нём и поменять нолик на единичку. После перезагрузки жёсткий диск должен пропасть из списка. От себя добавлю, что Microsoft под Windows 7 выпускала для некоторых SATA-контроллеров NVIDIA свои собственные драйвера. Они параметр DisableRemovable игнорируют, по крайне мере, лично мне не удалось на них заставить исчезнуть жёсткий диск из списка безопасно извлекаемых устройств.

JMicron
Драйвера на SATA-контроллеры компании JMicron можно найти у них на FTP-сервере. Драйвер, судя по всему, универсальный, поэтому можно просто скачать и установить самую последнюю версию, после чего посмотреть что получится. Если же и после установки жёсткий диск по-прежнему будет считать, что его можно безопасно извлечь, то придётся прогуляться в ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\jraid\Private, создать там DWORD-параметр CustomizedSetting2 и присвоить ему значение 38.

Marvell
К сожалению, компания Marvell не выкладывает у себя на сайте референсные драйвера для своих SATA-контроллеров, поэтому проще всего будет скачать драйвера с какого-нибудь крупного интернет-портала вроде Station Drivers, где народ самостоятельно коллекционирует драйвера от всех производителей подряд. После установки драйвера на SATA-контроллер достаточно зайти в его свойства, перейти на новую вкладку Policy и снять галочку "Enable Safely Removable".

vagifali 13-05-2014 17:07 2350916

Здравствуйте!

Помогите пожалуйста воспользоваться данным советом по изменению параметра Capabilities в реестре. После перезагрузки прежнее значение 64 восстанавливается. Доступ системе к данному разделу разрешен только на Чтение разрешений. Как правильно установить разрешения? У меня Windows 8.1

Shimmer 13-05-2014 17:51 2350940

Очень познавательная и информативная статья, спасибо!

Avatar-Lion 14-05-2014 13:03 2351278

vagifali, Оно и должно восстанавливаться. Обойти это можно только с помощью REG-файла в автозагрузке. Пример такого файла есть в посте №1. Что хоть за устройство вы хотите убрать из списка безопасно извлекаемых?

vagifali 14-05-2014 14:42 2351311

Спасибо за ответ.

Из списка безопасного извлечения я хочу убрать HDD

Avatar-Lion 14-05-2014 15:21 2351328

vagifali, А конкретнее можно? Какой диск - внешний или обычный (внутренний)? Что за материнская плата?

vagifali 14-05-2014 19:46 2351476

Конечно, можно.

Диск обычный (внутренний) WDC WD10EZEX-60ZF5A0

Материнская плата Gigabyte GA-945GCM-S2C

Диск подключен через PCI SATA контроллер на чипе Asmedia1061. При установке системы для него был автоматически установлен драйвер
"Стандартный контроллер SATA AHCI" от Microsoft

Shimmer 15-05-2014 00:15 2351587

Цитата:

Цитата Avatar-Lion
С другой стороны, у них есть пакет "AMD RAID Drivers", который включает в себя всё те же AHCI-драйвера, однако после их установки SATA-контроллер перестаёт быть таковым и становится уже SCSI-контроллером. »

...и HDD пропадает из CrystalDiskInfo. Чем фирменный драйвер лучше стандартного драйвера Windows 7?

Avatar-Lion 15-05-2014 11:13 2351703

vagifali, Попробуйте этот драйвер.

Shimmer, Я не говорил что он лучше. Речь в данном случае шла про убирание HDD из списка безопасно извлекаемых устройств. Если вас все устраивает, то можете с драйверами не заморачиваться.

SergAS70 15-05-2014 12:50 2351730

Может кому пригодится.. в программе usb safely remove есть скрытие любого накопителя сидящего в списке загруженных.
Простому обывателю в принципе большего и не нужно.

vagifali 15-05-2014 15:52 2351783

Я, конечно, извиняюсь, но связываться с драйверами Асмедии категорически отказываюсь. В свое время я от них сильно потерпел на ХР - BSOD по нескольку раз ежедневно. А когда написал в службу поддержки компании, они ответили, что Асмедиа драйверы не разрабатывает и соответственно не поддерживает. Собственно, в основном из-за этой головной боли и был совершен переход на 8.1, где уже неделя как никаких проблем не наблюдается, за исключением изложенной мною вначале.

Устанавливать специальный софт только чтобы убрать какой-то значок в трее - по-моему несерьезно. В конце концов, почему нельзя вручную повторить действия данной программы по "скрытию" накопителя??

Avatar-Lion 15-05-2014 16:05 2351786

vagifali, Ну есть надежда, что спустя N лет драйвера всё же не будут вызывать синие экраны. В конце концов, в случае чего всегда можно откатиться на исходную системную версию.

SergAS70 15-05-2014 17:08 2351814

Цитата:

Цитата vagifali
Устанавливать специальный софт только чтобы убрать какой-то значок в трее - по-моему несерьезно. В конце концов, почему нельзя вручную повторить действия данной программы по "скрытию" накопителя?? »

имхо несерьезно пользоватся встроенным средством винды т.к. к примеру usb safely remove помимо что я писал, дает более удобную и быструю загрузку и выгрузку накопителей, показывает что "держит" накопитель от выгрузки и может форсировано закрыть приложение, а так-же она скрывает пустые буквы дисков от картридеров и автоматом показывает, если вставить флешку. И много еще чего (вы теряете непользуя удобством данного софта) она может.

Avatar-Lion 18-05-2014 18:09 2352809

SergAS70, Если честно, у меня был большой соблазн написать про эту утилиту в посте №1. В том смысле, чтобы не советовали её. Те, кому она нужна - давно уже и так используют её. Те, кому она не нужна - приходят в темы наподобие этой, поскольку функционал подобных утилит избыточен для них. Пустые диски кард-ридеров скрывает сама система, а безопасное извлечение может использоваться пару раз в месяц, тут уж вполне можно использовать и средства самой ОС. Причем вы имейте ввиду, что по умолчанию кэширование при работе с флэшками отключено (по крайне мере, в Windows 7), поэтому использовать безопасное извлечение нужды нет.

vagifali 18-05-2014 23:56 2352901

Совершенно согласен с последним комментарием Льва, но, к большому сожалению, воз и ныне там. Пришлось, как говорится,
смириться и отдать себе отчет, что потенциала данного форума недостаточно, чтобы исправлять ошибки ребят из Редмонда.

Avatar-Lion 19-05-2014 13:33 2353053

vagifali, А в чем дело-то? Так тяжело поставить драйвер и посмотреть на поведение системы? Откатиться-то всегда успеете.

vagifali 19-05-2014 15:46 2353129

Нет, это не решение моего вопроса о том, как запретить системе менять определенные параметры в реестре.

Avatar-Lion 20-05-2014 15:36 2353559

vagifali, Я сомневаюсь, что вы сможете запретить системе (чей уровень доступа заведомо превышает пользовательский) делать что-либо в реестре. Ещё можете попробовать один трюк, раз не хотите менять драйвер. Запустите командную строку от имени Администратора и вбейте туда следующую команду:
Цитата:

reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\msahci\Controller0\ChannelX" /f /v TreatAsInternalPort /t REG_DWORD /d 0x00000001
где X (ChannelX) - номер канала на контроллере к которому подключен жесткий диск. Обычно номер канала равен нулю, но раз у вас отдельный контроллер, то останется тлько последовательно менять цифры (1, 2, 3...), перезагружать компьютер и смотреть на результат.

vagifali 20-05-2014 20:45 2353684

У меня в реестре отсутствует раздел msahci, но есть HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\storahci, где, насколько я понимаю некуда вставить ключ TreatAsInternalPort

Avatar-Lion 22-05-2014 11:56 2354281

vagifali, Ах да, у вас же Windows 8... Ну что ж, тогда у вас два варианта: либо отбросить паранойю и всё же попробовать воспользоваться драйвером от производителя контроллера, либо попытать счастья с storahci (по аналогии с msahci).

vagifali 22-05-2014 12:27 2354306

Уважаемый Лев,

Моя аллергия на драйверы Асмедии неизлечима, поэтому хочу воспользоваться вторым вариантом. К сожалению, действовать напрямую "по аналогии" не получается, так как непонятно, куда добавить параметр TreatAsInternalPort.

В разделе storahci имеются подразделы Enum и Parameters, последний делится на Device и PnpInterface.

Подскажите, пожалуйста

Avatar-Lion 22-05-2014 12:44 2354317

vagifali, В приведенной ранее команде замените msahci на storahci и всё.

vagifali 22-05-2014 14:02 2354353

Не работает. В storahci отсуствует Controller0\ChannelX

Avatar-Lion 22-05-2014 15:07 2354375

vagifali, Ну вручную создайте.

vagifali 22-05-2014 15:38 2354400

В каком разделе (подразделе)?

Avatar-Lion 22-05-2014 19:30 2354493

vagifali, В storahci. Если не понимаете, то на предыдущей странице есть пример полной команды.

vagifali 22-05-2014 20:35 2354522

Вставил. Перезагрузился. Не помогло...

SergAS70 29-05-2014 22:26 2357496

Цитата:

Цитата Avatar-Lion
имейте ввиду, что по умолчанию кэширование при работе с флэшками отключено (по крайне мере, в Windows 7), поэтому использовать безопасное извлечение нужды нет. »

Лучше бы я не знал про это! :( . Извлечением пользуюсь по неск.раз на дню. На работе ХР, само собой без проги как без рук. Дома 7ка. Стал тоже на 7ке выдирать без подтверждения (само собой дождавшись когда все скопируется, плюс давал еще 5 сек.). В итоге буквально через неск.дней произошел сбой. Винда отказалась открывать некоторые файлы предложив лечение, после которого куча файлов (именно последне.скопированных) пропали. Ни одна известная прога не смогла их отыскать. С одной стороны как бы логикой понимаю, что этого не должно было случится, т.к. (проверил), в политике стоит прямой сброс. Возможно совпадение.. но, совпало как то странно.. Флешка работала более полгода (и еще есть несколько), и проблем таких я ни разу не находил т.к. всегда отключал их. Так что, .ер знает что и из-за чего, но больше рисковать я не хочу.. спасибо за "совет".

vagifali 31-05-2014 14:58 2358183

Обратите внимание, что изначальный вопрос для связки Windows 8.1/стандартный драйвер так и остался нерешенным.

Еще одно наблюдение: У DVD привода параметр Capabilities также равен 64, тем не менее в списке безопасного удаления его нет. Так что причина явно в другом.

Avatar-Lion 31-05-2014 19:18 2358278

SergAS70, С учётом скорости большинства флэшек, реально надо ждать секунд пятнадцать-двадцать, пока данные будут распределены по ячейкам памяти, информация о файлах - внесена в файловую таблицу, а также установлены права (если флэшка в NTFS). Плюс не забывайте про работу антивирусного ПО, который порой серьёзно замедляет работу со всеми файловыми операциями. Кроме того, если вы поищете по форумам, то найдёте огромное количество похожих случаев, причём каждый второй пользователь клянётся-божится, что всегда использовал безопасное извлечение. И тем не менее, флэшки умирали.

vagifali, Параметр Capabilities может быть равен чему угодно. Просто в посте №1 эта цифра приведена в качестве примера. С тем же успехом там может быть любое другое число. Что же касается вашего "изначального вопроса", то вы, видимо, внесли значения только для Controller0 и Channel0, хотя для стороннего контроллера наверняка будут назначены совсем другом номера. Если хотите, можете продолжить экспериментировать с различными значениями. Как точно узнать номер канала и устройства я, к сожалению, не знаю.


Время: 04:05.

Время: 04:05.
© OSzone.net 2001-