Удали ненужное. Или всё, что можно сказать о DCO.

Что такое Device Configuration Overlay или сокращенно — DCO

Это возможность легко и быстро отключать ненужные пользователю функции винчестера, которые могут по какой-то причине мешать, создавать опасность или конфликтовать с оборудованием.

Victoria HDD DCO

Как работает DCO

     Винчестер имеет служебную микропрограмму («прошивку»). Она определяет свойства и поведение конкретной модели накопителя. Если в процессе его жизни выяснится, что в микропрограмме допущена ошибка или можно что-то улучшить — производитель выпускает обновление прошивки.
     Когда разработчики создают винчестер, они стараются заложить в него большой набор функций, чтобы соответствовать стандарту и расширить область применения изделия. Ведь его могут применять в разных устройствах: компьютерах, системах видеозаписи, музыкальном центре, автомобиле, внешнем боксе, и даже в станке с ЧПУ.
     Но иногда оказывается, что некоторые функции сильно мешают. Для того, чтобы их выключить, нет смысла менять всю программу. Достаточно изменить лишь её настройки. Для этого был придуман Device Configuration Overlay — отдельный небольшой модуль, в котором эти настройки хранятся и могут меняться пользователем. При этом находящаяся на винчестере информация никак не затрагивается.

«Весёлая» история

     В начале 2000-х годов производители материнских плат очень старались застраховать своих пользователей от потери содержимого BIOS — микросхемы, обеспечивающей старт компьютера. Прошивки BIOS иногда портились, а также могли быть стёрты вирусами, специально созданными для порчи Flash BIOS (например, «Чернобыль»). После такого события — компьютер становился совершенно неработоспособен, и требовал квалифицированного ремонта.
     И вот, конструкторы плат придумали небольшой, и как им самим показалось — удачный лайфхак. Они стали дублировать прошивку BIOS в самый конец винчестера, где нет разделов. А чтобы пользователь и вирусы не ковырялись в ней — стали «закрывать» эту область через обрезание размера винта командой HPA. Но «недолго музыка играла».
     Примерно в 2004-м году ёмкости серийно продаваемых винчестеров стремительно преодолели планку в 128 Гб, и перешли на адресацию 48 бит. И тут началось такое, что никто не ожидал. Новые жесткие диски заблокировались на объём 768Mb и заметно потрепали нервы пользователям. Ведь для их разблокировки многим пришлось обращаться в сервис. Причина оказалась в том, что встроенная в BIOS программа уменьшения объёма HDD не была рассчитана на адресацию, более чем FFFFFFFh секторов (это 268435455 x 512 = 131071 Mb — предел для 28 бит). Возникало переполнение разрядов переменной, и старшие биты обнулялись. Осложнял ситуацию описанный в моей статье глюк винчестеров фирмы Seagate.
     Разумеется, даже разблокировка объёма не гарантировала спокойную жизнь в дальнейшем. Неприятность могла повториться. Для того, чтобы прервать эту свистопляску, был только один надёжный способ — отключение функции HPA. Насовсем. Обычно это делалось на аппаратно-программном комплексе через модификацию микрокода, но если винчестер поддерживал DCO — задача предельно упрощалась.

Пароль — не игрушка!

     Почти все современные винчестеры поддерживают функцию установки паролей и экстренного стирания данных. Но иногда пароль на винчестер ставится без уведомления пользователя. Например в некоторых ноутбуках BIOSы по-умолчанию закрывают винт паролем, и при каждом включении производят временную разблокировку HDD/SSD до выключения питания. Для пользователя этот процесс выглядит совершенно незаметно. Замысел разработчиков здесь такой: если злоумышленник похитит компьютер, то даже вынув винчестер и подключив его к другому компьютеру, он не сможет прочитать данные. Но к сожалению, пароль пользователя ПК и пароль в винчестере — не совпадают. Ибо то, что подаётся в винчестер — шифруется ноутбуками по специальному алгоритму. И при неисправности ноутбука — свою информацию потеряет уже законный пользователь. Разблокировать некоторые винчестеры довольно сложно даже в условиях мастерской. Некоторые современные модели HDD и SSD распаролить невозможно, т.к. они ещё и шифрованы. Проще предотвратить установку паролей, отключив эту опцию в самом накопителе. Это также можно сделать через DCO.

Быстрое уничтожение данных на SSD

     Рассмотрим ситуацию с другой стороны. Вам необходимо быстро стереть компрометирующую информацию с накопителя. Лучше всего для этого подходят SSD. У них, в отличии от HDD, стирание данных через подсистему безопасности происходит не за десятки минут, а за пару секунд.
     Однако, стереть накопитель в системе Windows непросто. Дело в том, что с целью противодействия вирусам, Windows запрещают любые действия с подсистемой безопасности, подавая в винчестер защитную команду Security Freeze lock. Отменить её можно только физически — выключив питание накопителя. Замкнутый круг? Нет.

На помощь придёт DCO.

Если отключить в накопителе опцию безопасности — то команда Freeze lock не сработает.

Я делал следующий эксперимент:

  1. Через DCO отключал на HDD опцию Security (это можно сделать через USB-бокс, в PIO, из-под более древней системы, или банально передёрнув питание накопителя — во всех случаях статус Frozen будет сброшен).
  2. Подключал накопитель к Windows 7.
  3. Включал через DCO функцию Security. Windows не замечала её появления, и не блокировала накопитель.
  4. Подавал в накопитель команду Security Erase. Данные немедленно уничтожались.

Если такой финт проделать с SSD (в частности, Samsung Evo 850 поддерживают функцию DCO) — можно добиться мгновенного стирания информации, вплоть до её уничтожения вместе с операционной системой, в обход любых защит Windows.

Скрытый объём

     Некоторые модели винчестеров, особенно имеющие только один диск и одну магнитную головку, выпускаются с завода с уменьшенным объёмом и по меньшей цене. Это сделано для сегментации рынка — чтобы максимально охватить весь ряд востребованных емкостей, и получить максимум прибыли. Например, так делала фирма Maxtor на моделях Diamond Max Plus 8, Diamond Max 541 и Fireball 3. Обрезаны они были, как это ни странно, через DCO. Достаточно подать такому накопителю команду Restore DCO — и пользователь получал вдвое больший объём.
Возможен и обратный процесс. Можно указать в настройках DCO другое значение ёмкости и применить настройки. Это будет аналогично действию HPA, но не будет разблокироваться с помощью HPA. Для чего применить — решайте сами.

Отключение S.M.A.R.T.

     Может потребоваться в том случае, если какая-то программа без спроса лезет накопителю в S.M.A.R.T и неверно интерпретирует данные. Например, отвлекает тревожными сообщениями, замедляет работу. Или для спасения данных используется операционная система, в которую встроены S.M.A.R.T-функции, и которые нельзя отключить (к слову, за функции мониторинга S.M.A.R.T в Windows 7 отвечает файл DFDWiz.Exe). В такой ситуации отключения SMART-функций с помощью DCO даст системам понять, что винчестер не поддерживает S.M.A.R.T и проверять его не нужно.
     Аналогично может потребоваться отключение других функций. Был случай, когда знакомый подключил винчестер Samsung к стационарному видеорегистратору, после чего винт перестал раскручиваться и «впал в кому». Как оказалось, в винт была подана хитрая команда, которая перевела его в режим Power-Up In Standby. Он не позволяет винчестеру работать до подачи другой команды — Disable Power-Up In Standby. Пришлось обращаться в сервис.

Как пользоваться DCO в программе Victoria

Краткая инструкция встроена в программу Victoria, начиная с версии 4.76 на вкладке DCO, и состоит из четырёх шагов:

Шаг 1: Нажимаем кнопку Identify

При этом из служебной зоны винчестера читается DCO-структура и интерпретируется программой. Те пункты, которыми можно управлять — обзаводятся галочками. Не подлежащие изменению — деактивируются.

Шаг 2: Нажимаем кнопку Restore
В винчестер подается команда, которая сбрасывает все прошлые настройки, если они были. Если же их не было (заводская неизменённая конфигурация) — накопитель выдаст ошибку. Это абсолютно нормально!

Шаг 3: Необходимо установить или снять необходимые галочки-опции HDD. Можно ввести другой размер диска (поле Max LBA).

Шаг 4: Нажимаем кнопку Apply и применяем настройки. При этом DCO-структура, изменённая программой, возвращается обратно в накопитель.
Если винчестер вернул ошибку — ничего страшного, настройки не применились. Читаем статью до конца.

Кнопка Freeze блокирует работу DCO до выключения питания. Нажимать без необходимости её не надо.

Особенности применения DCO и причины неудач

     Поскольку эта система может управлять опциями безопасности накопителя, разработчиками винчестеров введено несколько зависимостей, исключающих применение DCO для нейтрализации уже задействованных функций. Для неопытного пользователя они могут быть неочевидны, но их нужно учитывать. Рассмотрим каждую из них.

 - Предположим, на накопителе стоит пароль. В этом случае нельзя выключить опции безопасности сразу. Сначала нужно удалить пароль. Кроме того, все накопители, смонтированные в Windows, сразу после определения в ней получают команду Security Freeze Lock — запрет смены/установки пароля. Это сделано для того, чтобы вирусы также не могли установить пароль на HDD. Потребуется передёрнуть питание HDD. Или вообще не монтируя диск в системе, воспользоваться режимом PIO — кому как удобней.
 - Винчестер уже обрезан через HPA. Нельзя просто взять, и отключить HPA, которая активна. Сначала следует вернуть номинальный объём через HPA, а после — отключать функцию. А поскольку HPA ставится однократно за сессию питания — то также потребуется передёрнуть питание на HDD.
 - Отключить SMART тоже просто так не удастся. И на это есть 2 причины.
  1. Чтобы выключить SMART через DCO. нужно сначала выключить его через ATA. Переходим на вкладку SMART, и нажимаем SMART OFF.
  2. SMART на многих моделях HDD тесно связан с самотестами и журналами. Поэтому придется отключить или всё, что имеет отношение к SMART, или выборочно — тут можно экспериментировать.

 - Чтобы эксперименты были успешными, нужно соблюдать ещё одно обязательное условие: перед каждой попыткой изменением конфигурации — сбрасывать предыдущую, кнопкой Restore.

 - Винт с почти 100% вероятностью выдаст ошибку, если применить не-измененную конфигурацию, применить конфигурацию без сброса предыдущей, или производить сброс на HDD с конфигурацией, не отличающийся от дефолтной. Последнее условие — выглядит абсурдно, и непонятно, зачем ввели его в стандарт. Но к сожалению, это так.

 - Между получением конфигурации и её применением — недопустимы другие операции (например получение паспорта HDD) , т.к. используется общий буфер данных.

 - Обе структуры DCO: извлечённая из HDD и поданная в него после изменений — сохраняются в виде файлов в папке с логами.

Заключение

     Теперь вы знаете о DCO абсолютно всё. Вероятно, программа Victoria 4.76 стала первой свободной программой для Windows, умеющей работать с конфигурацией накопителей.
В 2019 г. DCO исполнилось 16 лет, и такие SSD-бренды, как OCZ-Vector / Octane, Plextor, Samsung по-прежнему поддерживают его. Есть DCO и во многих гибридных накопителях SSHD.
К сожалению, разработчики OCZ-Vertex и Kingston отказались от DCO. Альтернативой у них служат команды более нового протокола — Smart Command Transport. Но это совсем другая история.

Сергей Казанский, 11.09.2019г.

Список некоторых первоисточников.
  1. Форум Microsoft MSDN — Как отключить SECURITY FREEZE LOCK на жестком диске?
  2. Wikipedia.org — Device Configuration Overlay
  3. IXBT: Отключение HPA или Решение проблемы «Размер моего диска на 1 ТБ меньше паспортного»
  4. С. Казанский. «Как снять пароль с диска, если он известен?»
  5. С. Казанский: «Как вернуть объём Барракуды» (2005 г.)
Понравилась статья? Поделитесь ей:
Технический центр «Victoria» 2004-2020, Беларусь. © Сергей Казанский.
наверх