У меня есть жесткий диск с большим количеством файлов, некоторые из которых, к сожалению, повреждаются. Я теперь пытаюсь скопировать хорошие файлы в новый жесткий диск. Я использую:
rsync -azP SRC TGT
Когда rsync доходит до одного из поврежденных файлов, я вижу сообщение в консоли:
rsync: read errors mapping XXX: Input/output error (5)
В целевой папке я все еще вижу поврежденный файл, который я не могу открыть и который я должен удалить вручную.
Там какая-либо опция состоит в том, чтобы сказать rsync не копировать файлы после i/o ошибки?
Я не думаю, что можно вынудить это остановиться на той ошибке. Необходимо будет зарегистрировать ошибки, очистить проблемные файлы и выполнить rsync снова.
У Mike Bombich есть хорошая страница, описывающая Вашу ошибку - Что такое ошибки "ввода/вывода", и как я могу разрешить их?
"Эти ошибки обычно являются результатом повреждения медиа — некоторые "секторы" на жестком диске перестали работать, и Mac OS X больше не может считывать данные от них. Когда это имеет место, файл или файлы, которые используют поврежденный сектор, должны быть удалены и восстановлены от предыдущего резервного копирования. После того как Вы удалили файлы, которые были вызваны в файле CCC.log, необходимо смочь выполнить резервную задачу снова с успехом".
Даже при том, что он обращается к CarbonCopyCloner, он использует rsync для управления синхронизацией клона, таким образом, то же применялось бы здесь.
Между прочим, версия, которую Apple обеспечивает (2.6.9), устарела и правильно не обрабатывает HFS + метаданные. Последняя версия 3.0.7, который действительно поддерживает все метаданные для надлежащего резервного копирования.
У Mike есть страница (http://www.bombich.com/rsync.html), документирующий компиляцию, установку и использование новой версии. Обязательно проверьте переключатели и опции, он запрашивает резервное копирование.