【问题标题】:Mounting ISO images with powershell inside windowsservercore fails在 windowsservercore 中使用 powershell 挂载 ISO 映像失败
【发布时间】:2017-04-23 07:47:42
【问题描述】:

我正在尝试在 Docker 中的 Windows Server Core 上执行无人值守的 SQL Server 安装。但是它会抛出这个错误:找不到指定文件的虚拟磁盘支持提供程序。

有人知道如何让 Mount-DiskImage 在 Windows Server Core 上工作吗?

RUN @echo off && `
    aws s3 cp s3://mybucket/en_sql_server_2016_developer_with_service_pack_1_x64_dvd_9548071.iso C:\en_sql_server_2016_developer_with_service_pack_1_x64_dvd_9548071.iso && `
    for /f "delims=" %%A in ('@powershell -NoProfile -ExecutionPolicy Bypass -Command "(Mount-DiskImage -ImagePath C:\en_sql_server_2016_developer_with_service_pack_1_x64_dvd_9548071.iso -PassThru | Get-Volume).DriveLetter"') do set "ISO_DRIVE_LETTER=%%A" && `
    echo Mounted SQL install image to drive %ISO_DRIVE_LETTER% && `
    echo Setting up SQL Server.. && `
%ISO_DRIVE_LETTER%:\Setup /ConfigurationFile=SQLInstallConfig.ini

P.S.:我曾尝试将 ISO 映像直接复制到 docker 容器中并得到相同的结果。所以它似乎不是损坏的图像。

【问题讨论】:

  • 这应该可以。仔细检查 ISO 是否正确下载(不是空的或损坏的,可以安装在其他地方)。另外,什么版本的 Windows?
  • 另外,但如果你愿意,你可以认为这只是一个小问题,通过从互联网上下载脚本并直接执行它们来进行安装只是...... ew。哪怕只是虚拟的。 chocolatey.org 现在可以破解并安装后门真是太好了。
  • 这是在 Windows Server Core 上。也许它不支持 Mount-DiskImage 或者没有底层基础设施?
  • @KyryllTeninBaum 你在这方面有什么进展吗?我找不到任何说明它不受支持的文档,我也无法确定哪个服务器功能包含它来尝试安装它。
  • @JeroenMostert Chocolatey 建议设置您自己的包裹供稿:chocolatey.org/docs/security#organizational-use-of-chocolatey。这就是我在我的组织中使用 Choco 所做的。请注意,在上述情况下,如果您放置了 ISO,验证文件的摘要将是缓解此问题的好方法。这也意味着您的构建更可靠,因为损坏或截断的下载比恶意行为者更有可能。

标签: powershell docker


【解决方案1】:

截至 2021 年 8 月,仍然无法在 Windows Docker 容器中装载磁盘映像。我已经尝试自己解决这个问题足够多次了,我得到的最远的是模糊地提到“缺少虚拟 DVD 功能”,但我找不到任何提到“虚拟 DVD”或提到安装图像的功能。


作为一种解决方法,您可以将磁盘映像/ISO 提取到文件夹中,或者将映像挂载到主机中。然后将目录路径暴露给容器。


当您不维护的脚本或软件包可能会尝试下载和挂载磁盘映像/ISO 作为其自身设置过程的一部分时,这两种方法都不是完美的解决方案。但是,确实需要磁盘映像作为外部源的软件安装程序或软件包通常会提供一个参数来指定替代安装源位置,以便您可以在这些情况下找到合适的解决方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 2017-12-12
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 2020-06-02
    相关资源
    最近更新 更多