28 августа 2012 г.

Почему не гаснет флешка на Windows 7 при безопасном извлечении?

Давно заметил, что в Windows 7 при "безопасном извлечении устройства"  - флешки, ее индикатор не гаснет, как это обычно происходит в Windows XP.

Я для себя решил, что раз не гаснет, значит, это - особенность Windows 7, а раз Microsoft после многочисленных обновлений системы эту "проблему" не решила, то значит, это не ошибка ("баг"), а "фича" :)

В принципе, так оно и оказалось. (Но если сильно нужно, есть способ это "включить" - см. ниже).


Если в двух словах, при безопасном отключении в Windows XP, устройству присваивается статус "Удалено" (Removed), а порту - "Отключен" (Disabled), а в Windows 7 - порту статус такой не присваивается. (Объяснение от Майкрософт)

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

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

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

Про кеширование и безопасное извлечени можно почитать здесь: Зачем нужно безопасное извлечение устройства?

Если же вас напрягает горящий индикатор после безопасного отключения, то вот как Майкрософт рекомендует поступить.

(Однако сначала следует сказать, что Майкрософт утверждает, что включение "поведения XP" не тестировалось основательно, поэтому используйте эту возможность на свой страх и риск. К тому же обязательно сделайте резервную копию Реестра. Это настоятельно рекомендуют и Майкрософт, и ваш покорный слуга.)
  1. Откройте Реестр Windows (Пуск / Выполнить / regedit / ОК).
  2. Найдите и раскройте раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbhub
  3. Если под ним есть раздел HubG - вам повезло и вы сразу же можете переходить к шагу 6.
  4. Если его нет, добавьте его (правой кнопкой мыши на usbhub, далее Создать / Раздел.
  5. В появившемся разделе (в левой панели) впишите название HubG и нажимаем ENTER.
  6. Теперь нажмите правой кнопкой мыши на разделе HubG, и далее Создать / Параметр DWORD (32 бита).
  7. В появившемся параметре (в правой панели) впишите DisableOnSoftRemove и нажмите ENTER.

  8. Теперь двойной клик на параметре DisableOnSoftRemove, чтобы вызвать окно для задания значения.
  9. В поле Значение впишите 1 и нажмите ОК.

  10. И перегрузите компьютер.
Все.

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

Я лично проверил, действительно ли срабатывает инструкция от Майкрософт - да срабатывает, флешка гаснет, но вернул все обратно. Пусть индикатор горит.

2 комментария: