OSDCloudRE: support creating the RE partition from a local / UNC ISO (without Azure)
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 56/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- powershell
- 領域
- backend
調査の方向性
Start in Public/OSDCloud/OSDCloudRE.ps1 and compare Invoke-OSDCloudRE with Start-OSDCloudREAzure, following how the boot image is selected, downloaded, and used to size the partition. Check OSDeploy/OSD.psd1 for the export list. Done means a local or UNC ISO can use the new wrapper while the existing Azure flow still works; the issue gives no test file, so verify both paths using the module's existing checks.
索引モデルが issue の本文から書いたものです。
説明
Is your feature request related to a problem? Please describe.
OSDCloudRE can currently only be created from an ISO stored in Azure Storage (Start-OSDCloudREAzure → Invoke-OSDCloudRE). In environments where the boot ISO is already on the device (copied by a software distribution / DSC / Intune), on a file share, or where Azure Storage isn't available, there is no supported way to build OSDCloudRE. Invoke-OSDCloudRE has no parameters, stops when AzOSDCloudBootImage is empty, always downloads into C:\OSDCloud\Azure\..., and sizes the partition from the Azure blob (New-OSDCloudREVolume -IsoSize $Global:OSDCloudRE.AzOSDCloudBootImage.Length). So overriding BootImage via $Global:MyOSDCloudRE doesn't work either.
I currently work around this with a local copy of the OSDCloudRE functions, which I have to re-check on every OSD release.
Describe the solution you'd like
A small, backwards-compatible change in Public/OSDCloud/OSDCloudRE.ps1 (tested against 26.10.16.1):
Invoke-OSDCloudREgets an optional-LocalISOPathparameter (also settable via$Global:MyOSDCloudRE.LocalISOPath).- If
LocalISOPathis set, the Azure checks and download are skipped andBootImageis the local file. Otherwise the existing Azure flow is unchanged. - The partition is sized from
$Global:OSDCloudRE.BootImage.Length, which is the same value as the blob length in the Azure case. - A new exported wrapper,
Start-OSDCloudRELocal -ISOPath <path>, mirrors the admin / not-WinPE checks ofStart-OSDCloudREAzure.
Start-OSDCloudRELocal -ISOPath 'D:\OSDCloud\OSDCloud.iso'
Start-OSDCloudRELocal -ISOPath '\\server\share\OSDCloud.iso'
The core of the change in Invoke-OSDCloudRE:
param (
[System.String]
#Path to an OSDCloud ISO on a local drive or UNC share. Azure Storage is not used when set
$LocalISOPath
)
# ...
if (-not $Global:OSDCloudRE.LocalISOPath -and -not $Global:OSDCloudRE.AzOSDCloudBootImage) {
Write-Warning "[$(Get-Date -format s)] A Boot Image is required to run this function"
Break
}
# ...
#region Local ISO or Azure Storage Image Download
if ($Global:OSDCloudRE.LocalISOPath) {
if (-not (Test-Path -Path $Global:OSDCloudRE.LocalISOPath -PathType Leaf)) {
Write-Warning "[$(Get-Date -format s)] Unable to find $($Global:OSDCloudRE.LocalISOPath)"
Break
}
$Global:OSDCloudRE.BootImage = Get-Item -Path $Global:OSDCloudRE.LocalISOPath -ErrorAction Stop | Select-Object -First 1
}
elseif ($Global:OSDCloudRE.AzOSDCloudBootImage) {
# existing Azure download, unchanged
}
# ...
$Global:OSDCloudRE.Volume = New-OSDCloudREVolume -IsoSize $Global:OSDCloudRE.BootImage.Length -ErrorAction Stop
The full diff is about 80 lines, mostly the new Start-OSDCloudRELocal function and its help, plus one line in OSD.psd1 FunctionsToExport. I'm happy to open a PR if you're open to the idea, and to adjust the naming (e.g. Start-OSDCloudREISO / -ImagePath) to whatever fits the module best.
Describe alternatives you've considered
- Maintaining a private copy of the OSDCloudRE functions with this change. This is what I do today, but it drifts from upstream with each release.
- Uploading the ISO to Azure Storage just to satisfy
Start-OSDCloudREAzure. That's not possible in offline or Azure-less environments, and it means downloading an ISO that is already on the device.
- 主要言語
- PowerShell
- スター
- 251
- フォーク
- 102
- 平均マージ
- 2分
- マージ済み PR(30日)
- 4
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
OSDeploy/OSD のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 63/100
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
Area: PDF support
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
orbeon/orbeon-forms#8055 ·
メンテナーはふだん 2 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
JWhite212/SignalLadder#212 ·
メンテナーはふだん 1 日以内に返信
-
"Claude Code request is missing its initial user message" when the prompt starts with an image pathオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
earendil-works/pi-claude-code#31 ·
メンテナーはふだん 8 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 79/100
メンテナーはふだん 1 日以内に返信