web-dev-qa-db-ja.com

スパースファイルとしてマークされているWindows 8.1で.isoイメージをマウントする方法

ISOをダウンロードしてマウントしようとしましたが、Windows 8.1が拒否しました。

それから私は この投稿 を見つけました。はい、それは動作します。

コメントした人々は、isoのブロックを解除することが可能であるべきだと述べました。

残念ながら、何らかの理由でプロパティにそのようなオプションはありません。

元のファイルが[詳細]-> [属性:AP]およびマウントできるコピー:[詳細]-> [属性:A]にリストされていることに気づきました。

私が何も見つけることができないこのP属性の意味は何ですか?

Windows 8.1でそのようなISOファイルをマウントする適切な方法は何でしょうか?

5
Zingam

簡単な方法を次に示します。 Windows 8.1で.isoファイルからスパース属性を変更 また、DavidPosthillの回答は、問題を特定し、別の解決策を見つけるのに役立ちました。

管理者特権のコマンドプロンプト(管理者)から次のユーティリティを使用します。

fsutil再解析ポイントの管理、スパースファイルの管理、ボリュームのマウント解除など、ファイルアロケーションテーブル(FAT)およびNTFSファイルシステムに関連するタスクを実行します。パラメーターなしで使用した場合、fsutilはサポートされているサブコマンドのリストを表示します。

スパースフラグを0に設定すると、ファイルがスペアにならないように設定され、マウントできます。

fsutil sparse setflag <filename> 0 | 1

これはフラグを照会します

fsutil sparse queryflag <ファイル名>

6
Zingam

このP属性の意味は何ですか?

拡張属性

E暗号化

C圧縮(128:読み取り専用)

コンテンツインデックスが作成されていません

Lシンボリックリンク/ジャンクション(64:読み取り専用)

N通常(0:ファイル選択には使用できません)

Oオフライン

Pスパースファイル

T一時的

ソース attrib -ファイル属性を表示または変更します。


Windows 8は、イメージが「スパース」であるため、.isoイメージのマウントを拒否します

Windowsの.isoマウントは「スパース」ファイルを好まない。 Acronisバックアップを使用して元の.isoファイルをバックアップしましたが、これはスパースファイルを使用します。プロパティでファイルの詳細を確認することで、ファイルが「スパース」かどうかを確認できます。属性の「P」はスパースファイルを表します。下のスクリーンショットを参照してください。

結果? .isoイメージを復元すると、マウントできなくなりました。

私が見つけた最も簡単な解決策は、.isoを新しいファイルにコピーすることです。これにより、スパースフラグが設定されていない新しいファイルが作成されたようです。

ソース Windows 8は、イメージが「スパース」であるため、.isoイメージのマウントを拒否します


Windows 8およびWindows 2012でのISOマウントエラー

ISOファイルのマウントに失敗する背後にある問題は、スパースフラグが設定されていることです。この特定のファイル属性の詳細については、このMSDNページ( http://msdn.Microsoft.com/en-us/library/windows/desktop/aa365564%28v=vs.85%29)を参照してください。 .aspx )。簡単に言うと、このスパースフラグはNTFSファイルシステムでサポートされている機能であり、データストリームにゼロを書き込まないことにより、ディスク領域を効率的に使用できます。代わりに、ファイル内の位置ゼロを含む内部リストを維持します。

したがって、解決策は、そのスパースフラグを削除してISOをマウントすることです。現時点では、このフラグが設定されているとマウントが機能しない理由がわかりません。 CDFSファイルシステムがこのフラグを理解できないため、エラーが発生した可能性があります。

スパースフラグを削除するには、2つの方法があります。

  1. 簡単なコピー&ペーストで:ISOファイルを同じフォルダーまたは別のフォルダーにコピー&ペーストできます。このファイルのコピーが作成されると、スパースフラグは削除されます。コピーしたファイルを使用して、CD/DVDドライブとしてマウントできます。
  2. プログラムでスパースフラグを削除する:以下の方法を使用して、複数のファイルの1つでスパースフラグを削除できます。
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"            
    }            
}

ソース Windows 8およびWindows 2012 でのISOマウントエラー


参考文献

4
DavidPostill