如何在 Windows 8.1 中挂载标记为稀疏文件的 .iso 映像?

如何在 Windows 8.1 中挂载标记为稀疏文件的 .iso 映像?

我下载了一些 iso 并尝试安装它,但 Windows 8.1 拒绝了。

然后我发现这个帖子建议复制 .iso。是的,它有效。

评论者说应该可以解除对 iso 的阻止。

不幸的是,由于某种原因,属性中没有这样的选项。

我注意到原始文件已在“详细信息”->“属性:AP”中列出,并且可安装的副本为:“详细信息”->“属性:A”。

我找不到任何关于这个 P 属性的含义的信息,它到底是什么?

在 Windows 8.1 中安装此类 iso 文件的正确方法是什么?

答案1

以下是轻松完成的方法: 在 Windows 8.1 上更改 .iso 文件的稀疏属性 DavidPosthill 的回答也帮助我发现了问题并找到了替代解决方案。

从提升的命令提示符(管理员)使用此实用程序:

fsutil 执行与文件分配表 (FAT) 和 NTFS 文件系统相关的任务,例如管理重新解析点、管理稀疏文件或卸载卷。如果使用时不带参数,fsutil 将显示受支持的子命令列表。

例子

将稀疏标志设置为 0 将把文件设置为非备用,然后您可以挂载它。

fsutil sparse setflag <文件名> 0|1

这将查询标志

fsutil 稀疏查询标志 <文件名>

答案2

这个P属性是什么意思呢?

扩展属性

E 加密

C 压缩(128:只读)

我 没有内容索引

L 符号链接/连接点(64:只读)

N 正常(0:不能用于文件选择)

离线

P 稀疏文件

临时

来源属性- 显示或更改文件属性。


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 文件系统无法理解此标志,因此出现错误。

有两种方法可以删除稀疏标志:

  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"            
    }            
}

来源Windows 8 和 Windows 2012 上的 ISO 挂载错误


进一步阅读

相关内容