Карта / USB-накопитель: как обрезать / выбросить / сбросить после интенсивного использования?

4291
THX

Интересно, можно ли «перезагрузить» контроллер USB-накопителя или карту памяти, чтобы они считались «неиспользованными» в Linux (Fedora 24)?

Справочная информация: я переписал USB-накопитель из / dev / urandom. Т.е. я предполагаю, что все блоки были записаны, поскольку (насколько я понял) большинство контроллеров USB-накопителей и карт памяти не сохраняют никаких запасных блоков. Накопитель (как проверить, поддерживает ли контроллер хранения триммер ATA или контроллер USB передает триммер ATA на устройство?) Не поддерживает триммирование - fstrim выдает ошибку, а hdparm не видит поддержку триммера, т. Е.

hdparm -I /dev/sdX | grep -i TRIM 

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

Следовать за

Следующий После того, как SD-карта удалена, какое значение считывается с карты? Все биты сброшены или все биты установлены? по крайней мере SD-карты должны поддерживать CMD38, который в качестве быстрого формата будет сбрасывать блоки.

Однако я нашел только официальное программное обеспечение Win / Mac для отправки этой команды на устройство https://www.sdcard.org/downloads/formatter_4/

Предположительно (не проверено), это также зависит от контроллера USB для передачи команды и может работать только на SD-картах, но не обязательно с USB-накопителями?

До сих пор я не нашел программу Linux для простой отправки этой команды CMD38 на устройство.

0
«Это вообще возможно» - нет. На самом деле, можно даже сказать, что это вообще возможно. Я очень сомневаюсь, что любой контроллер флэш-памяти USB / SD сможет сделать это. Они намного менее сложны, чем контроллеры SSD. К сожалению, я не могу сейчас исследовать. Daniel B 7 лет назад 0
да, я пробовал форматировщик SD-ассоциации под Windows, однако мне не удалось получить доступ к низкоуровневым функциям нескольких SD-карт через различные USB-ридеры. Судя по всему, USB-контроллеры в большинстве ридеров не проходят через команды / адресуют карты на ПК как другие типы хранилищ, чем mmcblk THX 7 лет назад 0

2 ответа на вопрос

0
Toby Speight

Вам нужно fstrim, в util-linuxупаковке:

НАЗВАНИЕ

fstrim - удалить неиспользуемые блоки в смонтированной файловой системе

СИНТАКСИС

 fstrim [-a] [-o offset] [-l length] [-m minimum-size] [-v] mountpoint 

ОПИСАНИЕ

fstrimиспользуется в смонтированной файловой системе для удаления (или «обрезки») блоков, которые не используются файловой системой. Это полезно для твердотельных накопителей (SSD) и хранилищ с тонким предоставлением.

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

mountpointАргументом является имя пути каталога, в котором установлена файловая система.

Запуск fstrimчасто, или даже при использовании mount -o discard, может негативно повлиять на срок службы SSD устройств низкого качества. Для большинства настольных и серверных систем достаточная частота обрезки составляет один раз в неделю. Обратите внимание, что не все устройства поддерживают обрезку в очереди, поэтому каждая команда обрезки влечет за собой снижение производительности для всего, что еще может пытаться использовать диск в данный момент.

TRIMКонечно, это зависит от способности привода или слота для карты принять команду. Недорогие USB-накопители, как правило, не предназначены; обычно могут принимать более новые UAS (подключенные через USB SCSI) TRIM. Вы можете сказать, поддерживается ли он с помощью hdparm -i- найдите «Поддержка набора данных TRIM» под заголовком «Команды / функции».

Привет, как уже упоминалось, fstrim выдает ошибку (я добавил OS / Fedroa 24), поскольку устройство не поддерживает обрезку, т. Е. `Hdparm -I / dev / sdX | grep -i TRIM`. Я бы предположил, что поддержка обрезки зависит от контроллера, то есть, если контроллер хранилища поддерживает обрезку ATA, USB-контроллер также должен был бы пройти через нее. THX 7 лет назад 0
0
user3188445

Командой, которую вы хотите, является blkdiscard . Он полностью стирает весь раздел или блочное устройство посредством его обрезки. Тем не менее, он будет работать только на SD-картах, а не на USB-накопителях, так как я не думаю, что последние поддерживают триммер.

ах, спасибо - это в принципе то, что я ищу. К сожалению, все мои кард-ридеры (внутренние и внешние) идентифицируют себя как массовые хранилища того или иного типа (например, флэш-накопители). Я предполагаю, что с помощью непосредственно подключенного карт-ридера, blkdiscard должен быть моим инструментом для SD! THX 7 лет назад 0

Похожие вопросы