Не удалось подключить файл

ISO-образ: К сожалению при подключении файла возникла проблема

2015-08-22 14:00:00

В Windows 8 появилась возможность монтировать образы CD, DVD и др. типов дисков на виртуальный привод средствами самой системы. Для этого достаточно двойным кликом щёлкнуть по iso образу или кликнуть правой кнопкой по файлу и в выпавшем меню нажать «Монитровать».

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

Решение проблемы я нашёл на форумах. Оказывается всё дело в атрибутах файла в iso.

Атрибут SPARE (разреженный файл) негативно влияет на работоспособность утилиты, которая монтирует виртуальный диск. Она не может корректно обработать файл с данным атрибутом, поэтому выдаёт ошибку.

Чтобы проверить наличие атрибута и снять его:

  1. Открываем в проводнике папку с нашим iso-файлом;
  2. Переходим в главное меню проводника: Файл > Запустить Windows Power Shell от имени администратора;
  3. Проверяем, установлен ли атрибут: fsutil sparse queryflag <имя_вашего_файла>
  4. Если да, то снимаем его: fsutil sparse setflag <имя_вашего_файла> 0

Если у вас появится предупреждение «Отказано в доступе», снимите атрибут «Только чтение» с файла (Правой кнопкой по файлу > Свойства > Убираем галочку «Только чтение» > Применить).

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

Есть более простое решение — можно просто скопировать файл в другую папку и он будет монтироваться без проблем.

PS. Sparse file — файл, который использует специальный алгоритм для уменьшения занимаемого на диске места. В нём последовательности нулевых байтов заменены на информацию об этих последовательностях (список дыр). Дыра — последовательность нулевых байт внутри файла, не записанная на диск. Информация о дырах (смещение от начала файла в байтах и количество байт) хранится в метаданных ФС.

Добрый день! Уважаемые читатели и гости компьютерного блога Pyatilistnik.org. Не так давно мы с вами разбирали вопрос проблемы запуска на компьютере игры Mafia 3, где у нас выскакивало ошибка «Запуск программы невозможен, так как на компьютере отсутствует VCRUNTIME140.dll». Сегодня я хотел поиграть в свою из любимейших серий игр «Цивилизацию 4». У меня до этого был ISO образ, который я благополучно нашел на своих съемных жестких дисках. Напоминаю, что начинаю с Windows 8.1, она спокойно без лишних программ умеет их монтировать, но когда я попытался это сделать, то получил ошибку «К сожалению при подключении файла возникла проблема», смонтировать ISO образ не удалось. Давайте разбираться в чем собственно дело.

Описание проблемы

Как я и писал выше в операционной системе Windows 8.1, по какой-то причине у меня не смонтировался рабочий ISO образ, где выдал сообщение:

К сожалению при подключении файла возникла проблема

так же вы можете встретить еще одну разновидность данной проблемы в виде ошибки:

Убедитесь, что файл находится на томе NTFS, при этом папка или том не должна быть сжатыми

В логах Windows я не обнаружил ни одного события связанного с этими проблемами. И так первым делом необходимо посмотреть в свойствах файла его атрибуты, на вкладке «Общие». Убедитесь, что у вас не стоит галка «Только для чтения» и «Этот файл получен с другого компьютера, и, возможно, был заблокирован с целью защиты компьютера» нажмите разблокировать и применить.

Должно получиться вот так. Пробуем смонтировать диск, если ошибка возобновилась, то пробуем дальше вот такие действия.

С вероятностью 90%, вся проблема в атрибуте SPARE или как его еще называют sparse files (Разреженные файлы) в NTFS. Разреженные файлы — это когда файлы занимают на диске меньше пространства, чем в их свойствах отображается размер, по сути это для их экономии. Принцип очень простой, в файле есть области, занятые одними нулями (0x00). Приложение, читающее разреженный файл, дойдя до области с нулями, прочитает нули, но реального чтения с диска не произойдёт. Разреженность поможет сэкономить дисковое пространство только в таких файлах, в которых есть действительно большие пустые области.

В моем примере есть ISO образ объемом 3,1 ГБ, предположим, что в нем есть много нулей. Если они есть, то файл обычно оптимизируют, разбивая его не маленькие блоки, которые в последствии анализируются. Если хотя бы один байт внутри такого блока имеет отличное от 0x00 значение, блок записывается на диск как содержащий реальные данные. Блоки же, содержащие только байты 0x00, считаются пустыми и на диск не записываются. Таким образом файл получается меньшим по размеру, чем он есть на самом деле, однако сжатие при этом не используется.

Файловая система NTFS при попытке считать данный файл, знает его длину и количество блоков отданные под данные, а вот блоки с нулями будут генерится на лету, восстанавливая таким образом его изначальную структуру. Но как мы знаем операционная система Windows не идеальна и ее утилита отвечающая за монтирование ISO образов, может некорректно отработать с файлами, где есть атрибут sparse. Данный атрибут очень часто выставляют различные торрент-приложения, чтобы повысить производительность.

Чтобы удостовериться, что на файле стоит атрибут SPARE, откройте командную строку от имени администратора. и выполните команду:

fsutil sparse setflag путь до файла, например:

fsutil sparse setflag E:\Write\Games\Civilization IV.iso (Если выскочит ошибка Использование: fsutil sparse setflag <имя_файла> . Пример: fsutil sparse setflag C:\Temp\test.txt, то введите путь с кавычками, так как в нем есть пробелы)

C:\Users\sem>fsutil sparse setflag «E:\Write\Games\Civilization IV.iso»

Увидите надпись, что у этого файла установлен атрибут «Разреженный», если надписи не будет, то это не означает, что атрибута нет, продолжаем его снимать.

Далее убираем атрибут SPARE, выполните команду:

fsutil sparse setflag «E:\Write\Games\Civilization IV.iso» 0

После этих действий пробуем смонтировать ISO Образ, как видим, все работает.

Убираем атрибут «Разреженный» для ISO файла

Чаще всего проблема решается простым снятием атрибута «Разреженный» (sparse) с ISO файла, который может присутствовать для файлов, загруженных, например, с торрентов.

Сделать это сравнительно просто, порядок действий будет следующим.

  1. Запустите командную строку (не обязательно от администратора, но лучше так — на случай, если файл находится в папке, для изменений в которой требуются повышенные права). Для запуска можно начать набирать «Командная строка» в поиске на панели задач, а затем нажать правой кнопкой мыши по найденному результату и выбрать нужный пункт контекстного меню.
  2. В командной строке введите команду:fsutil sparse setflag «Полный_путь_к_файлу» 0и нажмите Enter. Подсказка: вместо ввода пути к файлу вручную, вы можете просто в нужный момент «перетащить» его на окно ввода команд, и путь подставится сам.
  3. На всякий случай проверьте, отсутствует ли атрибут «Разреженный», используя командуfsutil sparse queryflag «Полный_путь_к_файлу»

В большинстве случаев, описанных шагов вполне достаточно для того, чтобы ошибка «Убедитесь, что файл находится на томе NTFS» больше не появлялась при подключении этого образа ISO.

Не удалось подключить файл ISO — дополнительные способы исправить проблему

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

Для начала проверьте (как об этом и говорится в сообщении об ошибке) — не является ли том или папка с этим файлом или же сам файл ISO сжатыми. Для этого можно выполнить следующие действия.

  • Для проверки тома (раздела диска) в проводнике нажмите правой кнопкой мыши по этому разделу и выберите пункт «Свойства». Убедитесь, что отметка «Сжать этот диск для экономии места» не установлена.
  • Для проверки папки и образа — аналогичным образом откройте свойства папки (или файла ISO) и в разделе «Атрибуты» нажмите «Другие». Убедитесь, что для папки не включено «Сжимать содержимое».
  • Также по умолчанию в Windows 10 для сжатых папок и файлов отображается значок из двух синих стрелок, как на скриншоте ниже.

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

Если и это не помогло, вот еще что можно попробовать:

  • Скопируйте (не перенесите) образ ISO на рабочий стол и попробуйте подключить его оттуда — такой метод с большой вероятностью уберет сообщение «Убедитесь, что файл находится на томе NTFS».
  • По некоторым сообщениям проблему вызывало обновление KB4019472, вышедшее летом 2017. Если каким-то образом вы установили его только сейчас и получили ошибку, попробуйте удалить это обновление.

Что делать, если при монтировании ISO-образа в Проводнике выдается ошибка «Убедитесь, что файл находится на томе NTFS»

Как известно, просматривать содержимое образов ISO в Windows 8.1 и 10 можно не прибегая к помощи сторонних программ, вместо этого достаточно смонтировать его в Проводнике двойным кликом. Образ без проблем откроется, но это при условии, что он не окажется поврежденным и не будет иметь атрибута sparse или как еще говорят, разреженного или неполного. Образы ISO с этим атрибутом встречаются редко, но если пользователю как раз выпадет удача его скачать, монтирование оного в Проводнике может оказаться проблематичным.

Скорее всего, при попытке монтирования разреженного образа вы получите ошибку «К сожалению, при подключении файла возникла проблема» или «Убедитесь, что файл находится на томе NTFS…».

Но что такое атрибут sparse и почему отмеченный им образ не получается смонтировать в Проводнике? Sparse files или иначе разреженные (неполные) файлы — это файлы, в которых области с нулевыми байтами представлены в виде информации об этих самых областях.

Выглядит это примерно следующим образом.

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

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

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

Теперь что касается решения этой проблемы.

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

Для этого откройте командную строку от имени администратора и выполните в ней такую команду:

1 fsutil sparse queryflag {полный путь к файлу}

В нашем примере образ livedisk.iso как раз имеет такой атрибут.

Снимем его следующей командой, после чего еще раз проверим его наличие:

1 fsutil sparse setflag {полный путь к файлу} 0

На этот раз в консоли получаем сообщение У этого файла НЕ установлен атрибут «Разреженный».

Готово, образ можно монтировать, ошибка возникнуть не должна.

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *