У меня в конце 2011 года Macbook Pro под управлением Mavericks 10.9.2. Его единственный жесткий диск - это диск на 750 ГБ, отформатированный в Bootcamp. Он все еще работает достаточно хорошо, но при выполнении прохода дефрагментации я обнаружил, что есть куча файлов, которые отказываются перемещаться дефрагментатором (iDefrag).
При доступе к файлам iDefrag сообщает об ошибке POSIX 5. Выбор одного случайного файла и попытка скопировать файл в другое место в оболочке также сообщает об ошибке, которая заставляет меня думать, что проблема реальна и с диском / FS. Вывод cp:
cp: unity_nophysx.nexe: Input/output error
Насколько мне известно, код ошибки 5 - «Отказано в доступе», но процесс дефрагментации выполняется от имени администратора, и запуск cp с использованием sudo для подозрительного файла не имеет значения.
Дисковая утилита, fsck и Apple Hardware Test утверждают, что с диском все в порядке. Об ошибках SMART не сообщалось, и хотя были некоторые ошибки разрешений, они не были с файлами, на которые жалуется iDefrag, и Дисковая утилита утверждает, что исправила их без жалоб.
Там может быть сотня или более поврежденных файлов, но все равно очень небольшая часть диска. Насколько я могу судить, системные файлы и важные данные не затрагиваются. Хотя было бы неплохо получить данные, я не против переустановки или резервного копирования. На данный момент я не знаю, действительно ли это диск умирает, просто некоторые поврежденные сектора из-за перемещения диска во время записи или какого-то другого незначительного повреждения, которое можно обойти. Я предполагаю наихудший случай, и, скорее всего, мне придется получить немного больший жесткий диск и клонировать существующий диск, чтобы избежать необходимости перестраивать систему.
Мой вопрос заключается в том, как мне пометить эти поврежденные файлы как должным образом поврежденные и исправить или очистить их , чтобы клон диска был успешным и не зависал на файлах / блоках, к которым он не может получить доступ. Дисковая утилита не видит проблемы, и я не знаю ни командной строки, ни сторонних инструментов, которые бы выполняли эту работу. Я не хочу списывать весь диск и начинать с нуля, так как диск кажется исправным, поэтому я ищу инструменты для ремонта / диагностики.
источник
Ответы:
Если вы сталкиваетесь с исправной файловой системой на уровне ее структуры и хотите найти файлы, в которых есть блоки с диском, вот как я бы поступил:
Сделайте полную резервную копию вашего диска с помощью
Time Machine
или Carbon Copy ClonerПроверьте эту резервную копию.
Выполните следующую тяжелую и рискованную (в случае, если у вас есть плохие блоки вне структуры вашей файловой системы) команду (убедитесь, что {} указан в кавычках, чтобы имена файлов, содержащие пробелы, работали):
Эта тяжелая
find
команда напечатает для любого простого файла его имя (то есть не для чтения, а только для своей записи в каталоге), а затем продолжит полное и быстрое чтение всех его блоков данных.После hiting первого файла , содержащий дефектные блоки, это
find
заставит ядро войтиread error
на/var/log/system.log
, и это будет либо замедлить или привести вашу систему к полной остановке. Это будет в основном зависеть от емкости жесткого диска для перемещения поврежденных блоков в его внутреннем пуле, предназначенном для этой обычной задачи исправления. Этот файл, содержащий плохие блоки, будет фамилией, напечатаннойfind
.Запишите это имя файла на листе бумаги! Допустим, это имя файла:
В этот момент вы можете
find
быстро убить , нажав ctrl+ C. Если убить его не удастся, просто разбейте свой Mac.После перезагрузки вашего Mac, непосредственно проверьте файл, содержащий поврежденные блоки:
Если команда завершается правильно, то ошибка была достаточно легкой, чтобы ваш диск мог прочитать этот файл и перераспределить поврежденные блоки.
В этом последнем случае вы должны рассмотреть вопрос о замене диска и работать с последними резервными копиями. Некоторые другие файлы могут также содержать поврежденные блоки и могут оставаться необнаруженными в течение длительного времени, пока вы их не читали.
Ядро не выдаст ошибку чтения на блоке, который вы никогда не читали.
источник
May 10 20:42:15 ICE kernel[0]: disk0s2: I/O error.
всплывающее окно в журналах, но не знаю, какой файл вызвал его. Но тогда команда работает довольно счастливо.dd
ничего не исправляет, цель этой команды - скопировать данные и преобразовать их как можно быстрее. Диск все еще способен исправлять световые ошибки. Будьте бдительны, цена диска ничто не сравнится с вашей работой.Перезагрузитесь в однопользовательском режиме, удерживая Command+ Sво время загрузки. Когда вы увидите приглашение (должно выглядеть
root #
или что-то похожее), введитеfsck -f
и нажмите Return. Это встроенный в Mac инструмент проверки целостности файловой системы, позволяющий находить и исправлять ошибки в файловой системе при запуске. Выполняйте эту команду до тех пор, пока вы не увидите**The volume [volume name] was modified.**
или инструмент не выйдет из строя три раза подряд.Если инструмент выходит из строя, это может указывать на более серьезную проблему (но я не могу сказать вам, что, не видя выходных данных инструмента). В любом случае, убедитесь, что вы сделали резервную копию всего, что можете, прежде чем запускать какой-либо дисковый инструмент. Когда вы закончите, введите
reboot
приглашение и нажмите Enter, чтобы (как вы уже догадались!) Перезагрузить компьютер.Для получения дополнительной информации вы можете найти страницы справочника fsck здесь .
источник
fsck
&Disk Utility
проверяют целостность структуры файловой системы. Они читают дисковые блоки, выделенные структуре файловой системы. Они не предназначены для проверки целостности блоков данных. Следовательно, они могут работать на диске с ошибочными блоками без возникновения ошибок чтения. Если вы хотите проверить свой диск, даже блоки, которые могут быть неисправны, но на самом деле не используются, просто используйте базовый инструмент, какdd if=/dev/disk0 of=/dev/null ibs=1k
и во время другого запуска оболочкиtail -f /var/log/system.log
. Это бесплатно, экстремально и не скрывает никаких ошибок.Я настоятельно рекомендую DiskWarrior для восстановления каталогов дисков и для сканирования потенциально поврежденных файлов .
Во время перестройки каталога он также может сообщить вам, если возникла задержка из-за сбоя диска.
источник
Отработав ответ Buscar, вы можете сделать это автоматически, используя довольно тяжелую командную строку foo.
источник
Как вы говорите, даже не ясно, повреждены ли эти файлы, по крайней мере, ваш Mac так не считает.
Каждая ОС создает неподвижные файлы, которые необходимы для ее работы (точки восстановления, в настоящее время активные файлы и т. Д.). Некоторые дефрагменты покажут их, некоторые нет.
Тот факт, что вы не можете получить к ним доступ или переместить их, не означает, что они повреждены.
Обычно Mac очень хорошо заботятся о себе.
Использование Apple для обслуживания: откройте Терминал и введите:
затем Return, введите свой пароль администратора, и OS X позаботится о вас.
Посмотрите в Консоли отчеты о тех, кто вас интересует.
Находясь в консоли, ищите (ищите) любые ошибки ввода-вывода, которые указывали бы, что на вашем диске начинаются проблемы, чтобы дополнить Дисковую утилиту и выводы fsck.
Иногда я использую бесплатный инструмент под названием OnyX для дополнительного обслуживания. Это сделано по-французски, и, как они едят, это просто здорово :)
OnyX - это многофункциональная утилита для OS X, которая позволяет проверять загрузочный диск и структуру его системных файлов, запускать различные задачи обслуживания системы, настраивать некоторые скрытые параметры Finder, Dock, QuickTime, Safari, Mail, iTunes. окно входа в систему, Spotlight и многие приложения Apple для удаления кэшей, удаления определенного количества файлов и папок, которые могут стать громоздкими, и многое другое.
Учитывая все вышесказанное, я не ставлю под сомнение ваше решение об использовании средства дефрагментации (iDefrag), поскольку я его не знаю, а скорее предлагаю альтернативные решения.
источник
fsck
она заботится только о проблемах файловой системы, а не блокирует проблемы доступности. Консоль показала ошибки только тогда, когда я вручную пытался скопировать / прочитать данные из одного из этих поврежденных файлов, и это не помогло их найти.Как бы неразумно это ни звучало, прежде чем что-либо делать, вы должны скопировать все свои данные на заведомо исправный диск. Если загрузка из установщика и копирование данных не удалась, есть утилита командной строки под названием 'dd', которая может выполнять низкоуровневое дублирование и гораздо более бескомпромиссным способом.
для получения дополнительной информации о dd, включая использование и правильный синтаксис.
Еще один голос за пост Мэтта, загрузку однопользовательского режима и запуск
снова и снова, пока fsck не прекратит сообщать об ошибках.
DiskWarrior - голос за пост Адама. Это простое в использовании, но очень мощное приложение, которое будет сообщать о сбоях жесткого диска, проверять отдельные файлы на наличие ошибок и, если возможно, исправлять их, а также перестраивать и оптимизировать структуры каталогов.
Другое возможное решение, которое может показаться необоснованным, но часто является последней попыткой восстановить данные с большим количеством ежегодных доказательств успеха, - это вытащить диск, защитить его от влаги, используя несколько слоев морозильных пакетов, и поместить его в морозильник для 30-45 минут. Затем, пока диск холодный, установите диск во внешнюю док-станцию USB и используйте другую временную систему, чтобы снова попытаться скопировать поврежденные данные на другой диск. Как правило, это используется, если есть проблемы с оборудованием, и диск выходит из строя. Если вы можете скопировать весь диск с неповрежденными данными, это идеально, так как часто перераспределение и переформатирование дают накопителю новый срок службы.
источник
fsck
в список «вещей, которые считают, что с диском все в порядке», я ответил на упоминание об ответеfsck
дисконтированием его полезности.fsck
Дисковая утилита выполняет почти ту же функцию, то есть для работы со структурами файловой системы, а не на уровне блоков. Я пытался быть довольно конкретным, что это проблема блока, а не проблема файловой системы.Для одного файла, который не может быть прочитан полностью из-за ошибки чтения с диска, вы можете использовать
dd
утилиту для дублирования файла на внешний том, заменяя NUL-байты для блоков, которые не могут быть прочитаны. Настоятельно рекомендуется выполнить копирование на другой том (например, «USB-диск» в приведенном ниже примере).Пример:
Используя 512-байтовые блоки, будет восстановлено максимальное количество читаемых блоков.
Восстановление может занять много времени, так как ядро будет блокироваться на некоторое время при каждом неудачном чтении.
источник