Вопрос или проблема
Я на macOS 14.5 с SSD формата APFS. Утилита дисков всегда сообщает одну и ту же ошибку: ошибка: дерево doc-id: запись существует для doc-id 1341220, file-id 8567077, но ни один inode не ссылается на этот doc-id
.
У меня есть несколько таких и, и они появляются на каждом созданном снимке. Я действительно не хочу форматировать и восстанавливать из резервной копии Time Machine (СНОВА‼️ (Уже четыре раза в этом году.)).
Я предполагаю, что как только я найду файл(ы), связанные с этими ошибками, я смогу удалить его, и все снова будет прекрасно в мире.
Итак… Как мне найти, КАКОЙ файл в моей файловой системе связан с doc-id
/file-id
в вопросе?
Ответ или решение
На macOS, работающей с файловой системой APFS, выявление файлов, связанных с конкретными идентификаторами документов (doc-id
) и файлов (file-id
), требует понимания структуры APFS и некоторых специальных инструментов. Если вы столкнулись с ошибкой в Disk Utility, такой как "error: doc-id tree: record exists for doc-id 1341220, file-id 8567077 but no inode references this doc-id", это может указывать на повреждения или несоответствия в метаданных файловой системы. Однако не обязательно сразу прибегать к форматированию диска и восстановлению из резервной копии. Вместо этого, следуя нижеуказанным шагам, вы можете попытаться решить эту проблему, не теряя ваши данные.
Шаг 1: Используйте командную строку для анализа
Для поиска файлов по doc-id
и file-id
в APFS вы можете использовать терминал. Откройте приложение «Терминал» и выполните следующие команды:
-
Проверьте состояние диска:
diskutil verifyVolume /Volumes/имя_вашего_диска
Эта команда проверит ваш объем APFS на наличие ошибок.
-
Получите информацию об диске:
diskutil apfs list
Определите идентификатор вашего APFS, чтобы использовать его в дальнейшем.
Шаг 2: Используйте fsck_apfs
Для более глубокого анализа используйте утилиту fsck_apfs
:
-
Затяните критический объем в режим только для чтения:
Сначала убедитесь, что у вас есть резервная копия всех данных на диске. Запустите в однопользовательском режиме, удерживаяCommand + R
во время загрузки. -
Запустите
fsck_apfs
:sudo fsck_apfs -n /dev/diskX
Замените
diskX
на идентификатор вашего диска. Эта команда проведет проверку файловой системы и предоставит довольно подробную информацию о любых несоответствиях, включая проблемы сdoc-id
иfile-id
.
Шаг 3: Использование sqlite3
Если вы хотите более детально проанализировать метаданные, вы можете использовать SQLite для доступа к базам данных, хранящимся на вашем диске:
-
Загрузите базу данных в Терминале:
Вы можете попробовать открыть базу данных системы для получения информации о файлах:sqlite3 /path/to/your/database.db
-
Поиск по
doc-id
илиfile-id
:
Используйте SQL-запрос, чтобы найти конкретные записи. Например:SELECT * FROM files WHERE doc_id = '1341220';
Шаг 4: Ручное восстановление
Если после анализа оказывается, что файлы все еще "зависли", вам, возможно, придется вручную удалить их или восстановить более раннюю версию:
- Используйте Time Machine для восстановления предыдущих версий файлов, если это возможно.
- Если файлы связаны с конкретными приложениями (например, Pages или TextEdit), попробуйте открыть их и посмотреть, сможем ли мы попробовать сохранить их заново.
Заключение
Используя эти команды и утилиты, вы можете выявить и устранить ошибки, связанные с doc-id
и file-id
на вашем APFS-диске, без необходимости форматирования и восстановления из резервной копии. Если же эти подходы не решают проблему, призываю вас обратиться в службу технической поддержки Apple или к квалифицированному специалисту для получения помощи. Постарайтесь сохранять регулярные резервные копии, чтобы минимизировать потенциальную потерю данных в будущем.