При резервном копировании некоторых данных (домашнего каталога объемом 200 ГБ) с помощью rsync
я получил ошибку ввода-вывода для определенного файла, после чегоrsyncпродолжил "нормально" с резервной копией. Исходный файл проблемы показал размер файла 72 байта.
Я отменил rsync, и снова запустил ту же команду. На этот раз тот же файл показал передачу данных..много данных...и больше данных, и больше... Я проверил размер конечного файла, и он был аж 13 ГБ! поэтому я использовал Ctrl-c для отменыrsync.
При повторной проверке размера исходного файла в Nautilus он показал размер 60.0 PB
(Петабайт!) на диске объемом 500 ГБ.
Теперь, главный вопрос: может ли удаление этого файла привести к потере данных в других файлах, учитывая, что файловая система может воспринимать его как гораздо больший, чем он есть на самом деле... Файловая система ext4
...
Я мог бы просто пропустить это с помощьюrsyncисключение, но мне особенно интересно, что может произойти, если его удалить.
ОБНОВЛЕНИЕ: И цель, и источникext4
Что касается предположений, что это разреженный файл: Если это разреженный файл, почему он показывает разные размеры от минуты к минуте? Файл определенно(?) не использовался в то время. Это файл ~/.macromedia/Flash_Player/#SharedObjects/someting-or-other.sol
, о котором естьмногобольше таких.сольфайлы в этом каталоге... плюс он показал ошибку ввода-вывода при первом проходе.
Также, согласно man rsync
, предлагаемый -S
вариант - обрабатывать разреженные файлыэффективно, нетправильно, так что это говорит мне о том, что даже если я не использовал -S
его, он должен был точно скопировать разреженный файл в любом случае: чего он не сделал, и даже если это разреженный файл, размер которого составляет 60,0 Петабайт, то это наверняка(?) означает ошибку в файловой системе, где-то... и это мое главное беспокойство: если в файловой системе есть сбой, может ли удаление этого файла иметь последствия для других файлов?
А точнее: поскольку он записал 13 ГБ данных и продолжает расти!, когда я его отменил, может ли он также удалить 13 ГБ - 60 ПБ данных, когда я его удалю?
решение1
Похоже, что исходная файловая система повреждена, обычно из-за ошибки ядра или плохой оперативной памяти (поврежденный диск с большей вероятностью приведет к нечитаемым файлам, чем к поврежденным данным). На этом этапе все ставки отменены. Однако, если повреждение было очень локализованным, поврежден только один inode файла, а другие файлы не повреждены, поэтому вы можете безопасно удалить файл. Обратите внимание, что нет способа проверить это предположение.
Моя рекомендация:
- Выполните тест оперативной памяти или подключите диск к другому компьютеру.
- Обязательно сделайте резервную копию всех своих данных.
- Если возможно, проверьте состояние диска с помощью SMART.
- Бегать
fsck
. - Если диск все еще в порядке, продолжайте его использовать.
решение2
Эторазреженный файл. Вам следует рассмотреть возможность использования -S
, чтобы файл обрабатывался как можно более корректно.
решение3
Это, скорее всего,разреженный файл. (если это не так, начните бежатьсейчас!) Это не такна самом делезанимают все это пространство, в нем есть дыры. Может быть, одна большая дыра.
Удалите его с rsync
целевой стороны, затем добавьте -S
опцию (разреженные), чтобы rsync
убедиться, что он распознает и обрабатывает разреженные файлы.
Тип целевой файловой системы долженподдержка разреженных файловтоже. (короткая версия: ext[234]
делает, NTFS делает, FAT не делает)