Ошибка не найдено потоков для вывода

Нужно объединить видео и аудио файлы без потери качества.

Как это нормально сделать?

ffmpeg -i video -i audio -sameq -acodec copy -f <format> output — создаёт с дефолтным видео битрейтом 200 kb/s размером в 3-4 раза больше чем исходный video файл.

Как ему указать делать битрейт и остальные настройки качества (tbr, tbn, tbc, частоту дискретизации, битрейт, sample rate и всё остальное) как в исходном файле?
Разве нельзя никак сделать просто копирование дорожек без перекодирования?

ffmpeg -i video -i audio -sameq -vcodec copy -acodec copy -f <format> output — создаёт файл размером файла audio.

_________________________________________________________________________________________

Разница в выводах ffmeg:

Stream #0.0(und): Video: mpeg4, yuv420p, 1920×1080 [PAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 1k tbn, 29.97 tbc — без -vcodec copy

Stream #0.0(und): Video: libx264, yuv420p, 1920×1080 [PAR 1:1 DAR 16:9], q=2-31, 1k tbn, 29.97 tbc — с -vcodec copy

________________________________________________________________________________________

Исходник:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ‘Counter Strike Source Gameplay HD 1080p — Dust 2 ⚫ -kkEj4rI2t8’:
Metadata:
major_brand : dash
minor_version : 0
compatible_brands: iso6avc1mp41
Duration: 00:04:28.27, start: 134.168367, bitrate: 2017 kb/s
Stream #0.0(und): Video: h264, yuv420p, 1920×1080 [PAR 1:1 DAR 16:9], 29.97 tbr, 90k tbn, 59.94 tbc
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from ‘-kkEj4rI2t8 ⚫ audio’:
Metadata:
major_brand : dash
minor_version : 0
compatible_brands: iso6mp41
Duration: 00:04:28.56, start: 134.280998, bitrate: 63 kb/s
Stream #1.0(und): Audio: aac, 44100 Hz, stereo, s16

________________________________________________________________________________________

Что использовать в -f <format>? matroska? mp4? mpeg? или что-то другое?

P.S. СКРИПТ на удобное скачивание с утупа

На этой странице

在中国购买的 Creative Cloud 产品不含 CC 桌面应用程序中的 Creative Cloud 移动应用程序和在线服务及相关功能。

Информация в этом документе предназначена для решения проблем, которые возникают в Adobe Premiere Pro при попытке импортировать видеофайлы или при необходимости воспроизведения импортированных видеофайлов. (К видеофайлам относятся файлы AVI, Apple QuickTime [MOV], MPEG и т. д.)

Основные проблемы воспроизведения

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

Серьезные проблемы воспроизведения

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

Зависание, закрытие и ошибки

Если Adobe Premiere Pro при попытке импортировать видеофайл или воспроизвести уже импортированный файл зависает, закрывается или выводит на экран сообщение об ошибке, например «Неподдерживаемая скорость передачи аудио в файле» или «Формат не поддерживается или файл поврежден», перейдите к разделу Устранение проблем, связанных с форматами файлов и кодеками.

Отдельные видеофайлы

При работе с файлами MPEG-2, VOB, MOD или TOD, видеофайлами, записанными с помощью цифрового фотоаппарата, видеофайлами, снятыми на компактную видеокамеру без пленки, роликами из Apple Final Cut Pro или купленными в интернет-магазине видеофайлами см. раздел Заметки об особых видах видеофайлов.

Устранение неполадок при настройке последовательностей и распознавании файлов

Выполните следующие действия в указанном порядке. После завершения каждого решения протестируйте воспроизведение всех импортированных видеофайлов в Adobe Premiere Pro. Если импортированные файлы по-прежнему воспроизводятся неправильно, перейдите в раздел Устранение проблем, связанных с форматами файлов и кодеками.

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

Несоответствие между импортированным файлам и параметрами используемой последовательности в Adobe Premiere Pro может вызывать проблемы при воспроизведении. Например, широкоформатные видеоролики могут выглядеть сжатыми, если использовать их в последовательности, не предназначенной для широкоформатных файлов. А файлы высокой четкости могут выглядеть размытыми при их использовании в последовательности для стандартного формата.

Знание основной информации об импортированном файле поможет выбрать подходящие параметры последовательности. Щелкните правой кнопкой мыши файл на панели «Проект» и выберите «Свойства». В окне «Свойства» отображается размер кадра (параметр «Размер изображения»), частота смены кадров и соотношение сторон в пикселях.

Для создания последовательности и выбора ее параметров выполните одно из следующих действий:

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

Для получения дополнительной информации о настройках последовательности см. раздел Создание и изменение последовательностей.

Решение 2. Создайте миниатюры для предварительного просмотра клипов на временной шкале.

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

Чтобы создать миниатюры клипов в рабочей области на временной шкале, выполните одно из следующих действий:

  • Нажмите Enter.
  • Выберите «Последовательность» > «Изображение рабочей области».

Дополнительные сведения о создании миниатюр для предварительного просмотра приведены в разделе Рендеринг и предварительный просмотр последовательностей.

Решение 3. Настройте масштаб, частоту смены кадров, соотношение сторон в пикселях или параметры полей.

По необходимости используйте эти дополнительные способы, чтобы исправить проблемы при воспроизведении, которые не удалось устранить с помощью Решений 1 и 2:

  • Если импортируемый видеофайл не помещается в кадр или выглядит увеличенным в масштабе, выберите клип на временной шкале. Выберите «Клип» > «Параметры видео» > «Масштабировать по размеру кадра».
  • Если импортируемый видеофайл выглядит непомерно сжатым или растянутым, возможно, в Adobe Premiere Pro неправильно распознается соотношение сторон в пикселях. Назначить правильное соотношение сторон в пикселях можно, используя команду «Интерпретировать видеоряд». Инструкции приведены в разделе Работа с соотношением сторон.
  • Если импортированный видеофайл воспроизводится слишком быстро или слишком медленно, возможно, в Adobe Premiere Pro неправильно распознается его частота смены кадров. Эта проблема также проявляется как подергивание воспроизведения после создания миниатюр для предварительного просмотра. Назначить правильную частоту смены кадров можно, используя команду «Интерпретировать видеоряд». Инструкции приведены в разделе Изменение частоты смены кадров в клипе.

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

  • Если при проигрывании импортированного чересстрочного видеоролика на движущихся объектах отображаются зубчатые края или тонкие горизонтальные линии, возможно, в Adobe Premiere Pro неправильно распознается порядок полей файла. Неправильный порядок полей может также вызвать мерцание при проигрывании клипа. Назначить правильный порядок полей можно, используя команду «Интерпретировать видеоряд». Инструкции приведены в разделе Изменение порядка полей в клипе. Дополнительные инструменты для устранения проблем с порядком полей доступны в диалоговом окне «Параметры полей». Инструкции по использованию диалогового окна «Параметры полей» приведены в разделе Создание чересстрочных и построчных видеоклипов.
  • Устранение проблем, связанных с форматами файлов и кодеками

    В устройствах для записи видео и приложениях для работы с видеороликами файлы кодируются в особом файловом формате, например AVI, QuickTime (MOV) и Windows Media (WMV). Список файловых форматов, которые поддерживаются в Adobe Premiere Pro, приведен в разделе Поддерживаемые форматы файлов.

    Примечание. Не все форматы доступны на платформах Mac OS и Windows. См. соответствующие ссылки на разделы Справки, приведенные выше, чтобы получить более подробные сведения о том, какие платформы поддерживаются для каждого формата.

    Некоторые форматы видеофайлов — в том числе AVI и MOV — представляют собой файлы-контейнеры. Данные внутри файлов-контейнеров кодируются по указанному кодеку. Кодеки — это алгоритмы сжатия аудио- и видеоданных. Существует множество различных кодеков.

    Например, файл AVI можно кодировать с использованием следующих видов кодеков среди прочих:

    • Кодек DV (этот кодек используется в видеокамерах, записывающих ролики на пленку miniDV)
    • Коммерческие кодеки (например, DivX)
    • Кодек Motion JPEG (этот кодек используется в некоторых фотоаппаратах, в которых предусмотрена запись видео)

    Иногда Adobe Premiere Pro не может декодировать видеофайлы, для кодирования которых использовался низкокачественный кодек или кодек, который не установлен на компьютере.

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

    • Откройте файл в проигрывателе Apple QuickTime Player и выберите «Окно» > «Показать инспектор фильмов».
    • Если файл получен с видеокамеры, фотоаппарата или другого устройства видеозаписи, см. документацию к устройству или обратитесь к спецификациям устройства на веб-сайте производителя.
    • Откройте файл в стороннем приложении для анализа файлов мультимедиа, например, MediaInfo или GSpot 2.70

    Решение 4. Установите необходимый кодек.

    Некоторые видеофайлы кодируются с кодеками (DivX, Xvid, 3ivx и т. д.), не устанавливаемыми по умолчанию вместе с Windows или Apple Quicktime. Вы можете загрузить и установить на компьютер дополнительные кодеки. Например, для воспроизведения файлов AVI с кодировкой DivX можно загрузить и установить кодек DivX.

    После установки необходимого кодека обычно становится возможно использовать такие медиа-проигрыватели, как Windows Media Player, для воспроизведения файлов, созданных при помощи данного кодека. Скорее всего, при его установке также обеспечивается отсутствие проблем воспроизведения таких файлов в Adobe Premiere Pro.

    Однако программа установки кодека не всегда позволяет устранить проблемы в Adobe Premiere Pro, которые происходят при попытке импортировать или воспроизвести файлы, которые были созданы при помощи данного кодека. Технические требования к редактированию видеозаписей более строги, чем требования к их воспроизведению. В некоторых случаях требуется перекодирование проблемных файлов. (См. Решение 6.)

    Кодеки можно загрузить с веб-сайтов сторонних разработчиков.

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

    Решение 5. Удалить один или несколько из установленных кодеков (Windows).

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

    Чтобы устранить конфликты кодеков, отключите или удалите кодеки от сторонних разработчиков.

    Чтобы выборочно удалить кодеки от сторонних разработчиков (пакеты кодеков), используйте вкладку «Установка и удаление программ» (Windows XP) или «Программы и компоненты» на панели управления (Windows Vista).

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

    Решение 6. Перекодируйте проблемные видеофайлы.

    Используйте другое программное обеспечение, чтобы перекодировать (преобразовать), видеофайлы, вызывающие проблемы при попытке импорта или воспроизведения их в Adobe Premiere Pro. Затем импортируйте перекодированные файлы.

    Можно перекодировать файлы в рамках одного формата (например, перекодировать файл в формате AVI с кодировкой 3ivx в файл AVI с кодировкой DV). Или можно использовать другой формат (например, перекодировать файл MPEG-2 в AVI).

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

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

    Отказ от ответственности: Adobe не поддерживает стороннее программное обеспечение и предоставляет эту информацию исключительно в качестве совета. Для получения помощи при использовании стороннего программного обеспечения свяжитесь с его разработчиком или обратитесь к документации для данного программного обеспечения.

    • Файлы AVI: VirtualDub; Microsoft Windows Movie Maker.
    • Файлы QuickTime (MOV) и MPEG-4: Apple QuickTime Player для Windows с QuickTime Pro.
    • Файлы MPEG-2 и VOB: MPEG Streamclip; Apple QuickTime Player для Windows с QuickTime Pro и MPEG-2 Playback Component.

    Дополнительные сведения о методах перекодирования видеофайлов приведены на форумах пользователей Adobe или в разделе VideoHelp.

    Заметки об особых видах видеофайлов

    Файлы MPEG-2

    Файлы MPEG-2 в высокой степени сжаты. Чтобы улучшить плавность воспроизведения клипов MPEG-2 на временной шкале, создайте для них миниатюры для предварительного просмотра (см. Решение 2).

    Поскольку файлы MPEG-2 можно кодировать с самыми разнообразными настройками, не все импортированные файлы MPEG-2 могут без проблем проигрываться в Adobe Premiere Pro CS4. Перекодируйте проблемные файлы MPEG-2 (см. Решение 6), а затем импортируйте их.

    VOB-файлы

    Файлы VOB (video object), которые используются на DVD-дисках, представляют собой разновидность файлов MPEG-2. Adobe Premiere Pro CS4 (со всеми примененными обновлениями, выберите «Справка» > «Обновления») и Adobe Premiere Pro CS5 и более поздние версии поддерживают импорт DVD-совместимых VOB-файлов. Если возникают проблемы с импортом оригинального файла VOB, возможно, были проблемы при его создании. (Например, могли возникнуть неполадки в программе для копирования DVD-дисков.) Может потребоваться перекодировать проблемные файлы VOB (см. Решение 6), а затем импортировать их.

    Файлы MOD и TOD

    В некоторых цифровых видеокамерах (в том числе некоторые модели Canon, JVC Everio и Panasonic) предусмотрена запись видео стандартного разрешения в формате MOD или видео высокого разрешения в формате TOD. Файлы MOD и TOD являются разновидностями MPEG-2.

    Adobe Premiere Pro CS4 по умолчанию не поддерживает файлы MOD или TOD. Перекодируйте эти файлы с помощью программного обеспечения, поставляемого с видеокамерой (при его наличии) или с помощью другого программного обеспечения (см. Решение 6). Затем импортируйте перекодированные файлы.

    Видеоролики, записанные на фотоаппарат

    Во многих цифровых фотоаппаратах предусмотрен режим записи видеороликов (обычно в формате AVI или QuickTime). Однако такие видеоролики, как правило, не выигрывают в сравнении с видеороликами, записываемыми на видеокамеры. Во многих фотоаппаратах используются особые кодеки для сжатия видео, которые не соответствуют стандартам профессионального видеомонтажа.

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

    Если вы не можете импортировать или воспроизвести файлы с фотоаппарата, возможно, потребуется установить кодек (см. Решение 4). В большинстве цифровых фотоаппаратов видеофайлы кодируются с использованием кодека Motion JPEG (MJPEG). Кодеки Motion JPEG (MJPEG) предоставляются несколькими разработчиками.

    Примечание. В кодеке Motion JPEG применяется сжатие относительно низкого уровня. Таким образом, при работе с большими видеофайлами Motion JPEG в Adobe Premiere Pro могут наблюдаться проблемы с производительностью или появляться сообщения об ошибке о недостаточном количестве памяти. Чтобы устранить эти проблемы, перекодируйте файлы Motion JPEG (см. Решение 6).

    Если вы не можете импортировать или воспроизвести файлы с фотоаппарата, в котором не используется особый кодек для видео, возможно, перекодируйте файлы (см. Решение 6). Импортируйте перекодированные файлы.

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

    Компактные цифровые видеокамеры — например, модели Aiptek, Flip Video, Sanyo Xacti и Kodak Zi6 — записывают видео в разнообразных форматах. Некоторые из них также используют различные кодеки для кодирования видео.

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

    Если вы не можете импортировать или воспроизвести файлы с компактной цифровой видеокамеры, возможно, потребуется установить кодек (см. Решение 4). Например, некоторые видеокамеры Flip Video кодируют видеоролики с использованием кодека 3ivx. Если в видеокамере не используется специальный кодек, перекодируйте файлы с помощью программного обеспечения, которое было включено в пакет с видеокамерой (если таковое имеется). Или используйте другое программное обеспечение (см. Решение 6), чтобы перекодировать видеозапись. Затем импортируйте перекодированные файлы.

    Если вам удается импортировать файлы из компактной цифровой видеокамеры, работайте в последовательности с подходящим размером кадра, частотой смены кадров и параметрами поля. (См. Решение 1.) Если вы используете файлы из цифровой видеокамеры, в которой записывается видео повышенной четкости (720p), работайте в прогрессивной последовательности (без полей). Если вы используете файлы из цифровой видеокамеры, записывающих видео чересстрочной развертки, в файлах может быть настроен порядок полей, при котором сначала обрабатываются верхние поля.

    Видеофайлы из Apple Final Cut Pro

    В результате некоторых процессов Final Cut Pro создаются кодированные файлы QuickTime с кодеком Apple Intermediate Codec (AIC), который недоступен для Windows. Поэтому в Adobe Premiere Pro CS4 для Windows невозможно обрабатывать файлы AIC-кодированные файлы QuickTime.

    Чтобы устранить эту проблему, используйте Final Cut Pro, чтобы перекодировать файлы с кодировкой AIC в файлы с кодировкой QuickTime. Этот кодек доступен как для Mac OS, так и для Windows.

    Видеофайлы из интернет-магазинов

    Видеофайлы, приобретенные в интернет-магазинах, например в iTunes Music Store, обычно защищены от копирования с помощью технических средств защиты авторских прав (DRM). Их нельзя использовать в Adobe Premiere Pro.

    Справки по другим продуктам

    На посты, размещаемые в Twitter™ и Facebook, условия Creative Commons не распространяются.

    Вопросы сообществу

    Получайте помощь от экспертов по интересующим вас вопросам.

    Пытаюсь импортировать видео файл харак:
    .avi
    видео кодек h.264
    аудио кодек mp3

    пишет ошибку
    «Файл не имеет аудио или видео потоков»
    Подскажите пожалуйста в чем проблема?

    Примечание:
    Я к сожалению не помню как решилась проблема. Вроде я гуглил и нагулил что покоцаный файл. Перекодированный видео файл (если его сжимали) во время обработки был сломан, в итоге он не импортируется. Раньше я сжимал через 7converter ( он сжимает в 10-20 раз) но ломает файл так что его не понимает Adobe Premiere pro. Теперь сжимаю через adobe и также результатом доволен.

    RPI.su — самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

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

    Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected] . Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.

    Видеофайл с четырьмя гигабайтами Quicktime (.MOV) (видео, сделанное на iPhone) отлично воспроизводится на VLC, Windows Media Player и PotPlayer, но при импорте в Adobe Premiere Pro 5.5 появляется следующее сообщение об ошибке:

    «Файл не имеет аудио- или видеопотоков».

    Все другие видео с того же дня отлично открываются в Adobe Premiere Pro.

    Я пробовал четыре различных конвертера видео / инструменты для восстановления (включая Remo, Stellar Phoenix и StreamClip). Три из инструментов фактически ухудшили проблему, а не исправили ее. Они сделали файл неиграбельным (а также не редактируемым). В качестве меры предосторожности я попробовал только инструменты восстановления при резервном копировании файла, чтобы не испортить оригинал.

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

    Может ли кто-нибудь предложить способ извлечения (явно) неповрежденного видео из этого файла .MOV?

    ecofreeon

    0 / 0 / 2

    Регистрация: 13.04.2014

    Сообщений: 148

    1

    Непонятная ошибка. Потоки ввода/вывода

    24.04.2014, 16:50. Показов 2085. Ответов 23

    Метки нет (Все метки)


    Студворк — интернет-сервис помощи студентам

    Решал задачу и столкнулся с проблемой (первый день на c++ «пишу») не пойму что за ошибка

    код

    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    #include "stdafx.h"
    #include <iostream>
     using namespace std;
       void main()
       {
       freopen("input.txt","r",stdin);
       freopen("output.txt","w",stdout);
       int i,c,f,a,b;
       c=0;
       f=0;
       for (i=1; i<=4; i++)
        {
        cin>>a>>b>>endl;
          if (a>b)c++;
          else f++;
        }
        if (c>f) cout<<"1";
        if (c<f) cout<<"2";
        if (c==f) cout<<"DRAW";
       }

    вот что пишет на одном из сайтов, но не могу понять что это значит
    task.cpp
    task.cpp(15) : error C2679: binary ‘>>’ : no operator found which takes a right-hand operand of
    type ‘const char [2]’ (or there is no acceptable conversion)

    Добавлено через 3 минуты
    пробовал вместо «endl» писать «n», но выдается все та же ошибка



    0



    Programming

    Эксперт

    94731 / 64177 / 26122

    Регистрация: 12.04.2006

    Сообщений: 116,782

    24.04.2014, 16:50

    Ответы с готовыми решениями:

    Что такое потоки ввода, потоки вывода?
    Здарова всем!

    Не так давно уже прогаю на С++ и все НИКАК не могу понять, что такое потоки ввода,…

    Потоки ввода/вывода
    Здравствуйте! Расскажите мне пожалуйста подробнее о всех особенностях потоков ввода/вывода; в…

    Потоки ввода-вывода в С++
    Ребят, нужна помощь
    В программирование я новичок, но сдать нужно

    1. Написать программу,…

    Потоки ввода вывода
    Почему с помощью классов ostream и istream нельзя создавать свои потоки ввода вывода?
    std::ostream…

    23

    _Ellen_

    15 / 15 / 6

    Регистрация: 28.11.2013

    Сообщений: 50

    24.04.2014, 16:52

    2

    Лучший ответ Сообщение было отмечено ecofreeon как решение

    Решение

    Цитата
    Сообщение от ecofreeon
    Посмотреть сообщение

    cin>>a>>b>>endl;

    C++
    1
    2
    
    cin >> a >> b;
    cout << endl;



    1



    0 / 0 / 2

    Регистрация: 13.04.2014

    Сообщений: 148

    24.04.2014, 16:53

     [ТС]

    3

    Цитата
    Сообщение от _Ellen_
    Посмотреть сообщение

    cout << endl;

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



    0



    Ev_Hyper

    Заблокирован

    24.04.2014, 16:57

    4

    ecofreeon, потому-что одно это cin, второе — cout



    0



    571 / 539 / 280

    Регистрация: 25.12.2013

    Сообщений: 1,456

    24.04.2014, 16:57

    5

    Цитата
    Сообщение от ecofreeon
    Посмотреть сообщение

    А в одном строке это почему нельзя сделать?

    потому что std::cout — это объект выходного потока, а std::cin — входного



    0



    0 / 0 / 2

    Регистрация: 13.04.2014

    Сообщений: 148

    24.04.2014, 16:58

     [ТС]

    6

    а как это сделать не трогая cout? просто тогда в файле output результат будет напечатан в 5-й строке, а надо, чтобы в 1-й.



    0



    cooller

    571 / 539 / 280

    Регистрация: 25.12.2013

    Сообщений: 1,456

    24.04.2014, 16:59

    7

    ecofreeon, если я вас правильно понял, то вместо

    Цитата
    Сообщение от _Ellen_
    Посмотреть сообщение

    cout << endl;

    это

    C++
    1
    
    std::cout<<" ";



    0



    Ev_Hyper

    Заблокирован

    24.04.2014, 17:00

    8

    ecofreeon,

    C++
    1
    
    cout << endl;

    не надо вообще писать

    сотрите его и все



    0



    15 / 15 / 6

    Регистрация: 28.11.2013

    Сообщений: 50

    24.04.2014, 17:03

    9

    Цитата
    Сообщение от ecofreeon
    Посмотреть сообщение

    А в одном строке это почему нельзя сделать?

    cin — объект входного потока, >> — операция взятия из потока. В данном случае в cin попадает информация с клавиатуры.
    Операция << используется, чтобы поместить информацию в поток выхода, в данном случае для вывода на экран.

    Переменные Вы считываете с клавиатуры, а переход на новую строку выводите на экран.



    0



    0 / 0 / 2

    Регистрация: 13.04.2014

    Сообщений: 148

    24.04.2014, 17:04

     [ТС]

    10

    Цитата
    Сообщение от Ev_Hyper
    Посмотреть сообщение

    не надо вообще писать

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



    0



    5496 / 4891 / 831

    Регистрация: 04.06.2011

    Сообщений: 13,587

    24.04.2014, 17:04

    11

    Цитата
    Сообщение от ecofreeon
    Посмотреть сообщение

    первый день на c++ «пишу»

    ecofreeon, желательно не смешивать Си и С++.



    0



    ecofreeon

    0 / 0 / 2

    Регистрация: 13.04.2014

    Сообщений: 148

    24.04.2014, 17:14

     [ТС]

    12

    Цитата
    Сообщение от alsav22
    Посмотреть сообщение

    желательно не смешивать Си и С++

    а я, вроде. и не смешиваю их…

    Добавлено через 6 минут

    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    #include "stdafx.h"
    #include <iostream>
    *using namespace std;
    * *void main()
    * *{
    * *freopen("input.txt","r",stdin);
    * *freopen("output.txt","w",stdout);
    * *int i,c,f,a,b;
    * *c=0;
    * *f=0;
    * *for (i=1; i<=4; i++)
    * * {
    * * cin>>a>>b;
    * * * if (a>b)c++;
    * * * else f++;
    * * }
    * * if (c>f) cout<<"1";
    * * if (c<f) cout<<"2";
    * * if (c==f) cout<<"DRAW";
    * *}

    такая программа будет переходит на следующую строку после считывания первой?



    0



    alsav22

    5496 / 4891 / 831

    Регистрация: 04.06.2011

    Сообщений: 13,587

    24.04.2014, 17:20

    13

    Цитата
    Сообщение от ecofreeon
    Посмотреть сообщение

    а я, вроде. и не смешиваю их…

    Считаете, что это С++?

    C++
    1
    2
    
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);



    0



    0 / 0 / 2

    Регистрация: 13.04.2014

    Сообщений: 148

    24.04.2014, 17:22

     [ТС]

    14

    Цитата
    Сообщение от alsav22
    Посмотреть сообщение

    Считаете, что это С++?

    я не знаю, по запросу на ввод и вывод в файлы c++ я нашел это, работает.



    0



    5496 / 4891 / 831

    Регистрация: 04.06.2011

    Сообщений: 13,587

    24.04.2014, 17:22

    15

    Тем более, что это здесь совершенно ни к чему.



    0



    0 / 0 / 2

    Регистрация: 13.04.2014

    Сообщений: 148

    24.04.2014, 17:24

     [ТС]

    16

    Цитата
    Сообщение от alsav22
    Посмотреть сообщение

    Тем более, что это здесь совершенно ни к чему

    к чему. мне нужно брать значения из файла input.txt и выводить в output.txt



    0



    alsav22

    5496 / 4891 / 831

    Регистрация: 04.06.2011

    Сообщений: 13,587

    24.04.2014, 17:34

    17

    На С++ это так может выглядеть:

    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    
    #include "stdafx.h"
    #include <iostream>
    #include <fstream>
    using namespace std;
     
    int main()
    {
        ifstream fin("input.txt");
        if (!fin)
            cout << "Error!" << endl;
        else
        {
            ofstream fout("output.txt");
            int c, f, a, b;
            c = 0;
            f = 0;
            while (fin >> a >> b)
            {
                if (a > b)
                    c++;
                else 
                    f++;
            }
            if (c > f) 
                fout << "1" << endl;
            if (c < f) 
                fout << "2" << endl;
            if (c == f) 
                fout << "DRAW" << endl;
            
            fout.close();
            fin.close();
        }
        
        cin.get();
        return 0;
    }



    2



    0 / 0 / 2

    Регистрация: 13.04.2014

    Сообщений: 148

    24.04.2014, 17:40

     [ТС]

    18

    Спасибо .»fin» и «fout» это зарезервированные названия или могу использовать свои?



    0



    5496 / 4891 / 831

    Регистрация: 04.06.2011

    Сообщений: 13,587

    24.04.2014, 17:58

    19

    Можно свои (cin и cout зарезервированы).



    0



    0 / 0 / 2

    Регистрация: 13.04.2014

    Сообщений: 148

    25.04.2014, 09:05

     [ТС]

    20

    объясните пню(мне) как построчно считывать из файла цифры, не символы. вот в паскале(знаю лучше его) допустим есть readln, которая считывает и переводит на следующую строку, а в c++ как это осуществляется?

    Добавлено через 12 минут
    fin >> a >> b
    вот так вот считываются строки, но как-то не правильно считываются: выводить должно быть 57 57 а выводит 32 28



    0



    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, выполнив:

    Иногда в файловой системе можно найти ошибки. В таких случаях вы захотите, чтобы 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, о том, как обрабатывать их в сценариях, о запуске заданий по расписанию и о фоновых задачах.

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

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

    Есть 3 файловых дескриптора: stdin — стандартный ввод, stdout — стандартный вывод и stderr — стандартный поток ошибок. В скриптах 1 означает stdout, а 2 — stderr.

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

    • перенаправлять stdout в файл
    • перенаправлять stderr в файл
    • перенаправлять stdout в stderr
    • перенаправлять stderr в stdout
    • перенаправлять stderr и stdout в файл
    • перенаправлять stderr и stdout в stdout
    • перенаправлять stderr и stdout в stderr
    • перенаправление stderr и stdout по конвейеру

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

    А теперь примеры:

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

    ping ya.ru -t > log.txt
    ping ya.ru -t 1> log.txt

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

    2. Перенаправление стандартного потока программы в файл с до записью содержимого лога

    ping ya.ru -t >> log.txt

    Тоже самое, но при прерывание пинга и начале нового, старое содержимое лога не затрется, а новое дописывается в конец

    ping ya.ru -t 1>> log.txt

    3. Перенаправление потока ошибок программы в фаил с заменой содержимого

    ping ya.ru -t 2> log.txt

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

    4. То же самое, но с до записью содержимого лога.

    ping ya.ru -t 2>> log.txt

    5. Следующая конструкция позволяет перенаправить информацию между потоками (между стандартным потоком и потоком ошибок, или наоборот).

    ping ya.ru > log.txt 2>&1

    или с до записью лога

    ping ya.ru >> log.txt 2>&1

    В данном примере стандартный поток ошибок пересылается в стандартный поток (конструкция 2>&1) а потом стандартный поток (уже с завернутым в него потоком ошибок) посылается в лог.

    6. В этом примере все наоборот, стандартный поток, пересылается в поток ошибок и уже поток ошибок перенаправляется в лог:

    ping ya.ru > log.txt 1>&2

    или с до записью лога

    ping ya.ru >> log.txt 1>&2

    7. По аналогии с Linux системами в Windows можно перенаправить весь или часть вывода программы в виртуальное устройство, а проще говоря слить в мусор.

    Таким устройством является nul, и делать перенаправление в него можно используя все выше представленные комбинации. Например

    ping ya.ru > nul

    В Linux есть еще одна конструкция перенаправления, а именно &>/var/log/log.txt, она перенаправляет ВСЕ без исключения потоки программы в указанное место, по сути являясь более коротким и более грамотным аналогом конструкции >log.txt 1>&2. Но к сожалению в Windows это не работает.

    А теперь давайте немного разберемся в прикладных различиях между работой данных методов. В нормальных приложениях все разбито на потоки, но у большинства виндовых утилит это не так, пинг например, пишет все в стандартный поток (на экран), поэтому для него конструкция вида 2> не имеет смысла. Но есть еще не виндовые утилиты, для примера возьмем curl (мой любимый).

    Он разделяет 3 вида вывода, вывод полезной информации, вывод служебной информации и вывод ошибок. Если перенаправить вывод так: > или >> или 1> или 1>> то по завершению запроса отобразится служебная информация о запросе, а вся полезная информация уйдет в лог (это именно то, что уходит по конвейеру |).

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

    Изменим вывод в лог на один из этих: 2> или 2>> ошибка ранее выводившаяся на экран, попала в лог, и на экране ничего не будет (служебной информации нет, так как запрос произведен не был).

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

    И вывод был бы таким:

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

    На данном скриншоте, конструкцией 2>&1 мы завернули поток ошибок в стандартный поток, а конструкцией > 5555.txt стандартный поток перенаправили в лог. Если вместо > 5555.txt использовать 2> 5555.txt, то есть перенаправить в лог стандартный поток ошибок, мы увидим весь вывод программы (и ошибки, и служебную информацию и полезный вывод) на экране. Конструкция 2>&1 имеет больший приоритет, а по ней уже все завернуто в стандартный поток.

    Делать пример с заворотом стандартного потока в поток ошибок (1>&2) я не буду, ибо там все точно так же.

    Надеюсь логика понятна…

    Так же с помощью символа < можно прочитать входные данные для заданной команды не с клавиатуры, а из определенного (заранее подготовленного) файла. Для примера возьмем реальный и вполне полезный случай. Например, у нас есть файл log.txt и нам надо посчитать сколько в нем строк. Сделать это можно с помощью такой конструкции

    find /c /v "" log.txt

    но вывод будет не совсем приемлемым.

    А вот если сделать так:

    find /c /v "" < log.txt

    то все будет именно так как надо.

    Это происходит потому что в первом случае, файл обрабатывается как файл, а во втором, как поток (аналог линуксового конвейера cat log.txt |) в общем, < это виндовый аналог cat со всеми вытекающими.

    Источник

    Каталог оборудования

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Производители

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Функциональные группы

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Понравилась статья? Поделить с друзьями:
  • Ошибка не найдено ни одной игры
  • Ошибка не найдена вкладка листа автокад
  • Ошибка не найдено ни одного сертификата на аппаратном ключе
  • Ошибка не найдена видеокарта совместимая с directx
  • Ошибка не найдено ни одного сертификата абонента для шифрования