< Solid state drive (Русский)

Solid state drive (Русский)/Memory cell clearing (Русский)

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

Состояние перевода: На этой странице представлен перевод статьи Solid state drive/Memory cell clearing. Дата последней синхронизации: 22 октября 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Выполнение Secure Erase не исправит износ ячеек SSD: если накопитель близок к концу своего срока службы — возможно, сброс ещё немного продлит ему жизнь, но вскоре он всё равно перестанет работать.

Важно:
  • Перед продолжением работы создайте резервную копию всех важных данных! Эта процедура уничтожит все данные на SSD, и их не получится восстановить даже в сервисе! После выполнения сброса будет необходимо заново создать разделы на диске и скопировать на него нужные данные.
  • Не выполняйте эту процедуру, если целевой диск не подключен напрямую к интерфейсу SATA/NVMe. Выполнение команды Secure Erase/Format/Sanitize на диске, подключенном через USB или карту SAS/RAID, может привести к поломке диска!

Диск SATA

Примечание: Следующая информация взята с официальной вики-страницы ATA.

Шаг 1 - Убедитесь, что диск не в состоянии "frozen"

Выполните следующую команду:

# hdparm -I /dev/sdX | grep frozen

В разделе «Security» должна быть строка «not frozen». Если там написано «frozen», то вы не сможете продолжить. Прошивки некоторых материнских плат отправляют команду «security freeze» SATA-устройствам при инициализации.

Возможное решение — просто перейти в ждущий режим. После возвращения из него состояние «frozen» скорее всего будет снято. Если это не поможет, можно попробовать на лету переподключить дата-кабель (однако ядро может упасть от такого). Если при переподключении дата-кабеля ядро падает, дайте операционной системе полностью загрузиться и быстро (пере)подключите и дата-кабель, и кабель питания. Если даже так ядро всё равно падает, проверьте, включен ли в настройках BIOS режим AHCI (он допускает подключение устройств на лету). Можно также использовать USB-SATA адаптер, если он поддерживает горячее подключение. Можно использовать hdparm через USB.

Системы Dell

На системах Dell обойти состояние «frozen» можно следующим образом:

  1. Перезагрузитесь в BIOS Dell, нажав F2 при запуске.
  2. В BIOS установите пароль внутреннего жёсткого диска (будьте осторожны, раскладка клавиатуры en_US / qwerty).
  3. Примените изменения и перезагрузитесь.
  4. Когда Dell Security Manager запросит пароль, нажмите Escape, а не вводите его. Диск останется заблокированным, но не в состоянии «frozen».
  5. Пропустите шаг 2 и перейдите непосредственно к шагу 3 ниже.
Примечание: Если вы используете Lenovo и не можете избавиться от состояния «frozen» (например, планшеты Lenovo используют SSD на интерфейсе M.2), вы можете использовать проприетарный инструмент для очистки ячеек памяти, а не следовать этой статье. Смотрите также: https://superuser.com/questions/763642/secure-erase-ssd-on-lenovo-thinkpad-t520-cant-unfreeze-ssd-machine-reboots-on

Шаг 2 - Включение защиты путём установки пароля пользователя

Примечание: После установки пароля диск будет заблокирован при следующем подключении питания, и для его разблокировки потребуется ввод правильного пароля.
Важно: Не перезагружайте компьютер после этого шага, особенно если у вас ноутбук Lenovo. Некоторые версии BIOS от Lenovo используют нестандартный алгоритм получения ключа из пароля. После запуска компьютер не сможет подключить SSD-накопитель.

Можно использовать любой пароль, так как он всё равно будет временным. После выполнения Secure Erase защита будет снята и пароль больше не понадобится. В данном примере используется пароль :

Для дополнительной проверки можно выполнить команду:

# hdparm -I /dev/sdX

В выводе команды в разделе «Master password» должна быть строка «enabled»:

Шаг 3 - Отправка команды ATA Secure Erase

Последним шагом является отправка команды Secure Erase, которая отправляет в BIOS устройства команду стереть всё содержимое. Обратите внимание, что для устройства, используемого в этом примере, предыдущий вывод гласит:

2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.

Согласно спецификации ATA, «улучшенное» стирание (Enhanced Security Erase, ) выполняет более тщательное стирание. Если расчётное время завершения для обеих команд одинаково, это указывает на то, что производитель диска использует одну и ту же функцию стирания для обеих команд. Короткое время (например, 2 минуты), в свою очередь, указывает на то, что устройство является самошифрующимся и его функция BIOS просто стирает внутренний ключ шифрования вместо перезаписи всех ячеек данных.

Важно:
  • Трижды проверьте, что вы указали путь к правильному диску. После выполнения команды обратного пути не будет. Вас предупредили.
  • Убедитесь, что диск не примонтирован во время выполнения этой команды. Если команда стирания будет выполнена, когда устройство примонтировано, оно не сотрётся должным образом.
# hdparm --user-master u --security-erase PasSWorD /dev/sdX

Дождитесь завершения выполнения команды. В данном примере показано, что для твердотельного накопителя Intel X25-M 80GB это заняло около 40 секунд.

security_password="PasSWorD"
/dev/sdX:
Issuing SECURITY_ERASE command, password="PasSWorD", user=user
0.000u 0.000s 0:39.71 0.0%      0+0k 0+0io 0pf+0w

Теперь диск очищен. После успешного стирания защита диска должна быть автоматически отключена (таким образом, для доступа больше не требуется пароль). Проверить это можно с помощью команды:

# hdparm -I /dev/sdX

В выводе команды в разделе «Master password» должна быть строка «not enabled»:

Security:
        Master password revision code = 65534
                supported
        '''not     enabled'''
        not     locked
        not     frozen
        not     expired: security count
                supported: enhanced erase
        2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.

Диск NVMe

Так как диски NVMe не используют протокол SATA и не могут быть очищены описанным выше способом, спецификация NVMe определяет стандартизированный способ очистки дисков NVMe. Первоначально эту возможность предоставляла команда (часть ), но в Specification 1.3 добавлена поддержка специальной команды . По словам Джонмайкла Хэндса, сопредседателя NVMe MWG, старшего специалиста по стратегическому планированию / менеджера по продукции, Intel:

«Эти команды используются для безопасного стирания пользовательских данных с устройства. Это может использоваться при установке нового устройства, выводе из эксплуатации или окончании его срока службы, нового применения SSD и так далее. Команда Sanitize была введена в спецификации NVMe 1.3, поэтому до неё для безопасного стирания использовался исключительно NVMe Format. Хотя оба варианта работают, Sanitize более надёжен для обеспечения надлежащего стирания данных; Format подходит для повседневного использования и тестирования».

Чтобы проверить, что поддерживается вашим накопителем, используйте команду Identify Controller:

# nvme id-ctrl /dev/nvme0 -H | grep "Format \|Crypto Erase\|Sanitize"

Пример вывода:

Затем выполните команду Format или Sanitize.

Команда Format

Команда Format концептуально ближе к смеси hdparm и fdisk, поскольку позволяет задать низкоуровневые параметры диска и дополнительно отправить команду Secure Erase.

даёт следующие сведения о параметре Secure Erase Settings ():
Secure Erase Settings: В этом поле указывается, должно ли выполниться безопасное стирание как часть форматирования, а также тип операции безопасного стирания. Стирание применяется ко всем пользовательским данным, независимо от их расположения (например, внутри открытого LBA, внутри кэша, внутри деаллоцированных LBA и т. д.). По умолчанию равно 0.

Возможные значения:

Значение Описание
0 Безопасное стирание не запрашивается
1 Стирание пользовательских данных (User Data Erase): Все пользовательские данные должны быть стёрты, содержимое пользовательских данных после стирания не определено (например, данные могут быть заполнены нулями, единицами и т.д.). Контроллер может выполнить криптографическое стирание, когда запрашивается стирание пользовательских данных, если они были зашифрованы.
2 Криптографическое стирание (Cryptographic Erase): Все пользовательские данные должны быть стёрты криптографически. Это достигается путём удаления ключа шифрования.

Хотя команда Format принимает либо символьное устройство NVMe (например, ), либо конкретное блочное устройство пространства имён (например, ), перед запуском убедитесь, что эта функция поддерживается вашим накопителем. Например, в выводе команды Identify Controller выше видно, что биты и установлены в ноль, что, согласно спецификации, означает, что «контроллер поддерживает форматирование пространств имён по отдельности» (смотрите рисунок 249 byte row 524 «Format NVM Attributes (FNA)»).

Например, чтобы выполнить форматирование с криптографическим стиранием в пространстве имён 1 на устройстве :

# nvme format /dev/nvme0 -s 2 -n 1

Более подробная информация, а также важные предупреждения касательно выбора устройства/пространства имён есть в .

Команда Sanitize

Команда Sanitize была создана, чтобы быть «функционально эквивалентной одноимённой команде в реализациях SATA и SAS». Из вышеупомянутой статьи:

«Согласно спецификации NVMe 1.4, „операция sanitize изменяет все пользовательские данные в подсистеме NVM таким образом, что восстановление любых предыдущих пользовательских данных из кэша, энергонезависимого носителя или буфера памяти контроллера становится невозможным“.
Основная разница между Sanitize и Format заключается в том, что Sanitize обеспечивает удаление кэша, и процесс начинается заново после неожиданного отключения питания. Sanitize также поддерживает перезапись шаблона для безопасного стирания, что ужасно для NAND-накопителей, но может использоваться с другими типами накопителей и классами памяти, или для большей уверенности, что пользовательские данные не смогут быть восстановлены».

Использование и возможные значения для опций -a/--sanact следующие:

-a <action>
--sanact=<action>
    Sanitize Action
    000b - Reserved
    001b - Exit Failure Mode
    010b - Start a Block Erase sanitize operation
    011b - Start an Overwrite sanitize operation
    100b - Start a Crypto Erase sanitize operation

Дополнительная информация есть в .

Разница между Block Erase и Crypto Erase заключается в том, что Crypto Erase стирает только ключ шифрования (как определено в спецификации NVMe 1.4):

«Стирание пользовательских данных (User Data Erase): Все пользовательские данные должны быть стёрты, содержимое пользовательских данных после стирания не определено (например, данные могут быть заполнены нулями, единицами и т.д.). Контроллер может выполнить криптографическое стирание, когда запрашивается стирание пользовательских данных, если они были зашифрованы.
Криптографическое стирание (Cryptographic Erase): Все пользовательские данные должны быть стёрты криптографически. Это достигается путём удаления ключа шифрования.
Блочное стирание (Block Erase) изменяет пользовательские данные с помощью низкоуровневого метода стирания блоков, специфичного для носителя, во всех местах носителя в подсистеме NVM, в которых могут храниться пользовательские данные;
Криптографическое стирание (Crypto Erase) изменяет пользовательские данные путём изменения ключей шифрования во всех местах носителя в подсистеме NVM, в которых могут храниться пользовательские данные…»

Вы можете получить оценку времени, которое займут различные методы на вашем диске (если поддерживаются):

Если вместо этого вы получите примерно такой результат:

Тогда будьте уверены, что операция займёт много времени. Например, на Intel 660p 512 ГБ выполнение Block Erase заняло около 2-3 часов.

Запуск Crypto Erase:

# nvme sanitize устройство -a 4

Запуск Block Erase:

# nvme sanitize устройство -a 2

За ходом выполнения можно следить в Sanitize Log:

# nvme sanitize-log /dev/nvme0

Пример вывода для диска в процессе выполнения Crypto Erase:

После успешного завершения команды:

Sanitize Progress                      (SPROG) :  65535
Sanitize Status                        (SSTAT) :  0x101
Sanitize Command Dword 10 Information (SCDW10) :  0x4
Estimated Time For Overwrite                   :  4294967295 (No time period reported)
Estimated Time For Block Erase                 :  174
Estimated Time For Crypto Erase                :  34
Estimated Time For Overwrite (No-Deallocate)   :  0
Estimated Time For Block Erase (No-Deallocate) :  0
Estimated Time For Crypto Erase (No-Deallocate):  0

Общий метод с blkdiscard

Команда из пакета предлагает опцию , которая выполняет «Secure discard. Он аналогичен обычному discard, за исключением того, что все копии сбрасываемых блоков, которые могли быть созданы сборщиком мусора, также должны быть стёрты. Это требует поддержки со стороны устройства».

Чтобы воспользоваться ею, выполните:

# blkdiscard --secure /dev/устройство

Для устройств, не поддерживающих безопасное стирание, можно использовать опцию /--zeroout, которая заполняет устройство нулями вместо того, чтобы просто cбрасывать все блоки на устройстве по умолчанию.

Обсуждение общей безопасности blkdiscard можно посмотреть здесь ; иллюстрация стирания томов с помощью blkdiscard есть здесь .

Решение проблем

Загрузочные записи UEFI удаляются после очистки диска

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

Смотрите также

gollark: It's fine, I decided to only add that to *outbound* requests so that the server only sends, what, 40 updates per second.
gollark: A threshold for what?
gollark: Civilization. Simulation. Is. Very. Hard.
gollark: Other games have pesky stuff like "actual gameplay" getting in the way of balance.
gollark: IncDec is the most balanced game ever, really.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.