Вопрос или проблема
У меня есть жесткий диск с большим количеством резервных файлов, которые были созданы с помощью PhotoRec. Когда я подключаю его к компьютеру с Windows, я могу прочитать все файлы без проблем. Под Linux я получаю ошибку, когда пытаюсь открыть папку, содержащую все мои резервные копии. Остальная часть жесткого диска читается нормально, но когда я пытаюсь выполнить команду ls в папке резервных копий, я получаю
ls: чтение каталога .: Ошибка ввода/вывода
В Dolphin я просто вижу пустую директорию. Я пробовал позволить Arch автоматически монтироваться, и я пытался смонтировать его вручную с опцией -t ntfs-3g
(единственный использованный флаг). Странная вещь, которую я заметил, заключается в том, что если я монтирую его вручную с опцией 3g, все разрешения имеют вид -rwxrwxrwx
, но если я позволю ему автоматически монтироваться, у меня будут разрешения -rw------- 1 steven steven
(у некоторых 2, но немногие. Директории показывают d
, как и должны). Эти параметры одинаковы для каждого файла и директории в системе.
Я не понимаю, почему я не могу увидеть эти файлы под Linux, но могу под Windows. Я даже снова загрузил SystemRescueCD, чтобы посмотреть, распознает ли он это, но он даже не смог увидеть файлы (несмотря на то, что именно он изначально записывал файлы). Что меня удивляет, так это то, что я могу прочитать все на жестком диске, кроме этой одной папки. У нее точно такие же разрешения, как и у всего остального на жестком диске.
Дополнительная информация:
Это свежая установка Arch. На текущий момент.
[steven@serenity ~]$ uname -a
Linux serenity 3.16.1-1-ARCH #1 SMP PREEMPT Thu Aug 14 07:40:19 CEST 2014 x86_64 GNU/Linux
(авто монтируется)
[steven@serenity ~]$ sudo fdisk -l
Диск /dev/sdb: 596.2 GiB, 640135028736 байт, 1250263728 секторов
Единицы: сектора по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x1549f232
Устройство Загрузка Начало Конец Секторов Размер Id Тип
/dev/sdb1 * 63 1250258159 1250258097 596.2G 7 HPFS/NTFS/exFAT
Ошибки указывают на проблему с оборудованием диска, но только на секторах, содержащих данные.
Причина, по которой под Windows вы не видите этих ошибок (до сих пор), вероятно, связана с различиями в программном обеспечении для просмотра файлов: большинство файловых менеджеров Linux читает больше информации о файле, из файла при открытии папки, чем Проводник Windows. Это делается для попытки создания превью и наличия метаданных для файлов. Windows, вероятно, извлекает эту информацию только по явному запросу.
Вы можете попробовать скопировать все файлы под Windows на отдельный диск. Если это сработает, запустите детальный анализатор дисков на оригинальном диске перед тем, как продолжить его использование (после создания полного резервного копирования).
Ответ или решение
Проблема, с которой вы столкнулись, связана с тем, что ваша файловая система на жестком диске может иметь поврежденные сектора, затрагивающие каталог, содержащий резервные копии, созданные с помощью PhotoRec. Давайте подробно рассмотрим причины, по которым Linux не может читать и записывать данные, в отличие от Windows, и предложим возможные решения.
Причины проблемы
-
Неправильное чтение директорий:
- Linux использует более сложные механизмы для доступа к файловым системам и обработки метаданных. В отличие от Windows, некоторые файловые менеджеры Linux (например, Dolphin) могут пытаться получить дополнительную информацию о файлах и каталогах при их просмотре, что может приводить к Input/Output ошибкам при отсутствии доступа к поврежденным другим данным на диске.
-
Проблемы с оборудованием:
- Ошибки ввода/вывода свидетельствуют о возможных физических повреждениях на жестком диске. Windows, возможно, не обращала внимания на эти повреждения до сих пор, потому что обработка данных может отличаться от Linux, где больше внимания уделяется состоянию файловой системы и метаданных.
-
Различия в монтировании файловой системы:
- Ваша попытка смонтировать диск с использованием
-t ntfs-3g
и автоматическое монтирование могут давать разные права доступа. При автоматическом монтировании параметры могут по умолчанию накладываться на каталоги и файлы, а при ручном монтировании могут быть установлены более подходящие для работы права.
- Ваша попытка смонтировать диск с использованием
Рекомендации по решению проблемы
-
Копирование данных в среде Windows:
- Поскольку доступ к файлам возможен в Windows, начните с того, чтобы скопировать все файлы из проблемного каталога на другой носитель. Используйте качественные средства копирования, которые могут обрабатывать ошибки ввода/вывода и пропускать поврежденные сектора.
-
Проверка состояния диска:
- После того как вы сделаете резервное копирование, рекомендуется использовать утилиты для диагностики жестких дисков. В Windows можно использовать
chkdsk
, а в Linux —fsck
. Эти утилиты помогут выявить поврежденные сектора и исправить ошибки файловой системы.
- После того как вы сделаете резервное копирование, рекомендуется использовать утилиты для диагностики жестких дисков. В Windows можно использовать
-
Использование низкоуровневых инструментов:
- Если жесткий диск имеет физические повреждения, то профессиональные инструменты восстановления, такие как TestDisk или другие низкоуровневые инструменты, могут помочь восстановить доступ к данным.
-
Поддержка с использованием Live CD:
- Попробуйте использовать Live CD, такие как SystemRescueCD, для доступа к диску в другой среде. Иногда разные дистрибутивы Linux могут по-разному обрабатывать файловые системы.
-
Замена жесткого диска:
- Если проблемы продолжаются даже после выполнения всех вышеперечисленных шагов, возможно, стоит рассмотреть возможность замены жесткого диска, так как физические повреждения могут привести к полной потере данных.
Заключение
Проблема чтения и записи в Linux может быть вызвана рядом факторов, включая физическое состояние диска и способы монтирования файловых систем. Важно иметь резервные копии данных и незамедлительно принимать меры по их восстановлению. Используйте инструменты диагностики и профессиональные решения, чтобы минимизировать риск потери данных в будущем.