Я только что получил свой новый SSD, так как старый умер. Этот Intel 320 SSD поддерживает TRIM. В целях тестирования мой дилер установил на него Windows, но я хочу избавиться от этого и установить на него Kubuntu.
Это не должно быть «безопасным стиранием», мне просто нужно очистить диск самым здоровым способом. Я считаю, что dd if=/dev/zero of=/dev/sda
просто заполняет блоки нулями и, таким образом, делает еще одну запись (поправьте меня, если я ошибаюсь).
Я видел ответ Как включить TRIM , но похоже, что он подходит для очистки пустых блоков, а не очистки диска.
hdparm
, кажется, программа для этого, но я не уверен, очищает ли он диск ИЛИ очищает пустые блоки. Со страницы руководства:
blockquote>--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?
Вы должны использовать функцию безопасного стирания диска .
Убедитесь, что защита диска не заблокирована . Если это так, это может помочь приостановить и возобновить работу компьютера.
$ 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 удаляет все блоки на устройстве. Параметры могут использоваться для изменения этого поведения в зависимости от диапазона или размера, как описано ниже.
Аргументом устройства является имя пути блочного устройства.
ВНИМАНИЕ: Все данные в удаленной области на устройстве будут потеряны!
blockquote>Команда существует с Ubuntu 15.04 и OpenSUSE 13.1 (да, в OpenSUSE она есть 2 годы впереди Ubuntu).
Если вам не нужна безопасная очистка, почему бы вам просто не установить kubuntu, используя опции «использовать весь диск» и эквивалент «быстрого форматирования» (сейчас не могу вспомнить точную терминологию) [ 110]
Таким образом вы отбрасываете таблицу размещения файлов, и накопитель эффективно очищается для перезаписи. Вам на самом деле не нужно очищать его.
Просто удалите раздел, вам не нужно очищать весь диск, старые данные будут перезаписаны, когда хранилище потребуется для чего-то еще.
Чтобы включить 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
Если на диске есть файловый элемент 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
Раз в неделю.
Итак, один ответ на ваш вопрос - загрузите систему и подождите неделю!