Linux ошибка ввода вывода 5

Обновлено: 08.07.2024

[Errno 5] - Input/output error

Я попробовал все, чтобы установить его на свой ноутбук, но ничего не работает (также повторно загрузите образ ISO).

На целевом жестком диске могут быть некоторые поврежденные сектора.

Чтобы проверить sda1 том для поврежденных секторов в Linux run fsck -c /dev/sda1. Для диска C: в Windows это должно быть chkdsk c: /f /r.

Способ IMHO chkdsk будет более подходящим, поскольку он переназначает плохие блоки на жестком диске, в то время как Linux fsck просто отмечает такие блоки, как непригодные в текущей файловой системе.

Цитата из man fsck.ext2

-c Эта опция заставляет e2fsck использовать программу badblocks(8) для выполнения сканирования только для чтения устройства, чтобы найти какие-либо плохие блоки. Если обнаружены какие-либо плохие блоки, они добавляются в индексный индекс плохого блока, чтобы предотвратить их распределение в файл или каталог. Если эта опция указана дважды, то сканирование плохих блоков будет выполнено с использованием неразрушающего теста чтения и записи

На целевом жестком диске могут быть некоторые поврежденные сектора.

Чтобы проверить sda1 том для поврежденных секторов в Linux run fsck -c /dev/sda1. Для диска C: в Windows это должно быть chkdsk c: /f /r.

Способ IMHO chkdsk будет более подходящим, поскольку он переназначает плохие блоки на жестком диске, в то время как Linux fsck просто отмечает такие блоки, как непригодные в текущей файловой системе.

Цитата из man fsck.ext2

-c Эта опция заставляет e2fsck использовать программу badblocks(8) для выполнения сканирования только для чтения устройства, чтобы найти какие-либо плохие блоки. Если обнаружены какие-либо плохие блоки, они добавляются в индексный индекс плохого блока, чтобы предотвратить их распределение в файл или каталог. Если эта опция указана дважды, то сканирование плохих блоков будет выполнено с использованием неразрушающего теста чтения и записи

У меня возникла проблема с установкой Lubuntu с загрузочным USB-накопителем, и я продолжал получать раздражающую «инсталляционную катастрофу», и это не позволяло мне устанавливать на моем нетбуке eeePC . Ну, наконец, я получил его для установки, и вот как это сработало для меня. Умм, в первую очередь, я выиграл 7 стартеров на своем нетбуке, когда пытался установить Lubuntu. Итак, в меню опций, где он спросил, как вы хотите установить (раздел), перейдите в «someting else», и там вы выделите диск, нажмите «Добавить раздел». Теперь, что это делает, он вытирает жесткий диск, не оставляя на нем ничего. После того, как вы закончите, вернитесь к настройкам и установкам меню. PS. это хорошо Если вы хотите сделать ПОЛНУЮ УСТАНОВКУ только .

То же самое случилось со мной при попытке установить 11.10.

Система отлично работала с LiveCD / LiveUSB, но при попытке установить ее не удалась. Попробовал сжечь другой компакт-диск и перезаписать iso на USB-накопителе, повторно переустановил место на жестком диске несколько раз, проверил его на наличие ошибок, низкоуровневый форматировал установочный USB-диск и не повезло.

Как последний Я сделал тест памяти, используя memtest86 +, который входит в образ Ubuntu, и показал, что у меня проблемы с памятью. Я знаю, что тест занимает много времени, но если вы этого никогда не делали, попробуйте!

Я еще не заменил свою память, поэтому я не могу быть на 100% уверен, что она решит проблему, но очень вероятно.

Это может быть результатом плохой ОЗУ на вашем компьютере. У меня была аналогичная проблема, и оказалось, что это так. Попробуйте протестировать свою оперативную память, загрузившись с USB-накопителя, и как только вы увидите значки клавиатуры и человека в нижней части экрана, нажмите клавишу, чтобы отобразить неграфическое меню загрузки. Затем выберите опцию для проверки вашей ОЗУ.

Если это обнаруживает дефект в вашей ОЗУ, вам придется удалить или заменить поврежденную RAM-палку. (Если вы не чувствуете себя комфортно с этим, вам следует заручиться поддержкой друга, профессионала или другого знакомства с аппаратным опытом. Поскольку это будет проблема с оборудованием, вы можете спросить у Суперпользователя за советом об этом .)

Это также могут быть следующие проблемы:

Плохой установочный носитель (либо физически дефектный, либо, скорее, поврежденный образ записи или поврежденный ISO). MD5SUM Ubuntu ISO вы использовали, чтобы убедиться, что это хорошо (и если это не так, загрузите новый, MD5SUM тоже, и начните с него). Также убедитесь, что USB-накопитель был правильно написан, выбрав «Проверить диск для дефектов» в том же меню, в котором есть опция проверки RAM (см. Также это видео). Может возникнуть проблема с диском, к которому вы пытаетесь установить Ubuntu. Если у вас есть другой диск, вы можете попробовать его установить. Так как работает живая система (отключение самого флеш-накопителя), вы можете протестировать свой жесткий диск с помощью smartctl, как описано в разделе «Неудачный диск» этой статьи.

Я видел много комментариев, предлагающих различные исправления для проблемы «errno 5». Я столкнулся с той же проблемой. Мое решение довольно простое, и я считаю, что многие пользователи неосторожно используют.

Немного проблема с гигиеной. Надеюсь, это поможет тебе!

У меня была та же проблема.

После поиска я решил установить Ubuntu с альтернативного компакт-диска (с помощью текстового установщика), а не на компакт-диск с рабочим столом.

У меня тоже была эта проблема, во время установки .

[Errno 5] Input/output error

Целевая машина была совершенно новым ноутбуком Asus K53e. Установочным изображением был ubuntu-11.10-desktop-amd64.iso (64-разрядный). Я сжег это изображение на CD . Errno 5. Сжег его на загрузочный USB-накопитель . Errno 5 снова :( Я пробовал 4 или 5 раз.

fsck сказал, что весь корневой раздел был в порядке (через 10 часов). ubuntu-11.10-desktop-amd64.iso сказал, что все 6 ГБ оперативной памяти тоже в порядке. Я попытался установить непосредственно, когда загрузилось живое изображение (установить Ubuntu). Попробуйте кнопку Ubuntu, затем запустите установку с рабочего стола. Опять же, Errno 5.

В итоге получается, что загруженный файл iso был как-то устаревшим или неправильным. Можете ли вы в это поверить !?

SQUASHFS error: zlib inflate error, data probably corrupt squashfs_read_data failed to read block 0x1e457bbd

в выводе dmesg (я думаю) или как-то здесь [F6] при проверке после сбоя установки выгрузили меня на рабочий стол (Try Ubuntu).

В принципе, Установите Ubuntu (я знаю. Я знаю. Я редко проверяю!)

В любом случае, я снова загрузил 64-битный Ubuntu 11.10, и на этот раз мне было предложено диалоговое окно «Сохранить как», вместо того, чтобы просить выбрать зеркальный сайт. При загрузке контрольная сумма соответствует :) Установка ok:)

Опишем окружение в котором возникла ошибка ввода/вывода:

  • ОС: Linux совместно с Windows
  • HDD: два диска, на одном Windows XP (далее ДИСК 1 ), на другом Linux Debian 7.x (далее ДИСК 2 )

Каждый диск разбит на два раздела, - на диске с Windows XP два раздела с файловой системой NTFS, на втором диске с Linux Debian 7.x один раздел EXT4, на котором и установлен Linux, а на втором собственно NTFS. Окружением для рабочего стола Linux было выбрано Xfce, файловый менеджер по умолчанию Thunar 1.2.3 (Thunar это быстрый и простой в использовании файловый менеджер для рабочего окружения Xfce.), текстовый редактор gedit.

Ошибка ввода/вывода появилась на ДИСК 2 в разделе с файловой системой NTFS, который монтировался вручную после входа в уч. запись Linux.

Когда именно появилась Ошибка ввода/вывода на NTFS разделе сказать сложно, но предположительно после очередного переключения между ОС. На ДИСК 2 были расположены совместно редактируемые файлы, - т.е. эти фалы (Test.txt один из них) были открыты в текстовом редакторе notepad++ под ОС Windows XP и в текстовом редакторе gedit под Linux Debian 7.x. Перед переключением между ОС каждая ОС переводилась в спящий режим с сохранением запущенных программ и открытых файлов.

Не скажу, как и почему стала появляться Ошибка ввода/вывода, - возможно gedit попутал uid/gid (файловые/индексные дескрипторы) и при сохранении в Master File Table (MFT) прописал не то, не тем и не туда, но вот, что получилось после очередного переключения между ОС при совместном редактировании файлов:

Попытка открыть каталог " /media/SATA2/PROFILE/User/Рабочий стол " в Thunar:

Остальное содержимое каталога было не доступно для просмотра/редактирования

Попытка сохранить уже открытый в gedit текстовый файл Test.txt :

При использовании файлового менеджера NAUTILUS удалось открыть каталог /media/SATA2/PROFILE/User/Рабочий стол и удалить " Test.txt ", но вот создать заново Test.txt или создать «Безымянный документ» и переименовать его в «Test.txt» не удалось:

Следующий глюк сопутствовал Ошибкам ввода/вывода, но вот при каких условиях возник не припомню (вероятно при нескольких одновременных попытках монтирования):

Владелец и права на файл Test.txt не известны:

В некоторых манах для лечения предлагалось использовать ntfsfix -b /dev/sdb5 , предварительно отмонтировав его, - но проблема не решилась.

В среде Linux на ДИСК 2 были созданы текстовые файлы " Test_2.txt " и " Test_3.txt " и совершено переключение на Windows XP где эти файлы были не доступны даже для просмотра, хотя после перехода обратно в Linux их можно было просматривать и редактировать.

Проблему с косяком в NTFS разделе на ДИСК 2 удалось решить только с помощью стандартного средства проверки дисков входящего в ОС Windows XP в процессе перезагрузки:

Увидев на экране Deleting index entry . я зразу же понял, что этих файлов нам уже не видать как своих ушей, - разумеется, так и есть.

Существует также ещё один способ монтирования NTFS с возможностью чтения/записи, - это Проект NTFS-3G, который по заявлениям является более функциональным и стабильным вариантом (также использующий FUSE) дающий более широкие возможности по созданию/изменению/удалению/перемещению файлов (исключая сжатые и зашифрованные файлы) в файловой системе NTFS. В тоже время тесты показывают, что NTFS-3G не оптимизирован для производительности, а разработчики заявляют, что это связано с обеспечением повышенной надёжности и, что производительность является второстепенной задачей.

Никто не застрахован от возникновения каких-то ошибок на разделах с файловой системой NTFS или же вовсе полного краха таких разделов с необходимостью полного форматирования. Поэтому, при использовании Linux лучше вовсе не использовать NTFS разделов, или же использовать их как можно реже.

Основные причины ошибок ввода/вывода

  • Значит это всё масонский заговор дядюшки Билла. На буржуйских веб-ресурсах бродит информация о том, что стандарт NTFS меняется в каждой новой версии Windows, что вполне предсказуемо, включая сервис-паки и промежуточные патчи. При этом, разумеется, изменения не придаются общественной огласке, а следовательно нет возможности в полной мере обеспечить стабильную работу с NTFS в свободных ОС таких как Linux.
  • Отмечено также, что на разделах NTFS возможно изменение уже существующих файлов с незначительным изменением их размера, но при создании новых файлов или существенного изменения уже существующих может вызвать проблемы и даже "запороть" весь раздел.
  • Проблемы с отображением созданных в Linux на NTFS разделе файлов, а также проблемы с ошибками ввода/вывода, могут возникнуть если на ПК установлено несколько ОС (ака Мультизагрузка, Multi-boot), - Windows vs Linux. Пик ошибок ввода/вывода отмечен когда Windows была переведена в спящий режим, а после очередного включения запущен Linux из-под которого на NTFS разделе создавались/редактировались файлы. Другими словами если мы хотим из-под ОС Linux, в условиях мультизагрузки (Multi-boot), относительно безопасно создавать/редактировать файлы на NTFS разделах совместно используемых обеими ОС, то перед запуском ОС Linux мы должны выполнить полную перезагрузку или остановку ОС Windows, но не в коем случае не переводить Windows в спящий режим!
  • SRT-кэширование (Smart Response Technology) - ещё одна "фича", которая может стать причиной невидимости из-под Windows на NTFS разделах файлов, которые создавались в Linux. Предположительно Linux не поддерживает SRT-кэширование (касается только SSD дисков), которое поддерживает Windows, а значит при создании из-под Linux-а файлов на SSD дисках с активным SRT-кэширование кэш не обновляется и после загрузки Windows файлов не обнаруживается. Предлагается отключить SRT-кэширование для SSD диска.

Тема использования NTFS в Linux является довольно актуальной, требует более подробного изучения и дополнительных экспериментов. О появлении новых багов, в ходе использования NTFS разделов в Linux, и, способов их решения, - будем дописывать в этой же статье.

Рекомендуемый контент

Вы не любите рекламу!? Напрасно!:) На нашем сайте она вовсе ненавязчивая, а потому для нашего сайта можете полностью отключить AdBlock (uBlock/uBlock Origin/NoScript) и прочие блокировщики рекламы! AdBlock/uBlock может препятствовать нормальной работе системы поиска по сайту, отображению рекомендуемого контента и прочих сервисов Google. Рекомендуем полностью отключить блокировщик рекламы и скриптов, а также разрешить фреймы (aka iframe).

Доброго времени суток! Есть жесткий диск на 3тб, который стоял в каком-то NAS от D-Link. Диск работал, потом попробовали воткнуть в Synology, который при попытке форматнуть диск выдал ошибку. Теперь диск форматнуть не получается. Gparted не видит таблицу разделов. При попытке определить диск выдает:

Ошибка синхронизации или закрытия файлов /dev/sdb: Ошибка ввода/вывода

При попытке выполнить

В файлик падает все подряд: 0,1,2,3. При попытке выполнить

Есть какие-нибудь идеи или это труп? Диск относительно свежий, год ему. Данные мне не нужны, а вот диск - напротив.


Найди в dmesg записи про этот диск. Если они затёрлись надо будет передёрнуть диск.


$ dmesg | grep sdb

2745.611235 blk_update_request: I/O error, dev sdb, sector 0

2746.867197 blk_update_request: I/O error, dev sdb, sector 0 2746.867200 Buffer I/O error on dev sdb, logical block 0, lost async page write

2832.256882 blk_update_request: I/O error, dev sdb, sector 0

2832.256885 Buffer I/O error on dev sdb, logical block 0, async page read

2832.304945 blk_update_request: I/O error, dev sdb, sector 24

2832.304948 Buffer I/O error on dev sdb, logical block 3, async page read

2832.400881 sdb: unable to read partition table


Прошу прощения, спойлер почему-то не работает. Вот вывод sudo hdparm -I /dev/sdb:

Security:
Master password revision code = 65534
supported
enabled
locked
not frozen
not expired: security count
supported: enhanced erase
Security level high

Меня смущают эти строки. Может пасс стоит на нем?

Доброго времени суток! Упал с 3-го этажа, теперь идёт кровь из ног, торчат какие-то белые штуки, при попытке встать теряю сознание. Дополз до 3-го этажа и упал заново - не помогает. Дополз до другого здания и ещё раз упал с 3-го этажа - симптомы те же.

P.S. man dmesg и man smartctl


Очень забавно, однако диска не было у меня до сегодняшнего дня. И все манипуляции с насами не Я выполнял.

P.S. Я неправильно вывод dmesg посмотрел?


У меня нет на руках этих насов. В smartctl тоже ошибки, тесты не выполняет. В общем труп, судя по всему. Спасибо всем, за уделенное время.

Не надо тесты выполнять (и так понятно, что они не пройдут), надо попробовать посмотреть smartctl -A /dev/sdX

Favorite

Добавить в избранное

Главное меню » Linux » Ввод, вывод и перенаправление ошибок в Linux

(1 оценок, среднее: 5,00 из 5)

Ввод, вывод и перенаправление ошибок в Linux

Е сли вы знакомы с основными командами Linux, вам также следует изучить концепцию перенаправления ввода-вывода.

Вы уже знаете, как работает команда в Linux. Она принимает вход и дает вам выход. Здесь есть несколько игроков. Позвольте нам рассказать вам о них.

Stdin, stdout и stderr

Когда вы запускаете команду Linux, в ней играют роль три потока данных:

Эти потоки содержат данные в виде простого текста в том, что называется буферной памятью.

Думайте об этом как о струе воды. Вам нужен источник для воды, например, кран. Вы подключаете к нему трубу и можете хранить ее в ведре (файле) или поливать растения (распечатывать). Вы также можете подключить его к другому крану, если это необходимо. По сути, вы перенаправляете воду.

Позвольте нам показать, как работает перенаправление и как вы можете его использовать.

Перенаправление вывода

Первой и самой простой формой перенаправления является перенаправление вывода, также называемое перенаправлением stdout.

Вы уже знаете, что по умолчанию вывод команды отображается на экране. Например, мы используем команду ls для вывода списка всех файлов, и это вывод, который мы получаем:

Например, позвольте нам сохранить вывод команды ls в файл с именем output.txt:

Выходной файл создается заранее

Как вы думаете, каким должно быть содержимое этого выходного файла? Позвольте нам использовать команду cat, чтобы показать вам сюрприз:

Вы заметили, что включение output.txt существует ? Мы сознательно выбрали этот пример, чтобы показать вам это.

Выходной файл, на который перенаправляется стандартный вывод, создается до запуска намеченной команды. Почему? Потому что он должен иметь готовый выходной пункт назначения, на который будут отправлены выходные данные.

Читать Docker File против Docker Compose. В чем разница

Добавить вместо удаления

Одна из часто игнорируемых проблем заключается в том, что если вы перенаправляете файл, который уже существует, оболочка сначала удалит ( замкнет ) файл. Это означает, что существующее содержимое выходного файла будет удалено и заменено выводом команды.

Вы можете добавить вместо перезаписи, используя >> синтаксис перенаправления.

Вы можете запретить забивание в текущем сеансе оболочки, используя: set -C

Зачем вам перенаправлять стандартный вывод? Вы можете сохранить выходные данные для дальнейшего использования и проанализировать их позже. Это особенно полезно, когда вывод команды слишком велик и занимает весь экран. Это как собирать бревна.

Перенаправление канала

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

При перенаправлении канала стандартный вывод команды отправляется на стандартный ввод другой команды.

Позвольте нам показать вам практический пример. Скажем, вы хотите посчитать количество видимых файлов в текущем каталоге. Вы можете использовать ls -1 (это цифра один, а не буква L) для отображения файлов в текущем каталоге:

Вы, наверное, уже знаете, что команда wc используется для подсчета количества строк в файле . Если вы объедините обе эти команды с конвейером, вот что вы получите:

При использовании pipe обе команды совместно используют один и тот же буфер памяти. Вывод первой команды сохраняется в буфере, и этот же буфер затем используется в качестве ввода для следующей команды.

Вы увидите результат последней команды в конвейере. Это очевидно, потому что вывод предыдущей команды (команд) подается на следующую команду (команды) вместо перехода на экран.

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

Помните, что stdout/stdin это кусок данных, а не имена файлов

Некоторые новые пользователи Linux путаются при использовании перенаправления. Если команда возвращает набор имен файлов в качестве выходных данных, вы не можете использовать эти имена файлов в качестве аргумента.

Например, если вы используете команду find, чтобы найти все файлы, оканчивающиеся на .txt, вы не можете передать ее через канал для перемещения найденных файлов в новый каталог, а не так:

Вот почему вы часто будете видеть команду find, используемую в сопряжении с командой exec или xargs. Эти специальные команды «преобразуют текст с кучей имен файлов в имя файла», которые могут быть переданы в качестве аргумента.

Перенаправление ввода

Вы можете использовать перенаправление stdin для передачи содержимого текстового файла команде, подобной этой:

Вы не увидите, что stdin часто используется. Это потому, что большинство команд Linux принимают имена файлов в качестве аргумента и, следовательно, перенаправление stdin часто не требуется.

Возьмите это к примеру:

Приведенная выше команда могла быть просто заголовком filename.txt (без <).

Дело не в том, что перенаправление stdin совершенно бесполезно. Некоторые команды полагаются на это. Возьмите команду tr, например. Эта команда может многое, но в приведенном ниже примере она преобразует входной текст из нижнего в верхний регистр:

На самом деле, использование stdin рекомендуется по конвейеру, чтобы избежать ненужного использования команды cat.

Например, многие люди используют приведенный выше пример с cat, а затем используют tr на нем. Честно говоря, здесь нет необходимости использовать cat.

Объединить перенаправления

Вы можете комбинировать перенаправление stdin, stdout и pipe в соответствии с вашими потребностями.

Например, приведенная ниже команда перечисляет все файлы .txt в текущем каталоге, а затем подсчитывает эти файлы .txt и сохраняет выходные данные в новый файл.

Перенаправление ошибок

Но как вы различаете stdout и stderr, когда они оба являются потоком выходных данных? По их идентификатору потока (также называется дескриптором файла).

Поток данных Идентификатор потока
stdin
stdout 1
stderr 2

По умолчанию, когда вы используете выходной символ перенаправления >, это фактически означает 1>. Словом, вы говорите, что здесь выводится поток данных с ID 1.

Примеры перенаправления Stderr

Позвольте нам показать вам несколько примеров. Предположим, вы просто хотите сохранить ошибку, вы можете использовать что-то вроде этого:

Это было просто. Давайте сделаем это немного более сложным (и полезным):

В приведенном ниже примере мы сначала отправляем stderr (с 2 >>) в файл комбинированный .txt в режиме добавления. Затем стандартный вывод (с >>) отправляется в тот же файл в режиме добавления.

Давайте возьмем предыдущий пример и на этот раз используем 2>&1 для перенаправления как stdout, так и stderr в один и тот же файл.

Имейте в виду, что вы не можете использовать 2>>&1, думая об использовании его в режиме добавления. 2>&1 уже переходит в режим добавления.

Резюме

  • Есть три потока данных. Один вход, stdin (0) и два потока выходных данных stdout (1) и stderr (2).
  • Клавиатура является стандартным устройством ввода, а экран является устройством вывода по умолчанию.
  • Перенаправление вывода используется с > или >> (для режима добавления).
  • Перенаправление ввода используется с <.
  • Stderr может быть перенаправлен с помощью 2> или 2>>.
  • Stderr и stdout можно комбинировать, используя 2>&1.

Надеюсь, вам понравилось эта подробная статья по перенаправлению в Linux. Если у вас все еще есть сомнения или у вас есть предложения по улучшению этой статьи, сообщите нам об этом в разделе комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: