Предположим, вы можете написать команду find для получения списка всех ваших файлов, которые вы хотите удалить.
Давайте также предположим, что ваш модуль puppet знает , когда удаляет эти файлы.
Юникс:exec { 'delete_files':
command => "/bin/find [your find command arguments here] -delete",
}
Некоторые команды поиска не имеют -удаления, так что это будет "/bin/find [your find command arguments here] -exec rm -f {} \;"
Окна :Прошло много времени с тех пор, как я сделал Windows, CMD может быть чем-то вроде этого:dir [path] [file_wildcard] | find "[string of correct characters]"
Не могу вспомнить, как отправить этот вывод команде ERASE. Powershell был изобретен после того, как я ушел из Windows, так что это может иметь место.
hdparm
удалось поговорить с приводом ¹. Вот и все, что означает «успешно». Привод сказал: «SG _IO :неверные/отсутствующие данные считывания». Я точно не знаю, что это значит², но это определенно нехорошо.hdparm
не удалось прочитать сектор .
hdparm
пошел дальше и показал буфер памяти, который должен содержать содержимое сектора, но это все нули. Это явно не то, что было прочитано с диска.
Пометка этого блока как неисправного может помочь продолжить работу с накопителем некоторое время, хотя, конечно, его следует заменить как можно скорее. (Однако плохой блок должен был быть отмечен как таковой автоматически. Я не понимаю, почему вы делаете это вручную. )Но он не позволит вам прочитать данные из этого блока.
¹ В частности, это означает, чтоHDIO_DRIVE_TASKFILE
ioctl вернул 0.
² Чтение исходного кода hdparm
показывает, что это конкретное сообщение отображается, когда sb[0] != 0x72 || sb[7] < 14 || desc[0] != 0x09 || desc[1] < 0x0c
. Я понятия не имею, что означают эти цифры.
См.
https://www.smartmontools.org/wiki/BadBlockHowto
и
https://wiki.archlinux.org/index.php/Identify_damaged_files
для получения дополнительной информации.
Короче говоря, после использования таких инструментов, как debugfs или sleuthkit, чтобы определить, какой файл поврежден, и после hdparm --read-sector
, вы можете попробовать использовать--repair-sector
(псевдоним --write-sector
), который "записывает нули в указанный номер сектора" и «заставить диск восстановить поврежденный сектор (ошибка носителя )». Подробную информацию см. на странице руководства hdparm.