hdparm успешно читает сектор, но cp нет

Предположим, вы можете написать команду 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, так что это может иметь место.

0
17.08.2019, 21:52
2 ответа

hdparmудалось поговорить с приводом ¹. Вот и все, что означает «успешно». Привод сказал: «SG _IO :неверные/отсутствующие данные считывания». Я точно не знаю, что это значит², но это определенно нехорошо.hdparmне удалось прочитать сектор .

hdparmпошел дальше и показал буфер памяти, который должен содержать содержимое сектора, но это все нули. Это явно не то, что было прочитано с диска.

Пометка этого блока как неисправного может помочь продолжить работу с накопителем некоторое время, хотя, конечно, его следует заменить как можно скорее. (Однако плохой блок должен был быть отмечен как таковой автоматически. Я не понимаю, почему вы делаете это вручную. )Но он не позволит вам прочитать данные из этого блока.

¹ В частности, это означает, чтоHDIO_DRIVE_TASKFILEioctl вернул 0.
² Чтение исходного кода hdparmпоказывает, что это конкретное сообщение отображается, когда sb[0] != 0x72 || sb[7] < 14 || desc[0] != 0x09 || desc[1] < 0x0c. Я понятия не имею, что означают эти цифры.

2
28.01.2020, 02:29

См.

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.

2
08.05.2020, 00:21

Теги

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