Каков рекомендуемый способ очистки SSD?
Я только что получил мой новый SSD, так как старый умер. Этот Intel 320 SSD поддерживает TRIM. В целях тестирования мой дилер установил на него Windows, но я хочу избавиться от этого и установить на него Kubuntu.
Это не должно быть "безопасным стиранием", мне просто нужно очистить диск самым здоровым способом. я полагаю, что dd if=/dev/zero of=/dev/sda
просто заполняет блоки нулями и тем самым берет еще одну запись (поправьте меня, если я ошибаюсь).
Я видел ответ Как включить TRIM, но похоже, что он подходит для очистки пустых блоков, а не для очистки диска.
hdparm
Кажется, это программа для этого, но я не уверен, очищает ли он диск ИЛИ очищает пустые блоки. С его страницы руководства:
--trim-sector-ranges For Solid State Drives (SSDs). EXCEPTIONALLY DANGEROUS. DO NOT USE THIS OPTION!! Tells the drive firmware to discard unneeded data sectors, destroying any data that may have been present within them. This makes those sectors available for immediate use by the firmware's garbage collection mechanism, to improve scheduling for wear-leveling of the flash media. This option expects one or more sector range pairs immediately after the option: an LBA starting address, a colon, and a sector count, with no intervening spaces. EXCEPTIONALLY DANGEROUS. DO NOT USE THIS OPTION!!
E.g. hdparm --trim-sector-ranges 1000:4 7894:16 /dev/sdz
Как сделать так, чтобы все блоки отображались как пустые с помощью TRIM?
6 ответов
ATA Безопасное стирание
Вы должны использовать функцию стирания безопасности диска.
Убедитесь, что диск Security не заморожен. Если это так, это может помочь приостановить и возобновить работу компьютера.
$ sudo hdparm -I /dev/sdX | grep frozen not frozen
Вывод команды (отфильтрованный) означает, что этот диск "не заморожен", и вы можете продолжить.
Установите пароль пользователя (этот пароль также очищается, точный выбор не имеет значения).
sudo hdparm --user-master u --security-set-pass Eins /dev/sdX
Выполните команду безопасного стирания ATA
sudo hdparm --user-master u --security-erase Eins /dev/sdX
Замечания:
/dev/sdX
это SSD как блочное устройство, которое вы хотите стеретьEins
пароль, выбранный в этом примере
См. Статью ATA Secure Erase в вики ядра Linux для получения полных инструкций, включая устранение неполадок.
util-linux 2.23 предложения blkdiscard
который отбрасывает данные без их очистки. Я тестировал: работает через SATA и mmcblk, но не через USB.
Отрывок из справочной страницы blkdiscard(8)
:
НАЗВАНИЕ
blkdiscard - сбросить сектора на устройстве
СИНТАКСИС
blkdiscard [-o offset] [-l length] [-s] [-v] device
ОПИСАНИЕ
blkdiscard используется для сброса секторов устройства. Это полезно для твердотельных драйверов (SSD) и хранилищ с тонким предоставлением. В отличие от fstrim(8) эта команда используется непосредственно на блочном устройстве.
По умолчанию blkdiscard удаляет все блоки на устройстве. Параметры могут использоваться для изменения этого поведения в зависимости от диапазона или размера, как описано ниже.
Аргумент устройства - это путь к блочному устройству.
ВНИМАНИЕ: Все данные в удаленном регионе на устройстве будут потеряны!
Команда существует с Ubuntu 15.04 и OpenSUSE 13.1 (да, в OpenSUSE она на 2 года впереди Ubuntu).
Если вам не нужна безопасная очистка, почему бы вам просто не установить kubuntu, используя опции "использовать весь диск" и эквивалент "быстрого формата" (не могу вспомнить точную терминологию сейчас)
Таким образом вы отбрасываете таблицу размещения файлов, и накопитель эффективно очищается для перезаписи. Вам на самом деле не нужно опустошать его.
Если на диске есть файловый элемент Linux, вы можете использовать fstrim
, По умолчанию последние Ubuntu запускаются fstrim
на дисках от следующих поставщиков:
if [ -z "$NO_MODEL_CHECK" ]; then
if ! contains "$HDPARM" "Intel" && \
! contains "$HDPARM" "INTEL" && \
! contains "$HDPARM" "Samsung" && \
! contains "$HDPARM" "SAMSUNG" && \
! contains "$HDPARM" "OCZ" && \
! contains "$HDPARM" "SanDisk" && \
! contains "$HDPARM" "Patriot"; then
#echo "device $DEV is not a drive that is known-safe for trimming"
continue
Раз в неделю.
Итак, один ответ на ваш вопрос - загрузите систему и подождите неделю!
Проверьте, поддерживает ли это BIOS на компьютере. На ноутбуке, который я только что проверил, есть возможность безопасного стирания всех подключенных носителей при следующей загрузке. Это, вероятно, широко используемый вариант в корпоративной среде, поэтому многие поставщики, вероятно, включают его сейчас. (Я проверял ноутбук Dell Precision 5510 2017 года выпуска.)
Хотя, если вы просто хотите стереть диск для установки Linux (согласно вопросу), вам не нужно делать полную очистку. Единственная проблема заключается в том, что диск должен знать, что пространство, ранее используемое Windows, теперь свободно, чтобы оптимизировать использование SSD.
Вариантов для этого множество, в том числе уже упомянутые. я отмечаю, что
mke2fs
имеет
-E discard
опция, которая должна обрезать раздел при создании файловой системы, которая включена по умолчанию. (Обратите внимание, что это лучший вариант, поэтому он будет молча игнорировать его, если аппаратное обеспечение не поддерживает его.) Таким образом, в большинстве случаев вы можете просто игнорировать проблему, установить Linux, и процесс установки выполнит всю очистку. необходимость.
Просто удалите раздел, вам не нужно очищать весь диск, старые данные будут перезаписаны, когда хранилище потребуется для чего-то другого.
Чтобы включить TRIM:
gksudo gedit /etc/fstab
Замените "ext4 errors=remount-ro 0" на "ext4 discard,errors=remount-ro 0". (Добавить сброс)
Сохраните и перезагрузите компьютер, теперь TRIM должен быть включен.
Проверьте, включен ли TRIM:
sudo -i
dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
hdparm --fibmap tempfile
Используйте первый адрес begin_LBA.
hdparm --read-sector [begin_LBA] /dev/sda
Теперь он должен возвращать цифры и символы. Удалить файл и синхронизировать.
rm tempfile
sync
Теперь снова выполните следующую команду. Если он возвращает нули, TRIM включен.
hdparm --read-sector [begin_LBA] /dev/sda