5

Я скачал iso и попытался смонтировать его, но Windows 8.1 отказалась.

Тогда я нашел этот пост, который советует скопировать .iso. Да, и это работает.

Люди, которые прокомментировали, сказали, что должна быть возможность разблокировать iso.

К сожалению, в свойствах по какой-то причине такой опции нет.

Я заметил, что исходный файл был указан в Подробности -> Атрибуты: AP и копия, которую можно смонтировать: Детали -> Атрибуты: A.

Что означает этот атрибут P, о котором я ничего не могу найти?

Как правильно монтировать такие iso-файлы в Windows 8.1?

2 ответа2

6

Вот как это легко сделать:изменить атрибут sparse из файла .iso в Windows 8.1 Также ответ DavidPosthill помог мне определить проблему и найти альтернативное решение.

Из командной строки с повышенными привилегиями (администратор) используйте эту утилиту:

fsutil Выполняет задачи, связанные с таблицей размещения файлов (FAT) и файловыми системами NTFS, такие как управление точками повторной обработки, управление разреженными файлами или отключение тома. Если он используется без параметров, fsutil отображает список поддерживаемых подкоманд.

пример

Если для параметра sparse flag установлено значение 0, файл НЕ будет сохранен, а затем вы сможете его смонтировать.

fsutil разреженный setflag <имя файла> 0 | 1

Это запросит флаг

fsutil sparse queryflag <имя файла>

4

Что означает этот атрибут P?

расширенные атрибуты:

E зашифрованный

Сжатый (128: только для чтения)

Я не индексируется

L Символьная связь / соединение (64: только для чтения)

Нормальный (0: нельзя использовать для выбора файла)

O Не в сети

P разреженный файл

T Временный

Source attrib - Показать или изменить атрибуты файла.


Windows 8 отказывается монтировать образ .iso, потому что образ «разреженный»

Монтирование Windows .iso не любит «редкие» файлы. Я использовал резервное копирование Acronis для резервного копирования моих исходных файлов .iso, и это использует разреженные файлы. Вы можете проверить, является ли файл «разреженным», просмотрев сведения о файлах в свойствах. 'P' в атрибутах представляет разреженный файл. Смотрите скриншот ниже.

Результат? Когда я восстановил свои образы .iso, я больше не мог их монтировать.

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

Исходный Windows 8 отказывается монтировать образ .iso, потому что образ «разреженный»


Ошибка монтирования ISO в Windows 8 и Windows 2012

Проблема, связанная с невозможностью монтировать файлы ISO, заключается в том, что у него установлен разреженный флаг. Подробнее об этом атрибуте файла можно прочитать на этой странице MSDN (http://msdn.microsoft.com/en-us/library/windows/desktop/aa365564%28v=vs.85%29.aspx). В двух словах, этот разреженный флаг поддерживается в файловой системе NTFS, что позволяет эффективно использовать дисковое пространство, не записывая нули в поток данных. Вместо этого он поддерживает внутренний список, содержащий нули местоположения в файле.

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

Есть два способа удалить разреженный флаг:

  1. Просто скопируйте и вставьте: вы можете скопировать и вставить файл ISO в ту же папку или другую папку. Флаг разрежения будет удален при создании копии этого файла. Вы можете использовать скопированный файл для подключения в качестве привода CD/DVD
  2. Удалите флаг разрежения программным способом: Вы можете использовать следующий подход для удаления флага разрежения в одном из нескольких файлов.
function Remove-SparseFlag {            
[cmdletbinding()]            
param(            
[string]$FileName            
)            
    if(!(Test-Path $FileName)) {             
        Write-Host "$FileName No such filename present"            
        return            
    }            

    $Attribs = [System.IO.File]::GetAttributes($FileName)            
    if($Attribs.HasFlag([System.IO.FileAttributes]::SparseFile)) {            
        Invoke-Expression -Command "fsutil sparse setflag '$FileName' 0"            
        if($LASTEXITCODE -ne 0) {            
            Write-host "Failed to remove sparse flag on $FileName"            
        } else {            
            Write-Host "Successfully removed the sparse flag on $FileName"            
        }            
    } else {            
        Write-Host "$FileName has no sparse flag set"            
    }            
}

Ошибка исходного монтирования ISO в Windows 8 и Windows 2012


Дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .