Ошибка ввода вывода linux

Ошибка при получении информации о файле «X.txt»: Ошибка ввода/вывода. Неожиданная ошибка: Ошибка при получении информации о файле «X.txt»: Ошибка ввода/вывода

pc-error-logo Ошибка при получении информации о файле «X.txt»: Ошибка ввода/вывода. Неожиданная ошибка: Ошибка при получении информации о файле «X.txt»: Ошибка ввода/вывода

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

  • ОС: 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. Перед переключением между ОС каждая ОС переводилась в спящий режим с сохранением запущенных программ и открытых файлов.

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

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

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

Не удалось открыть папку: «Рабочий стол».
 
Ошибка при получении информации о файле «/media/SATA2/PROFILE/User/Рабочий 
    стол/Test.txt»: Ошибка ввода/вывода.

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

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

Не удалось сохранить файл /media/SATA2/PROFILE/Use…бочий стол/Test.txt.
 
Неожиданная ошибка: Ошибка при получении информации о файле «/media/SATA2/ 
    PROFILE/User/Рабочий стол/Test.txt»: Ошибка ввода/вывода

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

Не удалось переименовать объект.
 
Не удалось переименовать объект «Безымянный документ» в «Test.txt»: Произошла 
    ошибка при переименовании файла: Ошибка ввода/вывода

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

Не удалось подключить «SATA2».
 
DBus error org.gtk.Private.RemoteVolumeMonitor.Failed: An operation is already 
    pending.

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

root@linux:/media/SATA2/PROFILE/User/Рабочий стол# ls -la
ls: невозможно получить доступ к Test.txt: Ошибка ввода/вывода
итого 4415
drwx------ 1 User User   12288 Сен  2 22:21 .
drwx------ 1 User User    8192 Авг 18 07:48 ..
-rw------- 1 User User    1830 Сен  2 11:56 Test_2.txt
-rw------- 1 User User    3722 Сен  2 21:22 Test_3.txt
-????????? ? ?      ?            ?            ? Test.txt

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

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

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

CHKDSK is verifyng indexes (stage 2 of 5)
 
    Deleting index entry .Trash-1000 in index $I30 of file 5
    Deleting index entry Test.txt in index $I30 of file 702196
    Deleting index entry Test_2.txt in index $I30 of file 702196
    Deleting index entry Test_3.txt in index $I30 of file 702196

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

Вероятно (http://ru.wikipedia.org/wiki/NTFS#Linux) поддержка NTFS в Linux осуществляется при помощи ntfsmount (использующая FUSE), которая позволяет монтировать NTFS-разделы на запись, но с некоторыми ограничениями.

Существует также ещё один способ монтирования 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, и, способов их решения, — будем дописывать в этой же статье…

Оффлайн
mirochek

красный кружок с белым кирпичиком

Обновлений не делали? Покажите  выводы —
sudo apt-get updatecat /etc/apt/sources.list

rom@rom-Lenovo-G570:~$ sudo apt-get update
[sudo] password for rom:
Игн http://ru.archive.ubuntu.com trusty InRelease
Получено:1 http://ru.archive.ubuntu.com trusty-updates InRelease [65,9 kB]     
В кэше http://ppa.launchpad.net trusty InRelease                               
Игн http://extras.ubuntu.com trusty InRelease                                 
Получено:2 http://ru.archive.ubuntu.com trusty-backports InRelease [65,9 kB]   
Получено:3 http://extras.ubuntu.com trusty Release.gpg [72 B]                 
В кэше http://extras.ubuntu.com trusty Release                                 
Получено:4 http://ru.archive.ubuntu.com trusty-proposed InRelease [65,9 kB]   
В кэше http://ppa.launchpad.net trusty/main i386 Packages                     
В кэше http://ru.archive.ubuntu.com trusty Release.gpg                         
Получено:5 http://ru.archive.ubuntu.com trusty-updates/main Sources [262 kB]   
В кэше http://extras.ubuntu.com trusty/main Sources                           
В кэше http://security.ubuntu.com trusty-security InRelease                   
В кэше http://ppa.launchpad.net trusty/main Translation-en                     
В кэше http://extras.ubuntu.com trusty/main i386 Packages                     
Получено:6 http://ru.archive.ubuntu.com trusty-updates/restricted Sources [5 352 B]
Получено:7 http://ru.archive.ubuntu.com trusty-updates/universe Sources [151 kB]
В кэше http://security.ubuntu.com trusty-security/main Sources                 
Игн http://www.openprinting.org lsb3.2 InRelease                               
В кэше http://security.ubuntu.com trusty-security/restricted Sources           
Получено:8 http://ru.archive.ubuntu.com trusty-updates/multiverse Sources [5 946 B]
Получено:9 http://ru.archive.ubuntu.com trusty-updates/main i386 Packages [692 kB]
В кэше http://www.openprinting.org lsb3.2 Release.gpg                         
В кэше http://security.ubuntu.com trusty-security/universe Sources             
В кэше http://www.openprinting.org lsb3.2 Release                             
В кэше http://security.ubuntu.com trusty-security/multiverse Sources           
В кэше http://security.ubuntu.com trusty-security/main i386 Packages           
В кэше http://www.openprinting.org lsb3.2/contrib i386 Packages               
Получено:10 http://ru.archive.ubuntu.com trusty-updates/restricted i386 Packages [15,6 kB]
Получено:11 http://ru.archive.ubuntu.com trusty-updates/universe i386 Packages [340 kB]
В кэше http://security.ubuntu.com trusty-security/restricted i386 Packages     
Получено:12 http://ru.archive.ubuntu.com trusty-updates/multiverse i386 Packages [13,6 kB]
В кэше http://ru.archive.ubuntu.com trusty-updates/main Translation-en         
В кэше http://ru.archive.ubuntu.com trusty-updates/multiverse Translation-en   
В кэше http://ru.archive.ubuntu.com trusty-updates/restricted Translation-en   
В кэше http://ru.archive.ubuntu.com trusty-updates/universe Translation-en     
Получено:13 http://ru.archive.ubuntu.com trusty-backports/main Sources [8 661 B]
В кэше http://security.ubuntu.com trusty-security/universe i386 Packages       
Получено:14 http://ru.archive.ubuntu.com trusty-backports/restricted Sources [28 B]
Получено:15 http://ru.archive.ubuntu.com trusty-backports/universe Sources [34,0 kB]
Получено:16 http://ru.archive.ubuntu.com trusty-backports/multiverse Sources [1 898 B]
Получено:17 http://ru.archive.ubuntu.com trusty-backports/main i386 Packages [9 814 B]
Получено:18 http://ru.archive.ubuntu.com trusty-backports/restricted i386 Packages [28 B]
В кэше http://security.ubuntu.com trusty-security/multiverse i386 Packages     
Получено:19 http://ru.archive.ubuntu.com trusty-backports/universe i386 Packages [41,0 kB]
Игн http://extras.ubuntu.com trusty/main Translation-ru_RU                     
В кэше http://security.ubuntu.com trusty-security/main Translation-en         
Получено:20 http://ru.archive.ubuntu.com trusty-backports/multiverse i386 Packages [1 552 B]
В кэше http://ru.archive.ubuntu.com trusty-backports/main Translation-en       
В кэше http://ru.archive.ubuntu.com trusty-backports/multiverse Translation-en
Игн http://extras.ubuntu.com trusty/main Translation-ru                       
В кэше http://security.ubuntu.com trusty-security/multiverse Translation-en   
В кэше http://ru.archive.ubuntu.com trusty-backports/restricted Translation-en
В кэше http://ru.archive.ubuntu.com trusty-backports/universe Translation-en   
В кэше http://ru.archive.ubuntu.com trusty Release                             
Получено:21 http://ru.archive.ubuntu.com trusty-proposed/main i386 Packages [120 kB]
Игн http://extras.ubuntu.com trusty/main Translation-en                       
В кэше http://security.ubuntu.com trusty-security/restricted Translation-en   
Получено:22 http://ru.archive.ubuntu.com trusty-proposed/restricted i386 Packages [28 B]
Получено:23 http://ru.archive.ubuntu.com trusty-proposed/universe i386 Packages [23,0 kB]
Получено:24 http://ru.archive.ubuntu.com trusty-proposed/multiverse i386 Packages [733 B]
Получено:25 http://ru.archive.ubuntu.com trusty-proposed/main Translation-en [47,9 kB]
В кэше http://security.ubuntu.com trusty-security/universe Translation-en     
Получено:26 http://ru.archive.ubuntu.com trusty-proposed/multiverse Translation-en [539 B]
Получено:27 http://ru.archive.ubuntu.com trusty-proposed/restricted Translation-en [28 B]
Получено:28 http://ru.archive.ubuntu.com trusty-proposed/universe Translation-en [20,1 kB]
В кэше http://ru.archive.ubuntu.com trusty/main Sources                       
В кэше http://ru.archive.ubuntu.com trusty/restricted Sources                 
В кэше http://ru.archive.ubuntu.com trusty/universe Sources                   
В кэше http://ru.archive.ubuntu.com trusty/multiverse Sources                 
В кэше http://ru.archive.ubuntu.com trusty/main i386 Packages                 
В кэше http://ru.archive.ubuntu.com trusty/restricted i386 Packages           
В кэше http://ru.archive.ubuntu.com trusty/universe i386 Packages             
В кэше http://ru.archive.ubuntu.com trusty/multiverse i386 Packages           
В кэше http://ru.archive.ubuntu.com trusty/main Translation-ru                 
В кэше http://ru.archive.ubuntu.com trusty/main Translation-en                 
В кэше http://ru.archive.ubuntu.com trusty/multiverse Translation-ru           
В кэше http://ru.archive.ubuntu.com trusty/multiverse Translation-en           
В кэше http://ru.archive.ubuntu.com trusty/restricted Translation-ru           
В кэше http://ru.archive.ubuntu.com trusty/restricted Translation-en           
В кэше http://ru.archive.ubuntu.com trusty/universe Translation-ru             
В кэше http://ru.archive.ubuntu.com trusty/universe Translation-en             
Игн http://ru.archive.ubuntu.com trusty/main Translation-ru_RU                 
Игн http://ru.archive.ubuntu.com trusty/multiverse Translation-ru_RU           
Игн http://ru.archive.ubuntu.com trusty/restricted Translation-ru_RU           
Игн http://ru.archive.ubuntu.com trusty/universe Translation-ru_RU
Игн http://www.openprinting.org lsb3.2/contrib Translation-ru_RU               
Игн http://www.openprinting.org lsb3.2/contrib Translation-ru                 
В кэше http://www.openprinting.org lsb3.2/contrib Translation-en               
Получено 1 994 kБ за 13с (144 kБ/c)                                           
Чтение списков пакетов… Ошибка!
E: Ошибка чтения - read (5: Ошибка ввода/вывода)
E: Списки пакетов или файл состояния не могут быть открыты или прочитаны.

rom@rom-Lenovo-G570:~$ cat /etc/apt/sources.list
# deb cdrom:[Ubuntu 14.04.3 LTS _Trusty Tahr_ - Beta i386 (20150805)]/ trusty main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ trusty main restricted
deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://ru.archive.ubuntu.com/ubuntu/ trusty universe
deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty universe
deb http://ru.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://ru.archive.ubuntu.com/ubuntu/ trusty multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://ru.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu trusty-security main restricted
deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted
deb http://security.ubuntu.com/ubuntu trusty-security universe
deb-src http://security.ubuntu.com/ubuntu trusty-security universe
deb http://security.ubuntu.com/ubuntu trusty-security multiverse
deb-src http://security.ubuntu.com/ubuntu trusty-security multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu trusty partner
# deb-src http://archive.canonical.com/ubuntu trusty partner

## This software is not part of Ubuntu, but is offered by third-party
## developers who want to ship their latest software.
deb http://extras.ubuntu.com/ubuntu trusty main
deb-src http://extras.ubuntu.com/ubuntu trusty main
deb http://ru.archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://www.openprinting.org/download/printdriver/debian/ lsb3.2 contrib

Содержание

  1. 16GB Flash / ошибка ввода/вывода
  2. SD-карта ошибка ввода-вывода
  3. 1 ответ
  4. Linux и NTFS: Ошибка ввода/вывода
  5. Основные причины ошибок ввода/вывода
  6. Флешка — «того»?

16GB Flash / ошибка ввода/вывода

badblock прогнал, но не думаю, что он тут к месту, ибо это не жд, потому что он ничего не дал

После попытки dd if=/dev/zero of=/dev/sdb , даже с указанием блока

Хотя изначально я снял dd полностью весь sdb, потом все 3 раздела. т.е. в данный момент у меня есть все 4 образа с флешки, ибо не очень хочется восстанавливать данные как после проблем с посыпавшимся жд пару лет назад, который, емнип, так же пропадал offline device из системы

Что с ней делать? Есть вариант попробовать

Бери утилиту и перепрошивай из-под венды, да, обычно помогает.

Или есть еще какие варианты?

Кхм. Флешка стояла в ноуте как основная с системой, записей там было немного-немало

PS: Кстати, сначала была проблема с одним из архивов, который не распаковывался в tmpfs, в связи с чем — фиг знает, решилось заменой самого архива на более старый. Через какое-то время(дни) резко вылетел браузер, и пошли ошибки ввода/вывода, как будто флешка была переподключена. После этого была предпринята попытка fsck по всем разделам, но процесс вешается на статус D (htop показал) на некоторое время. И затем уже начались действия по восстановлению данных.

PS: Ноут работал как сервер 24/7, перезагружался раз в месяц в во время цикла разряда/заряда батареи, которая кстати была недавно полностью разряжена(ввиду того, что не прописал правила для выключения при низком заряде), сейчас не заряжается, но с этим потом разберемся, хотя сдается мне еще и это стало добавкой.

Источник

SD-карта ошибка ввода-вывода

Выполнение fsck.fat /dev/block/mmcblk0p1 , устройство моей неисправной SD-карты, я получаю это:

Это означает, что файлы постоянно нечитабельны?

Выполнение fsck возвращает следующее:

ddrescue ничего не может сохранить. Вывод df :

Обновление: ситуация становится более странной. На моей машине Windows кажется, что вся SD-карта читаема. Однако копирование файлов является чрезвычайно медленным со случайными возвратами к регулярной скорости передачи. Мне удалось скопировать файлы, что я был главным образом после (фотографии, сделанные после моего последнего резервного копирования), но после определенного момента Windows Explorer не продолжится в копировании, неважно, сколько времени я ожидал.

Я вернулся к Ubuntu и к моему удивлению, fsck.fat на самом деле работал успешно. Выполнение его несколько раз дает некоторую комбинацию следующего: Has a large number of bad entries. (128/133) , Free cluster summary wrong (42991 vs. really 43267) , Orphaned long file name part , Contains a free cluster (144584). Assuming EOF. , Start does point to root directory. Deleting dir. ddrescue работает хорошо прямо сейчас, таким образом, я позволю ему продолжать бежать на данный момент.

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

1 ответ

Как правило, ошибки ввода-вывода означают, что система столкнулась с неисправимой аппаратной ошибкой. Любые файлы на объеме ошибочного луга ввода-вывода нужно считать потерянными.

После этих слов восстановление данных все еще возможно (хотя немного трудно). К счастью, существует несколько утилит, которые могут выручить Вас:

  • ddrescue
    Ddrescue является специальной утилитой, которая может использоваться для чтения как можно больше из дефектных объемов. Если бы Вы выполняете это, я настоятельно рекомендовал бы, чтобы Вы записали в файл изображения и отделались от этого для любых других операций восстановления (если кто-либо даже возможен).
  • photorec
    В то время как его имя подразумевает, что это только для фотографий, photorec может часто использоваться для восстановления намного больше с диска, если дано шанса. Это, вероятно, не сможет восстановить данные из любых erroring секторов Вашего устройства, но это смогло спасать некоторые вещи.
  • dd
    DD (шутливо известный как РазрушительДанных) является встроенной утилитой большинства — если не все — современные системы Linux. В худшем случае можно попытаться использовать dd сделать изображение Вашего флеш-накопителя, который мог бы позволить еще некоторым усовершенствованным средствам восстановления (или для файлового менеджера) работать успешно. Убедитесь, что Вы указываете право команд, иначе Вы изучите точно, почему это известно как Разрушитель Данных.

Если восстановление невозможно, Вы можете восстанавливать карту при помощи dd и другие утилиты для перезаписи всего диска с нулями. Это, как было известно, (в некоторых редких случаях) на самом деле возвращало диск жить (хотя, теряя содержание диска в прогрессе). Однако это — почти всегда лучшая идея просто получить новый диск. После того как диск перестал работать, он теряет любое подобие доверия, которое он когда-либо имел.

Источник

Linux и NTFS: Ошибка ввода/вывода

Ошибка при получении информации о файле «X.txt»: Ошибка ввода/вывода. Неожиданная ошибка: Ошибка при получении информации о файле «X.txt»: Ошибка ввода/вывода

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

  • ОС: 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. Перед переключением между ОС каждая ОС переводилась в спящий режим с сохранением запущенных программ и открытых файлов.

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

Не скажу, как и почему стала появляться Ошибка ввода/вывода, — возможно 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 . я зразу же понял, что этих файлов нам уже не видать как своих ушей, — разумеется, так и есть.

Вероятно (http://ru.wikipedia.org/wiki/NTFS#Linux) поддержка NTFS в Linux осуществляется при помощи ntfsmount (использующая FUSE), которая позволяет монтировать NTFS-разделы на запись, но с некоторыми ограничениями.

Существует также ещё один способ монтирования 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, и, способов их решения, — будем дописывать в этой же статье.

Источник

Флешка — «того»?

Писал на флешку

gparted тоже ошибку ввода-вывода дает.

Не должно быть «всё». Попробуй ребут и запись нулей count=1 bs=1000

И что говорит dmesg?

gparted тоже ошибку ввода-вывода дает.

На каком этапе и какую?

не очень понимаю этих строк, но хардваре эррор есть 🙁

на этапе инициализации дисков. ошибка ввода/вывода.

Можно перепрошить контроллер, но я бы на брелок повесил.

Да разве флешки стоят того сейчас? Ну, бытового назначения, не крипто-секрето

Ну да, что-то как-то уныло

microSD у меня. Только купил и вот. 🙁

Кардридер встроенный? В смысле не usb?

1. выполни холодную перезагрузку без флешки (выключить комп, потом включить. Никаких снов/ребутов). Попробуй ещё.

2. если не поможет, почисти контакты, попробуй в другом компе

3. если не поможет, то скорее всего в помойку.

И да, не нужно дёргать флешки при работе. Не знаешь чего крутить — крути свои яйца.

Да, ты ССЗБ. Покупай новую и думай в следующий раз.

а на кой хрен ты её без ФС юзаешь? Я не понимаю такого извращения. Да ещё и дёргаешь.

Контроллер перепрошей попробуй. Нельзя при работе выдергивать флешки, будет тебе наука.

Источник

Содержание

  1. Linux и NTFS: Ошибка ввода/вывода
  2. Основные причины ошибок ввода/вывода
  3. Рекомендуемый контент
  4. Исправление ошибки «Запрос не был выполнен из-за ошибки ввода/вывода на устройстве» при подключении флешки
  5. Почему появляется сбой ввода-вывода и как его устранить
  6. Способ 1: Форматирование в другую файловую систему (потеря данных)
  7. Способ 2: Создание образа флешки и последующее форматирование (сохранение данных)
  8. Способ 3: Восстановление флешки посредством утилиты chkdsk
  9. Проблема с копированием файла на флеш-карту
  10. Использование утилиты fsck для исправления ошибок файловой системы в Linux
  11. Когда нужно использовать fsck в Linux
  12. Опции fsck
  13. Как запустить fsck для исправления ошибок файловой системы Linux
  14. Понимание кодов выхода fsck
  15. Исправление ошибок файловой системы Linux
  16. Как запустить fsck в корневом разделе Linux
  17. Принудительная проверка корневой файловой системы с помощью fsck при загрузке системы
  18. Запуск fsck в режиме восстановления
  19. Заключение
  20. Не определяется флешка в ubuntu linux

Linux и NTFS: Ошибка ввода/вывода

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

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

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

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

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

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

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

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

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

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

Вероятно (http://ru.wikipedia.org/wiki/NTFS#Linux) поддержка NTFS в Linux осуществляется при помощи ntfsmount (использующая FUSE), которая позволяет монтировать NTFS-разделы на запись, но с некоторыми ограничениями.

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

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

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

А тут же ж мог быть рекомендуемый контент от гугла 🙂 Для отображения рекомендуемого контента необходимо в браузере разрешить выполнение JavaScript скриптов, включая скрипты с доменов googlesyndication.com и doubleclick.net

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

Источник

Исправление ошибки «Запрос не был выполнен из-за ошибки ввода/вывода на устройстве» при подключении флешки

Kak ispravit oshibku Zapros ne byil vyipolnen iz za oshibki vvoda vyivoda na ustroystve pri podklyuchenii fleshki 1

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

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

Способ 1: Форматирование в другую файловую систему (потеря данных)

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

Внимание! Данный способ сотрет все данные, которые хранятся на флешке! Если вы хотите сохранить файлы, обратите внимание на способы 2 и 3!

Затем подключите накопитель заново. Проблема будет решена.

Самый простой способ не всегда самый подходящий – например, пользователям, желающим сохранить свои файлы, он не поможет.

Способ 2: Создание образа флешки и последующее форматирование (сохранение данных)

В большинстве случаев, наблюдая сообщение об ошибке ввода-вывода на флешке, вы не сможете получить доступ к хранящимся на ней данным обычными средствами. Однако существует способ, который поможет спасти хотя бы часть файлов — это создание образа флешки: виртуальной копии структуры файловой системы и всей информации на ней. Один из простейших методов создать образ – использовать утилиту HDD Raw Copy Tool.

Vyibor fleshki istochnika v HDD Raw Copy Tools dlya resheniya problemyi s vvodom vyivodom informatsii na fleshke

Vyibor imeni mesta i formata obraza HDD Raw Copy Tools dlya resheniya problemyi s vvodom vyivodom informatsii na fleshke

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

Способ 3: Восстановление флешки посредством утилиты chkdsk

В системе Windows присутствует утилита командной строки chkdsk, которая способна помочь справиться с проблемой появления ошибки ввода-вывода.

Zapustit CMD.exe ot imeni administratora v menyu Puska dlya resheniya problemyi s oshibkoy vvoda vyivoda

Vyizov utilityi vosstanovleniya chkdsk dlya resheniya problemyi s oshibkoy vvoda vyivoda

Rezultat rabotyi utilityi vosstanovleniya chkdsk dlya resheniya problemyi s oshibkoy vvoda vyivoda

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

Если все описанные выше способы не дают результата, вероятнее всего, вы столкнулись с физической неисправностью накопителя: механическим повреждением, выходом из строя части блоков памяти или проблемами с контроллером. В таком случае, если на нем хранились критично важные данные, посетите сервисный центр. Кроме того, вам могут помочь инструкции по восстановлению работоспособности для специфичных производителей: Kingston, Verbatim, A-Data, Transcend.

Помимо этой статьи, на сайте еще 12342 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Источник

Проблема с копированием файла на флеш-карту

Все просто, скачал образ с игрой для ps3, весит он 8 гигов. Копирую его на флешку, и линукс уже не может это осилить.

В общем и сам вопрос. Почему я не могу совершить элементарную операцию по копированию файлов? Ошибка, что я получаю http://joxi.ru/L21Ko1YhgwOMNr

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

174217: 1864355603

174217: 1864355603

Так же проблема появлялась и ранее, когда файл гига на 4 копировался минут 10-15. Это реально боль какая-то. При старте копирования скорость максимально высокая, а с каждой секундой все меньше и меньше. Уже находил подобные темы на этом форуме, но как-то они мне не помогли

p

Файловая система на носителе не FAT случаем?

135041:964175722

Какая ФС на флешке?

У FAT32 ограничение — более 4 гибибайт файлы в принципе не поддерживаются. В новых версиях Windows флешки потому по умолчанию форматируют или в NTFS, или в exFAT.

Если флешка только под Linux, можешь ext4 использовать на ней.

Я даже больше скажу: нтфс имеет смысл использовать ТОЛЬКО если предпологаеться использование ее для обмена файлами с компьютером под управлением винды.

135041:964175722

Вероятно, да. Под macOS можно флешку в HFS+ отформатировать — Linux умеет и с этой ФС работать.

Источник

Использование утилиты fsck для исправления ошибок файловой системы в Linux

Оригинал: How to Use ‘fsck’ to Repair File System Errors in Linux
Автор: Marin Todorov
Дата публикации: 1 октября 2018 года
Перевод: А. Кривошей
Дата перевода: июль 2019 г.

Файловые системы отвечают за организацию хранения данных. Так или иначе, со временем файловая система может быть повреждена и некоторые ее части могут быть недоступны. Если ваша файловая система имеет такое несоответствие, рекомендуется проверить ее целостность.

Это можно выполнить с помощью системной утилиты fsck (file system consistency check). Эта проверка может быть выполнена автоматически во время загрузки или запущена вручную.

В этой статье мы рассмотрим утилиту fsck и ее использование, чтобы помочь вам исправить дисковые ошибки.

Когда нужно использовать fsck в Linux

Существуют разные сценарии, когда вам понадобится запустить fsck. Вот несколько примеров:

Система не загружается.
Файлы в системе поврежденны (часто вы можете увидеть ошибку ввода/вывода).
Подключенный диск (включая флэшки/SD-карты) не работает должным образом.

Опции fsck

Команда Fsck должна быть запущена с привилегиями суперпользователя (root). Вы можете использовать ее с разными аргументами. Их использование зависит от вашего конкретного случая. Ниже вы увидите некоторые из наиболее важных опций:

Как запустить fsck для исправления ошибок файловой системы Linux

Чтобы запустить fsck, вам нужно убедиться, что раздел, который вы собираетесь проверить, не смонтирован. Для этой статьи я буду использовать мой второй диск /dev/sdb, смонтированный в /mnt.

Вот что произойдет, если я попытаюсь запустить fsck на смонтированном разделе.

Run fsck on Mounted Partition

Чтобы избежать этого, размонтируйте раздел с помощью команды:

Теперь fsck можно запустить безопасно.

Run fsck on Linux Partition

Понимание кодов выхода fsck

После запуска fsck она вернет код выхода. Эти коды можно увидеть в руководстве fsck, выполнив:

Исправление ошибок файловой системы Linux

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

Точно так же вы можете запустить команду на всех файловых системах (без корневой):

Как запустить fsck в корневом разделе Linux

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

1. Принудительно использовать fsck при загрузке системы
2. Запустить fsck в режиме восстановления

Мы рассмотрим обе ситуации.

Принудительная проверка корневой файловой системы с помощью fsck при загрузке системы

Это относительно легко выполнить, единственное, что вам нужно сделать, это создать файл с именем forcefsck в корневом разделе вашей системы. Используйте следующую команду:

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

После загрузки системы проверьте, существует ли этот файл:

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

Запуск fsck в режиме восстановления

Запуск fsck в режиме восстановления требует еще нескольких шагов. Сначала подготовьте систему к перезагрузке. Остановите все важные службы, такие как MySQL/MariaDB и т. д., а затем перезагрузите компьютер.

Во время загрузки удерживайте нажатой клавишу Shift, чтобы отобразилось меню grub. Выберите «Advanced options».

Grub Advance Options

Затем выберите «Recovery mode».

Select Linux Recovery Mode

В следующем меню выберите «fsck».

Select fsck Utility

Вас спросят, хотите ли вы перемонтировать вашу корневую файловую систему. Выберите «yes».

Confirm Root Filesystem

Вы должны увидеть что-то похожее на это.

Running fsck Filesystem Check

Затем вы можете вернуться к нормальной загрузке, выбрав «Resume».

Select Normal Boot

Заключение

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

Источник

Не определяется флешка в ubuntu linux

Здравствуйте, не определяется флешка transed 16gb в ubuntu linux вывод команды lsusb

Что-то у меня спойлеры не отобразились((

99092: 1865349695

61391: 1378818601

В windows 7 флешка определяется и сразу пропадает

У transcend есть специальный «лечащий» софт, попробуй, может повезёт.

И используй теги code, твою кашу читать невозможно.

67566:1657244457

В конце июля 2011 года добавлен парный тег

для создания спойлера в новостях с целью сокращения занимаемого ими места на главной странице.

Спойлеры только в новостях работают вроде.

120309:1694971822

Спойлеры только в новостях работают вроде.

И спойлерами, как таковыми, не являются.

Я вроде поправил теперь можно понять, что написанно Вот что пишет, при попытке создать раздел Ошибка ввода/вывода во время чтения на /dev/sdb

В смысле в GParted пишет

На счёт тега code спасибо, сам что-то не сообразил. А не может дать ссылку на этот софт, а то беглый поиск выдаёт всякую ерунду.

61391: 1378818601

На «родном» сайте несколько версий: onlinerecovery

Их я пробовал, не видно флешку и это понятно, так как она то подключается, то отключается.

61391: 1378818601

Закоротить ножки контроллера пробовалось?

61391: 1378818601

По первой из приведённых мною ссылок сходить не судьба.

29901:1861693785

Зверек скорее мертв… Тем более что его поведение аналогично во всех ОСях. По простому выброси и забудь. Если охота поиздеваться то сперва попробуй софт для восстановления от самого трансценда… Когда совсем уже нечего будет терять попробуй китайские проги «для восстановления» иногда они даже помогают но как правило все равно не на долго. Так что проще просто и выбросить и купить новую.

я что то сначала не заметил ссылку, спасибо за совет, завтра попробую это проделать, потом отпишусь по результатам

Источник

В первый раз столкнулся с такой проблемой: не удаляются папки с скрытыми (нечитаемыми символами в имени) файлами. Испробованы разные методы и прерыт весь интернет безрезультатно. inode папок известен но не нашёл инструмента который их может «зачистить» нащёл только для файлов (но имя файлов не читаемое) файлы определяются но их inode нет. На диске 1.3 Tb информации поэтому копировать/форматировать/копировать не предлагать, тем более интересно найти решение. В сети на аналогичные проблемы вменяемого ответа не нашёл. Как эти файлы там оказались тоже не расскажу очень мана долго выйдет. Последнее что пробовалось (от отчаяния) это BleachBit под root «удаление каталогов (безвозвратно)», не удаляет и выводит errors при этом меняет имя дирректории оставляя эти скрытые файлы там. Думаю если кто знает как по inode затереть непосредственно на диске этот каталог то это и будет решение. fsck.ext4 не предлогать — не помогает.

# fsck.ext4 -f /dev/sde1
e2fsck 1.42.5 (29-Jul-2012)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
ext4b1800: 2737/122101760 files (0.7% non-contiguous), 344721312/488378368 blocks

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



Иногда помогал live cd, причем не дебиан, и не бликоподобные ему.  Заходил «из вне» и удалял.

Не даст поколебаться Он ноге твоей, и не воздремлет хранящий тебя…


Цитата: oermolaev от 08 декабря 2015, 19:29:40переименовать пробовали?

Файлы видны только из консоли и не переименовываются, при любой попытке связанной с их записью/перезаписью выходит «Ошибка ввода/вывода». Папки — директории в которых они находятся переименовываются но толку от этого никакого.

Цитата: vovan—vovan от 08 декабря 2015, 20:51:42Иногда помогал live cd

Пробовал, с тем-же результатом, попробую ещё PartedMagic может там что есть интересное. Уже пробовал Slax.
Предполагаю что мог бы помочь какойто «Hex» редактор в котором можно по inode на диске что надо занулить. Подобный редактор есть в R-Studio но в LiveCD опция редактирования у меня почемуто не активна, может по лицензионным соображениям. 


Cообщение объединено 09 декабря 2015, 09:00:00


Цитата: Aalexeey от 09 декабря 2015, 08:19:52редактор есть в R-Studio но в LiveCD опция редактирования у меня почемуто не активна

Скачал

Demo версию там есть RStudio3_i386.deb и RStudio3_x64.deb

(не надо, полная версия ниже), оказалось запись нужно/можно разрешить в настройках, после сканирования не полного я его прервал, выбрал нужные папки — дирректорию, забил их нулями и сохранил. После этого папки оказались пустыми и удалились.
Вот такая б… «египетская сила». Если кто сталкивался с аналогичным GUI/полуGUI свободно — бесплатным редактором под Linux работающим с ext4 отпишитесь.
Есть ещё R-Linux как пишут на сайте «Бесплатная полнофункциональная утилита для восстановления данных на файловых системах Ext2/Ext3/Ext4, используемых в Linux» пакеты rli_en_5_i386.deb и rli_en_5_amd64.deb, вроде как то-же самое насколько полнофункциональное не проверял ещё, русский язык есть.


Cообщение объединено 09 декабря 2015, 09:48:05


После всех манипуляций и перезагрузки (fsck видимо заметило что папки безследно исчезли) пришлось сделать это:

# fsck.ext4 -f /dev/sde1
e2fsck 1.42.5 (29-Jul-2012)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Missing '..' in directory inode 524304.
Fix<y>? yes
Setting filetype for entry '..' in ... (524304) to 2.
Missing '..' in directory inode 524305.
Fix<y>? yes
Setting filetype for entry '..' in ... (524305) to 2.
Missing '..' in directory inode 524311.
Fix<y>? yes
Setting filetype for entry '..' in ... (524311) to 2.
Missing '..' in directory inode 524319.
Fix<y>? yes
Setting filetype for entry '..' in ... (524319) to 2.
Pass 3: Checking directory connectivity
Unconnected directory inode 524304 (/???)
Connect to /lost+found<y>? yes
Unconnected directory inode 524305 (/???)
Connect to /lost+found<y>? yes
Unconnected directory inode 524311 (/???)
Connect to /lost+found<y>? yes
Unconnected directory inode 524319 (/???)
Connect to /lost+found<y>? yes
Pass 4: Checking reference counts
Inode 2 ref count is 2, should be 6.  Fix<y>? yes
Inode 524304 ref count is 3, should be 2.  Fix<y>? yes
Inode 524305 ref count is 3, should be 2.  Fix<y>? yes
Inode 524311 ref count is 3, should be 2.  Fix<y>? yes
Inode 524319 ref count is 3, should be 2.  Fix<y>? yes
Pass 5: Checking group summary information

ext4b1800: ***** FILE SYSTEM WAS MODIFIED *****
ext4b1800: 2736/122101760 files (0.7% non-contiguous), 344721311/488378368 blocks
#


Папки с файлами пока ;D не появились. Я так думаю увивило оно их отсутствие из журнала но т.к. они физически затёрты нулями то и востанавливать нечего и упоминание о них было удалено/исправленно!


Aalexeey, вывод? Всё таки помогло fsck?


Цитата: oermolaev от 09 декабря 2015, 10:15:23Всё таки помогло fsck?

Нет никак не помогло, оно видило ошибки но никак не могло их исправить. В последнем случае оно просто заметило отсутствие занулённых мной папок и файлов, сделало что сделало но уже было поздно  ::). Просто согласилось «ооо нам и без этих папок хорошо»  :P.


А почему никто (или мало кто), как я вижу, xfs не использует? Я один такой умный? ;D Лет десять, однако, полёт нормальный, на нескольких машинах, бывало всякое насчёт аварийных отключений/перезагрузок — и хоть бы раз хоть бы что ;D Для дома как минимум самое то, ни забот ни хлопот.


Цитата: yoric от 09 декабря 2015, 11:57:17почему никто (или мало кто), как я вижу, xfs не использует?

Незнаю как у других но у меня причинами были: невозможность уменишить раздел при необходимости (такие необходимости у меня периодически возникали), отсутствие вменяемой софтины под винду для доступа к xfs (под ext4 это прекрасная Ext2Fsd), фрагментация и необходимость хоть и не часто её устранять (но GUI то нет).


Цитата: yoric от 09 декабря 2015, 11:57:17
А почему никто (или мало кто), как я вижу, xfs не использует? Я один такой умный? ;D Лет десять, однако, полёт нормальный, на нескольких машинах, бывало всякое насчёт аварийных отключений/перезагрузок — и хоть бы раз хоть бы что ;D Для дома как минимум самое то, ни забот ни хлопот.

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

Цитата: Aalexeey от 09 декабря 2015, 12:05:03фрагментация

дефрагментация




Подумаешь, три буквы набрать. Это не raid или LVM настроить.

А вообще я лично удивлён, и не думал про фрагментацию на XFS, по аналогии с EXT, как раньше писали. Сейчас посмотрю ради интереса, домашней у меня лет 6, а на работе лет 10 уже как стоит и про дефрагментацию знать не знает ;D

Которой 10 лет, на /boot около 15%, на всех других менее 5%. Дома один раздел, 6 лет, фрагментация 5%. Не так страшен чёрт, как его малюют ;D


Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

В прошлый раз, в третьей части этой серии материалов по bash-скриптам, мы говорили о параметрах командной строки и ключах. Наша сегодняшняя тема — ввод, вывод, и всё, что с этим связано.

image

Вы уже знакомы с двумя методами работы с тем, что выводят сценарии командной строки:

  • Отображение выводимых данных на экране.
  • Перенаправление вывода в файл.

Иногда что-то надо показать на экране, а что-то — записать в файл, поэтому нужно разобраться с тем, как в Linux обрабатывается ввод и вывод, а значит — научиться отправлять результаты работы сценариев туда, куда нужно. Начнём с разговора о стандартных дескрипторах файлов.

Стандартные дескрипторы файлов

Всё в Linux — это файлы, в том числе — ввод и вывод. Операционная система идентифицирует файлы с использованием дескрипторов.

Каждому процессу позволено иметь до девяти открытых дескрипторов файлов. Оболочка bash резервирует первые три дескриптора с идентификаторами 0, 1 и 2. Вот что они означают.

  • 0, STDIN — стандартный поток ввода.
  • 1, STDOUT — стандартный поток вывода.
  • 2, STDERR — стандартный поток ошибок.

Эти три специальных дескриптора обрабатывают ввод и вывод данных в сценарии.
Вам нужно как следует разобраться в стандартных потоках. Их можно сравнить с фундаментом, на котором строится взаимодействие скриптов с внешним миром. Рассмотрим подробности о них.

STDIN

STDIN — это стандартный поток ввода оболочки. Для терминала стандартный ввод — это клавиатура. Когда в сценариях используют символ перенаправления ввода — <, Linux заменяет дескриптор файла стандартного ввода на тот, который указан в команде. Система читает файл и обрабатывает данные так, будто они введены с клавиатуры.

Многие команды bash принимают ввод из STDIN, если в командной строке не указан файл, из которого надо брать данные. Например, это справедливо для команды cat.

Когда вы вводите команду cat в командной строке, не задавая параметров, она принимает ввод из STDIN. После того, как вы вводите очередную строку, cat просто выводит её на экран.

STDOUT

STDOUT — стандартный поток вывода оболочки. По умолчанию это — экран. Большинство bash-команд выводят данные в STDOUT, что приводит к их появлению в консоли. Данные можно перенаправить в файл, присоединяя их к его содержимому, для этого служит команда >>.

Итак, у нас есть некий файл с данными, к которому мы можем добавить другие данные с помощью этой команды:

pwd >> myfile

То, что выведет pwd, будет добавлено к файлу myfile, при этом уже имеющиеся в нём данные никуда не денутся.

Перенаправление вывода команды в файл

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

ls –l xfile > myfile

После выполнения этой команды мы увидим сообщения об ошибках на экране.

Попытка обращения к несуществующему файлу

При попытке обращения к несуществующему файлу генерируется ошибка, но оболочка не перенаправила сообщения об ошибках в файл, выведя их на экран. Но мы-то хотели, чтобы сообщения об ошибках попали в файл. Что делать? Ответ прост — воспользоваться третьим стандартным дескриптором.

STDERR

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

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

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

Как вы уже знаете, дескриптор файла STDERR — 2. Мы можем перенаправить ошибки, разместив этот дескриптор перед командой перенаправления:

ls -l xfile 2>myfile
cat ./myfile

Сообщение об ошибке теперь попадёт в файл myfile.

Перенаправление сообщения об ошибке в файл

▍Перенаправление потоков ошибок и вывода

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

ls –l myfile xfile anotherfile 2> errorcontent 1> correctcontent

Перенаправление ошибок и стандартного вывода

Оболочка перенаправит то, что команда ls обычно отправляет в STDOUT, в файл correctcontent благодаря конструкции 1>. Сообщения об ошибках, которые попали бы в STDERR, оказываются в файле errorcontent из-за команды перенаправления 2>.

Если надо, и STDERR, и STDOUT можно перенаправить в один и тот же файл, воспользовавшись командой &>:

Перенаправление STDERR и STDOUT в один и тот же файл

После выполнения команды то, что предназначено для STDERR и STDOUT, оказывается в файле content.

Перенаправление вывода в скриптах

Существует два метода перенаправления вывода в сценариях командной строки:

  • Временное перенаправление, или перенаправление вывода одной строки.
  • Постоянное перенаправление, или перенаправление всего вывода в скрипте либо в какой-то его части.

▍Временное перенаправление вывода

В скрипте можно перенаправить вывод отдельной строки в STDERR. Для того, чтобы это сделать, достаточно использовать команду перенаправления, указав дескриптор STDERR, при этом перед номером дескриптора надо поставить символ амперсанда (&):

#!/bin/bash
echo "This is an error" >&2
echo "This is normal output"

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

Временное перенаправление

Запустим скрипт так, чтобы вывод STDERR попадал в файл.

./myscript 2> myfile

Как видно, теперь обычный вывод делается в консоль, а сообщения об ошибках попадают в файл.

Сообщения об ошибках записываются в файл

▍Постоянное перенаправление вывода

Если в скрипте нужно перенаправлять много выводимых на экран данных, добавлять соответствующую команду к каждому вызову echo неудобно. Вместо этого можно задать перенаправление вывода в определённый дескриптор на время выполнения скрипта, воспользовавшись командой exec:

#!/bin/bash
exec 1>outfile
echo "This is a test of redirecting all output"
echo "from a shell script to another file."
echo "without having to redirect every line"

Запустим скрипт.

Перенаправление всего вывода в файл

Если просмотреть файл, указанный в команде перенаправления вывода, окажется, что всё, что выводилось командами echo, попало в этот файл.

Команду exec можно использовать не только в начале скрипта, но и в других местах:

#!/bin/bash
exec 2>myerror
echo "This is the start of the script"
echo "now redirecting all output to another location"
exec 1>myfile
echo "This should go to the myfile file"
echo "and this should go to the myerror file" >&2

Вот что получится после запуска скрипта и просмотра файлов, в которые мы перенаправляли вывод.

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

Сначала команда exec задаёт перенаправление вывода из STDERR в файл myerror. Затем вывод нескольких команд echo отправляется в STDOUT и выводится на экран. После этого команда exec задаёт отправку того, что попадает в STDOUT, в файл myfile, и, наконец, мы пользуемся командой перенаправления в STDERR в команде echo, что приводит к записи соответствующей строки в файл myerror.

Освоив это, вы сможете перенаправлять вывод туда, куда нужно. Теперь поговорим о перенаправлении ввода.

Перенаправление ввода в скриптах

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

exec 0< myfile

Эта команда указывает оболочке на то, что источником вводимых данных должен стать файл myfile, а не обычный STDIN. Посмотрим на перенаправление ввода в действии:

#!/bin/bash
exec 0< testfile
count=1
while read line
do
echo "Line #$count: $line"
count=$(( $count + 1 ))
done

Вот что появится на экране после запуска скрипта.

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

В одном из предыдущих материалов вы узнали о том, как использовать команду read для чтения данных, вводимых пользователем с клавиатуры. Если перенаправить ввод, сделав источником данных файл, то команда read, при попытке прочитать данные из STDIN, будет читать их из файла, а не с клавиатуры.

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

Создание собственного перенаправления вывода

Перенаправляя ввод и вывод в сценариях, вы не ограничены тремя стандартными дескрипторами файлов. Как уже говорилось, можно иметь до девяти открытых дескрипторов. Остальные шесть, с номерами от 3 до 8, можно использовать для перенаправления ввода или вывода. Любой из них можно назначить файлу и использовать в коде скрипта.

Назначить дескриптор для вывода данных можно, используя команду exec:

#!/bin/bash
exec 3>myfile
echo "This should display on the screen"
echo "and this should be stored in the file" >&3
echo "And this should be back on the screen"

После запуска скрипта часть вывода попадёт на экран, часть — в файл с дескриптором 3.

Перенаправление вывода, используя собственный дескриптор

Создание дескрипторов файлов для ввода данных

Перенаправить ввод в скрипте можно точно так же, как и вывод. Сохраните STDIN в другом дескрипторе, прежде чем перенаправлять ввод данных.

После окончания чтения файла можно восстановить STDIN и пользоваться им как обычно:

#!/bin/bash
exec 6<&0
exec 0< myfile
count=1
while read line
do
echo "Line #$count: $line"
count=$(( $count + 1 ))
done
exec 0<&6
read -p "Are you done now? " answer
case $answer in
y) echo "Goodbye";;
n) echo "Sorry, this is the end.";;
esac

Испытаем сценарий.

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

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

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

Закрытие дескрипторов файлов

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

#!/bin/bash
exec 3> myfile
echo "This is a test line of data" >&3
exec 3>&-
echo "This won't work" >&3

После исполнения скрипта мы получим сообщение об ошибке.

Попытка обращения к закрытому дескриптору файла

Всё дело в том, что мы попытались обратиться к несуществующему дескриптору.

Будьте внимательны, закрывая дескрипторы файлов в сценариях. Если вы отправляли данные в файл, потом закрыли дескриптор, потом — открыли снова, оболочка заменит существующий файл новым. То есть всё то, что было записано в этот файл ранее, будет утеряно.

Получение сведений об открытых дескрипторах

Для того, чтобы получить список всех открытых в Linux дескрипторов, можно воспользоваться командой lsof. Во многих дистрибутивах, вроде Fedora, утилита lsof находится в /usr/sbin. Эта команда весьма полезна, так как она выводит сведения о каждом дескрипторе, открытом в системе. Сюда входит и то, что открыли процессы, выполняемые в фоне, и то, что открыто пользователями, вошедшими в систему.

У этой команды есть множество ключей, рассмотрим самые важные.

  • -p Позволяет указать ID процесса.
  • -d Позволяет указать номер дескриптора, о котором надо получить сведения.

Для того, чтобы узнать PID текущего процесса, можно использовать специальную переменную окружения $$, в которую оболочка записывает текущий PID.

Ключ -a используется для выполнения операции логического И над результатами, возвращёнными благодаря использованию двух других ключей:

lsof -a -p $$ -d 0,1,2

Вывод сведений об открытых дескрипторах

Тип файлов, связанных с STDIN, STDOUT и STDERR — CHR (character mode, символьный режим). Так как все они указывают на терминал, имя файла соответствует имени устройства, назначенного терминалу. Все три стандартных файла доступны и для чтения, и для записи.

Посмотрим на вызов команды lsof из скрипта, в котором открыты, в дополнение к стандартным, другие дескрипторы:

#!/bin/bash
exec 3> myfile1
exec 6> myfile2
exec 7< myfile3
lsof -a -p $$ -d 0,1,2,3,6,7

Вот что получится, если этот скрипт запустить.

Просмотр дескрипторов файлов, открытых скриптом

Скрипт открыл два дескриптора для вывода (3 и 6) и один — для ввода (7). Тут же показаны и пути к файлам, использованных для настройки дескрипторов.

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

Иногда надо сделать так, чтобы команды в скрипте, который, например, может исполняться как фоновый процесс, ничего не выводили на экран. Для этого можно перенаправить вывод в /dev/null. Это — что-то вроде «чёрной дыры».

Вот, например, как подавить вывод сообщений об ошибках:

ls -al badfile anotherfile 2> /dev/null

Тот же подход используется, если, например, надо очистить файл, не удаляя его:

cat /dev/null > myfile

Итоги

Сегодня вы узнали о том, как в сценариях командной строки работают ввод и вывод. Теперь вы умеете обращаться с дескрипторами файлов, создавать, просматривать и закрывать их, знаете о перенаправлении потоков ввода, вывода и ошибок. Всё это очень важно в деле разработки bash-скриптов.

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

Уважаемые читатели! В этом материале даны основы работы с потоками ввода, вывода и ошибок. Уверены, среди вас есть профессионалы, которые могут рассказать обо всём этом то, что приходит лишь с опытом. Если так — передаём слово вам.

Понравилась статья? Поделить с друзьями:
  • Ошибка ввода вывода 0х000009с
  • Ошибка ввода warframe
  • Ошибка ваши часы спешат как устранить проблему
  • Ошибка ваши часы отстают что делать яндекс браузер
  • Ошибка ваше устройство заблокировано standoff 2 читы