mirror of
https://github.com/rbalsleyMSFT/FFU.git
synced 2026-06-14 02:09:35 -06:00
Add detailed flowchart for BuildFFUVM process in Markdown format
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
```mermaid
|
||||
graph TD
|
||||
subgraph "Start & Initialization"
|
||||
A[Start] --> B{Load ConfigFile?};
|
||||
B --> C[Process Parameters];
|
||||
C --> D{Validate Parameters};
|
||||
D --> E{"dirty.txt exists?"};
|
||||
E -- Yes --> F[Run Cleanup Routine];
|
||||
F --> G["Create new dirty.txt"];
|
||||
E -- No --> G;
|
||||
end
|
||||
|
||||
G --> H{"-InstallDrivers or -CopyDrivers?"};
|
||||
|
||||
subgraph "Pre-Build Preparations"
|
||||
H -- Yes --> I{Driver Source?};
|
||||
I -- "-DriversJsonPath" --> J[Download Drivers via JSON in Parallel];
|
||||
I -- "-Make and -Model" --> K[Download Drivers for specific Make/Model];
|
||||
I -- "Local Folder" --> L[Use Existing Drivers in Drivers Folder];
|
||||
|
||||
subgraph "ADK & WinPE"
|
||||
M[Check for ADK & WinPE Add-on];
|
||||
M --> N{Latest Version Installed?};
|
||||
N -- No --> O[Uninstall Old & Install Latest ADK/WinPE];
|
||||
N -- Yes --> P[Get ADK Path];
|
||||
O --> P;
|
||||
end
|
||||
|
||||
Q{"-InstallApps?"};
|
||||
subgraph "Application & In-VM Content Preparation"
|
||||
direction LR
|
||||
R[Check for existing downloaded apps];
|
||||
R --> S{Download missing WinGet apps};
|
||||
S --> T{"-InstallOffice?"};
|
||||
T -- Yes --> U[Download ODT & Office content];
|
||||
T -- No --> V[Continue];
|
||||
U --> V;
|
||||
V --> W["Download in-VM updates: Defender, MSRT, etc."];
|
||||
W --> X["Create Apps.iso"];
|
||||
end
|
||||
end
|
||||
|
||||
J --> M;
|
||||
K --> M;
|
||||
L --> M;
|
||||
H -- No --> M;
|
||||
P --> Q;
|
||||
Q -- Yes --> R;
|
||||
X --> Y;
|
||||
Q -- No --> Y{"-AllowVHDXCaching?"};
|
||||
|
||||
subgraph "VHDX Management"
|
||||
Y -- Yes --> Z[Check for matching cached VHDX];
|
||||
Z --> AA{Cache Hit?};
|
||||
AA -- Yes --> AB[Use Cached VHDX];
|
||||
AA -- No --> AC[Create New VHDX];
|
||||
Y -- No --> AC;
|
||||
|
||||
subgraph "VHDX Creation Workflow"
|
||||
AC --> AD{ISOPath provided?};
|
||||
AD -- No --> AE[Download Windows ESD media];
|
||||
AD -- Yes --> AF[Use provided ISO];
|
||||
AE --> AG[Create & Partition VHDX];
|
||||
AF --> AG;
|
||||
AG --> AH[Apply Base Windows Image to VHDX];
|
||||
AH --> AI{"Updates specified? (CU, dotNET, etc.)"};
|
||||
AI -- Yes --> AJ[Apply Updates to Offline VHDX];
|
||||
AJ --> AK[Run Component Cleanup];
|
||||
AI -- No --> AK;
|
||||
AK --> AL{"Optional Features specified?"};
|
||||
AL -- Yes --> AM[Enable Optional Features];
|
||||
AL -- No --> AN[Finalize VHDX Setup];
|
||||
AM --> AN;
|
||||
AN --> AO{"-AllowVHDXCaching?"};
|
||||
AO -- Yes --> AP[Optimize and Copy VHDX to Cache];
|
||||
AO -- No --> AQ[Continue];
|
||||
AP --> AQ;
|
||||
end
|
||||
end
|
||||
|
||||
AB --> BA;
|
||||
AQ --> BA{"-InstallApps?"};
|
||||
|
||||
subgraph "FFU Creation"
|
||||
subgraph "VM-Based Capture (-InstallApps)"
|
||||
direction LR
|
||||
BB[Create Hyper-V VM from VHDX];
|
||||
BB --> BC["Create WinPE Capture Media iso"];
|
||||
BC --> BD[Configure network share for capture];
|
||||
BD --> BE["Start VM: Boots to Audit Mode"];
|
||||
BE --> BF[Orchestrator runs: Installs apps, syspreps, shuts down];
|
||||
BF --> BG[VM reboots from Capture Media];
|
||||
BG --> BH["CaptureFFU.ps1 runs, saves FFU to share, shuts down"];
|
||||
end
|
||||
|
||||
subgraph "Direct VHDX Capture"
|
||||
BI[Capture FFU directly from VHDX using DISM];
|
||||
end
|
||||
end
|
||||
|
||||
BA -- Yes --> BB;
|
||||
BA -- No --> BI;
|
||||
|
||||
subgraph "Post-Processing & Media Creation"
|
||||
BK{"-InstallDrivers?"};
|
||||
BK -- Yes --> BL[Mount FFU & Inject Drivers];
|
||||
BK -- No --> BM[Continue];
|
||||
BL --> BM;
|
||||
BM --> BN{"-Optimize?"};
|
||||
BN -- Yes --> BO[Optimize FFU using DISM];
|
||||
BN -- No --> BP[Continue];
|
||||
BO --> BP;
|
||||
BP --> BQ{"-BuildUSBDrive?"};
|
||||
BQ -- Yes --> BR[Create WinPE Deployment Media];
|
||||
BR --> BS["Partition USB Drive(s)"];
|
||||
BS --> BT[Copy FFU, Deploy scripts & other assets to USB];
|
||||
BQ -- No --> BU[Continue];
|
||||
BT --> BU;
|
||||
end
|
||||
|
||||
BH --> BK;
|
||||
BI --> BK;
|
||||
|
||||
subgraph "Final Cleanup"
|
||||
BU --> BV[Cleanup VM, VHDX, temp files];
|
||||
BV --> BW["Remove dirty.txt"];
|
||||
BW --> BX[End];
|
||||
end
|
||||
Reference in New Issue
Block a user