“Ошибка ввода/вывода” при доступе к каталогу

Кэш страницы, иногда называемый дисковым кэшем, является прозрачным буфером RAM для доступа к и из дисковых файлов. В целом любая память, не выделенная запущенным приложениям, используется для пространства кэша страницы./proc/meminfo содержит информацию о, среди прочего, кэш страницы. Выполнение cat /proc/meminfo | grep -iE "^(cached|dirty)" отобразит размер кэша страницы, и объем данных отметил "грязные", означающие данные файла, которые были отмечены для записи в диск.

Кэш Dentry служит для улучшения доступа производительности к файловой системе путем хранения записей, представляющих уровни каталога, которые включают представление пути. Также содержавшийся в dentry кэше inode представление объекта. Кэш Dentry находится напротив, или вдоль стороны в зависимости от перспективы, inode кэша. inode кэш состоит из двух списков, содержащих используемый и неиспользованный inodes соответственно, а также хеш-таблицу используемого inodes. Каждая запись в dentry кэше содержит запись в inode кэше.

81
22.05.2015, 16:18
9 ответов

Ошибки ввода/вывода во время попыток доступа к файловой системе обычно означают аппаратные проблемы.

Ввести dmesg и проверьте последние несколько строк вывода. Если диск или соединение с ним перестанут работать, то он будет отмечен там.

РЕДАКТИРОВАНИЕ - Вы монтирующий его через ntfs или ntfs-3g ? Поскольку я вспоминаю, наследие ntfs драйвер не имел никакой стабильной поддержки записи и в основном отказался, когда это сложилось ntfs-3g было значительно более стабильным и безопасным.

36
27.01.2020, 19:30
  • 1
    я подключаю съемный жесткий диск к своей Ubuntu 12.04, и это автоматически смонтировано. Таким образом, я предполагаю ntfs-3g? –  StackExchange for All 03.06.2012, 02:31
  • 2
    Не "предполагать". Проверьте - Вы видите, как все смонтировано путем ввода mount команда и рассмотрение вывода. –  Shadur 03.06.2012, 02:33
  • 3
    (1) я добавил последнюю часть вывода dmesg после того, как я пытался перечислить содержание каталога. Я не знаю, как это помогает. (2) я не вижу, смонтировано ли это nfts-3g или ntfs путем рассмотрения вывода mount: /dev/sdb1 on /media/removable_drive type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096) –  StackExchange for All 03.06.2012, 02:40
  • 4
    fuseblk средства это использует fuser метод файловой системы в пространстве пользователя, который является что ntfs-3g использование. Таким образом, Вы хороши в том отношении. –  Shadur 03.06.2012, 03:31

Поскольку Sadhur указывает, что это, вероятно, вызывается дисковыми аппаратными проблемами и dmesg вывод является правильным местом для проверки этого.

Можно выпустить поверхностное сканирование диска из Linux /sbin/badblocks /dev/sda.

Проверьте страницу руководства на более полные тесты основные меры (перемещение блока). Это - весь агностик файловой системы, таким образом, это безопасно даже с файловой системой NTFS, поскольку это работает на уровне 'поверхности диска'.

Я лично сделал это для выполнения ежемесячно от крона. Конечно, необходимо проверить, получаете ли Вы письма крона в своем почтовом ящике (который часто является не случаем по умолчанию). Эти письма заканчиваются в /var/mail/$USER или подобный.

Я создал /etc/cron.d/badblocks:

30 4 * * 3 root [ -x /sbin/badblocks ] && [ $(date +\%d) -le 7 ] && /sbin/badblocks /dev/sda
20
27.01.2020, 19:30
  • 1
    Спасибо! Для выполнения команды Вы предложили, это /sbin/badblocks /media/removable_drive в моем случае? номер –  StackExchange for All 03.06.2012, 16:11
  • 2
    согласно dmesg произвел Вас, должны использовать sdb: /sbin/badblocks /dev/sdb или sdc. Я не могу действительно выяснить то, что произошло / Вы сделали от dmesg –  jippie 03.06.2012, 16:20

Ваша файловая система повреждена для томов NTFS, необходимо выполнить a chkdsk под системой окон, но почти невозможно восстановиться. Иногда Вы, возможно, должны были бы отформатировать диск.

9
27.01.2020, 19:30
  • 1
    Спасибо! Мои другие каталоги прекрасны. Разве я не могу отформатировать целый диск, просто освободить пространство из рассматриваемого каталога? –  StackExchange for All 03.06.2012, 04:12
  • 2
    @Tim, необходимо было скопировать всех остальных, формат и скопировать их, назад... я не знаю, можно ли удалить единственный узел... не знакомый со структурой –  daisy 03.06.2012, 04:14
  • 3
    Перед форматированием, попробуйте badblocks команда на Linux. –  jippie 03.06.2012, 10:47

Решение, которое мне подходит, - это понизить версию ntfs-3g с выпуска 2014 года до выпуска 2012 года. Это должно решить вашу проблему доступа к разделу NTFS. В конечном итоге это не решение, потому что в конечном итоге вам нужно будет запустить последнюю версию.

Дополнительная информация здесь

7
27.01.2020, 19:30

Я просто хотел добавить свое решение в эту тему для пользы других - я сделал некоторые работы в своей системе, когда мой блок питания вышел из строя - я, должно быть, переподключил кабели SATA в неправильном порядке, так как когда я переключил их, все снова заработало - не знаю, почему загрузочный диск должен быть на определенном порту SATA, в любом случае, это может быть ответом для кого-то еще.

2
27.01.2020, 19:30

Никто не упомянул, что делать, если инструменты Linux не работают и доступен только Mac, но не Windows.

Может быть исправлено в OS X с помощью Paragon NTFS

В моем случае gparted сказал найти компьютер с Windows, которого нигде не было. Но появился Mac, для которого доступна эта замечательная программа. Установил пробную версию, выполнил проверку , затем восстановление - и вуаля!

2
27.01.2020, 19:30

Я просто хотел поделиться своим опытом: во FreeBSD 10.3 я смонтировал внешний жесткий диск с помощью

$ sudo ntfs-3g /dev/da0s1 /media

Внутри жесткого диска я сделал mkdir, чтобы создать каталог, а затем переместил в него некоторые файлы, конечно, с помощью команды mv. В конце концов я выполнил следующую команду:

$ sudo sync

Затем я смонтировал жесткий диск на машине Linux с ядром 4.4.0-78-generic. Теперь, когда я перечисляю содержимое жесткого диска, созданный во FreeBSD каталог с именем Jeff выглядит следующим образом:

$ ls -lhrtci
ls: cannot access 'Jeff': Input/output error
total 20K
  ? d????????? ? ?    ?       ?            ? Jeff

enter image description here

Кроме того, при попытке удалить каталог Jeff, Я получаю следующее сообщение об ошибке:

$ sudo rm -f -R Jeff
rm: cannot remove 'Jeff': Input/output error

enter image description here

Мне не удалось избавиться от каталога Jeff на компьютере с Linux, поэтому я использовал компьютер с FreeBSD и снова перемонтировал жесткий диск на FreeBSD. Но команды ls, cd и rm во FreeBSD генерируют ту же ошибку ввода/вывода. Похоже, в пакете FreeBSD ntfs-3g обнаружена ошибка.


ОБНОВЛЕНИЕ

Я переместил все свои данные с внешнего жесткого диска на компьютер с Linux, конечно, поврежденный файл Jeff не мог быть перемещен из-за ошибки ввода-вывода.Затем я переформатировал внешний жесткий диск с обнулением тома и проверкой поврежденных секторов следующим образом:

$ sudo mkfs.ntfs /dev/sdb1

А затем переместил все данные обратно на внешний том. Таким образом, я потерял поврежденный файл с именем Джефф, однако на моем внешнем жестком диске нет ошибок ввода-вывода.

2
27.01.2020, 19:30

Я понял, что когда я пытаюсь получить доступ к диску, на котором возникает эта ошибка, он пытается записать, что последние скопированные файлы были перезаписаны в последний файл, после чего попытка доступа завершается неудачно, потому что уже записанная запись не совпадает с последней скопированной. элементы, поэтому его терпит неудачу. Самый здоровый способ спасти диск — это удалить последний элемент или элементы, скопированные в Windows.

1
27.01.2020, 19:30

Для меня проблема была проста: каталог, в котором я находился, был подключен (USB-накопитель )к моему монитору перед переходом в режим гибернации, который после гибернации вернулся размонтированным. После спящего режима я мог видеть lsв терминале, но на самом деле там ничего не было, потому что USB не был подключен. Мне просто пришлось заново -смонтировать USB.

2
06.07.2020, 07:32

Теги

Похожие вопросы