Formatta e partiziona il disco
<img style="”float:" right;” src="”https://www.recastsoftware.com/wp-content/uploads/2021/10/Recast-Logo-Dark_Horizontal.svg”" alt=""Immagine"" height="”43″" width="”150″">
Formatta e partiziona il disco
Questo è un passaggio fondamentale nel processo OSD. Nel complesso è piuttosto semplice, ma a seconda delle situazioni, può diventare un po' complesso.
MS Docs
PowerShell
- Get-CMTSStepPartitionDisk
- Nuovo-CMTSStepPartitionDisk
- Rimuovi-CMTSStepPartitionDisk
- Set-CMTSStepPartitionDisk
Variabili
Ci sono anche diverse variabili che possono avere un impatto su questo passaggio, su build semplici non è un grosso problema, ma quando si fanno server con molte unità o array, ti consigliamo di sfruttarle
Insieme a quelle variabili int integrate, in genere creerai le tue con quei passaggi che puoi utilizzare in seguito nel tuo TS.
Immagine del passo
Se crei il passaggio manualmente, è piuttosto vuoto e lascia a te la possibilità di impostarlo come desideri, tuttavia se crei una nuova sequenza di attività di distribuzione, verranno creati due passaggi di formattazione del disco, insieme alle condizioni necessarie e il layout del disco corretto a seconda che la macchina sia in esecuzione in modalità BIOS legacy o in modalità UEFI, poiché ogni tipo richiede un layout di partizione e una formattazione dell'unità diversi.
BIOS legacy
Diverse condizioni pre-create sono già sul passaggio, principalmente _SMSTSBootUEFI non è uguale a "true"
Sono stati creati 3 volumi, tutti NTFS.
Non ho intenzione di dedicare tempo a questo, poiché si spera che tu non abbia macchine che non puoi convertire in UEFI e ottieni ulteriori miglioramenti di sicurezza in questo modo.
Interfaccia firmware estensibile unificata (UEFI)
Qui puoi vedere che ci sono 4 partizioni e le prime due non sono NTFS.
Il layout consigliato Microsoft composto dalle 4 partizioni nella disposizione già creata per te.
-
EFI: Partizione di sistema, richiesta su GPT, e questa è la partizione su cui si avvia la macchina (il che significa che non sarebbe crittografata)
- Consigliato 360 MB
-
MSR: aiuta con la gestione delle partizioni GPT
- Consigliato 128 MB
-
Finestre (primarie): Minimo 300 MB (tipicamente 100% di disco rimanente dopo le altre 3 partizioni)
- Questa è la partizione che conterrà il sistema operativo e i dati dell'utente.
-
Recupero (Ripristino): Minimo 300 MB
- ID tipo: DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
- Consigliato: 984 MB
Opzioni
- Numero disco: se si dispone di più dischi, è possibile formattarli ciascuno. Questo corrisponde al Indice disco OSD variabile. Questo è utile se si dispone di un'unità NVMe M.2, che viene visualizzata come Disco 0, ma si desidera formattare l'SSD SATA come disco del sistema operativo per eseguire Windows One. Puoi controllare quale disco è impostato come volume di avvio di Windows in questo modo.
- Tipo di disco: puoi scegliere tra MBR o GPT
- Proprietà della partizione
- Nome della partizione: fai qualcosa che abbia senso
- Tipo di partizione: EFI, ripristino, MSR, primaria, nascosta
- Usa un % di rimanente
- Usa una taglia specifica
- Non assegnare una lettera di unità a questa partizione.
- Formato file system: nessuno, NTFS, FAT32
- Variabile: imposta una variabile per la partizione, in modo che più avanti nel processo, puoi assicurarti che la copia dei file o l'installazione di elementi vadano nella partizione che ti aspetti.
Consigli
Questo è qualcosa che ho imparato da Mike Terrill, facendo saltare la creazione della partizione di ripristino, quindi aggiungendola da soli in modo da poter impostare la dimensione effettiva invece di lasciarla impostata su 1%, che è l'impostazione predefinita.
Facciamo un po' di calcoli veloci, ho un'unità NVMe da 1 TB
1.000.000 MB – 360 (EFI) – 128 (MSR) = 999.512
99% di 999,512 = 989,517
1% rimanente per la partizione di ripristino: 9.995 MB
Quindi ora abbiamo una partizione di ripristino di quasi 10 GB quando ne avevamo bisogno solo 10%? Spreco, vergognoso.
ho scritto a blog a portata di mano su come risolvere il problema, insieme allo script e al download di TS Step.
Dimostrazione
Formato BIOS legacy demo
Passaggi TS:
Eseguendo in modalità BIOS, sto utilizzando i passaggi speciali di cui ho scritto nel blog per avere un controllo migliore sulle dimensioni delle partizioni.
Puoi vedere dalle due immagini sopra, che ha creato le due partizioni, ha assegnato alla partizione di sistema 350 MB e il resto alla partizione primaria.
Ecco il passaggio personalizzato che riduce la partizione primaria di 984 MB da utilizzare per la partizione di ripristino.
Demo UEFI BIOS Formato
Passaggi TS:
In esecuzione in modalità UEFI, ancora una volta utilizzando i passaggi personalizzati dal mio post sul blog.
Dai registri, puoi vedere le 3 partizioni create dal passaggio, insieme al passaggio personalizzato per creare la partizione di ripristino.
Da qui, puoi vedere che MSR non viene visualizzato nella gestione del disco, dovrai usare diskpart per mostrare le partizioni.
Demo Diverse unità e variabili di leva
In questa demo, ho una macchina con 4 unità, ma voglio che l'unità di dimensioni più piccole sia l'unità principale su cui viene installato il sistema operativo, non il disco 0. Come lo facciamo? Fondamentalmente sfruttando la variabile Indice disco OSD, possiamo fare in modo che il passaggio del formato formatti qualsiasi disco che desideriamo.
In questa demo, ho scritto un breve script PowerShell che restituisce il numero del disco dell'unità più piccola e l'ho aggiunto al mio TS per impostare la variabile.
(get-disk | Where-Object {$_.size -eq ((get-disk).size | misura -Minimum).Minimum}).Numero
Ora, quando eseguo OSD, prende il disco più piccolo, che sembra essere il disco 1, e lo formatta e lo imposta come volume di avvio.
Dalle immagini, puoi vederlo formattato disco 1, invece di 0, che è esattamente quello che volevo.
Ora per quanto riguarda il resto di quelle unità? A partire da tutte e 4 le unità RAW, formattiamole tutte e manteniamo il disco 1 (non 0) come unità di avvio principale.
In WinPE, ho confermato che tutte le unità sono RAW, non formattate.
Avviando TS, formatta prima il disco 1 (come mostrato sopra), quindi ho un passaggio che formatta il resto in semplici unità a partizione singola come mostrato nelle immagini sottostanti.
All'inizio del passaggio registra lo stato del disco, che ha solo l'unità primaria utilizzata per il sistema operativo partizionata e formattata, ma alla fine del passaggio tutte le unità sono partizionate GPT e formattate NTFS.
In Windows, puoi vedere che tutte le unità sono formattate e l'unità CD è impostata sulla successiva lettera di unità disponibile, ciò è stato ottenuto dal passaggio personalizzato "Formatta altro disco".
script
Script utilizzato per formattare unità aggiuntive
get-disk #Cambia l'unità CD in un'unità A temporanea $cd = Get-WMIObject -Class Win32_CDROMDrive -ErrorAction Stop $driveletter = $cd.drive $DriveInfo = Get-CimInstance -class win32_volume | Where-Object {$_.DriveLetter -eq $driveletter} |Set-CimInstance -Arguments @{DriveLetter='A:'} #Get RAW Disks and Format $RAWDisks = get-disk | Where-Object {$_.PartitionStyle -eq "RAW"} foreach ($Disk in $RAWDisks)#{} { $Size = [math]::Round($Disk.size / 1024 / 1024 / 1024) Initialize-Disk -PartitionStyle GPT -Number $Disk.Number Nuova-partizione -DiskNumber $Disk.Number -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "Storage-$($size)GB" -Confirm:$false } #Setta il CD alla successiva lettera di unità disponibile $AllLetters = 67..90 | ForEach-Object {[char]$_ + ":"} $UsedLetters = get-wmiobject win32_logicaldisk | select -expand deviceid $FreeLetters = $AllLetters | Where-Object {$UsedLetters -notcontains $_} $CDDriveLetter = $FreeLetters | select-object -First 1 $DriveInfo = Get-CimInstance -class win32_volume | Where-Object {$_.DriveLetter -eq "A:"} |Set-CimInstance -Arguments @{DriveLetter=$CDDriveLetter} get-disk
Script (passaggi) utilizzato per creare la partizione di ripristino UEFI: richiede l'impostazione di OSDDiskIndex o il passaggio non riesce.
cmd.exe /c echo select disk %OSDDiskIndex% >> %temp%diskpartUEFI.txt && cmd.exe /c echo list partizione >> %temp%diskpartUEFI.txt && cmd.exe /c echo select partizione 3 >> %temp1FI.txt /diskpartUE riduci desiderato=984 minimo=984 >> %temp%diskpartUEFI.txt && cmd.exe /c echo crea partizione primaria >> %temp%diskpartUEFI.txt && cmd.exe /c echo format quick fs=ntfs label=Recupero >> %temp%diskpartUEFI.txt && exe /c echo set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac" >> %temp%diskpartUEFI.txt && cmd.exe /c echo gpt attributi=0x8000000000000001 >> %temp%diskpartUEFI.txt && echod.exe %temp%diskpartUEFI.txt && cmd.exe /c echo exit >> %temp%diskpartUEFI.txt
BIOS precedente:
cmd.exe /c echo select disk %OSDDiskIndex% >> %temp%diskpartBIOS.txt && cmd.exe /c echo list partizione >> %temp%diskpartBIOS.txt && cmd.exe /c echo select partizione 2 >> %temp%disk&partBIOS.txt riduci desiderato=984 minimo=984 >> %temp%diskpartBIOS.txt && cmd.exe /c echo crea partizione primaria >> %temp%diskpartBIOS.txt && cmd.exe /c echo format quick fs=ntfs label=Ripristino >> %temp%diskpartBIOS.txt && exe /c echo set id 27 >> %temp%diskpartBIOS.txt && cmd.exe /c echo partizione dell'elenco >> %temp%diskpartBIOS.txt && cmd.exe /c echo exit >> %temp%diskpartBIOS.txt
Esegui il passaggio DiskPart
diskpart.exe /s %temp%DiskPartBIOS.txt
Mentre scrivo questo CM2006 è stato appena rilasciato, il che rende il passaggio più versatile se vuoi fare qualche formattazione fantasiosa con gli altri volumi. Onestamente non ho mai avuto motivo di fare più di una partizione sulle unità extra, ma se lo fai, la nuova funzione variabile che hanno aggiunto lo rende facile. Se desideri maggiori informazioni su come sfruttarlo, contattami su Twitter e espanderò questi documenti e sarei interessato a conoscere i tuoi casi d'uso.
Risoluzione dei problemi
_SMSTSBootUEFI Issues
Ho notato su Reddit diverse persone che dicevano che_SMSTSBootUEFI non funziona. Ho rapidamente testato su VM Gen 1, che funzionava ed era impostato su False, e su una VM Gen 2, che funzionava ed era impostato su True. Quindi state tranquilli, funziona (ADK 2004 / CM 2006).
Johan ha avuto alcuni commenti su bug simili con versioni precedenti di MDT / CM Pubblicato sul suo Blog
Sono quindi passato al regno fisico e ho testato un Dell Latitude D830 molto vecchio, creato molto prima che UEFI fosse una cosa. L'OSD ha funzionato bene, è stato etichettato come legacy (_SMSTSBootUEFI = False), se formattato correttamente il disco e terminato con una bella build Windows 10.
Poi sono andato con un modello più recente, ed è qui che penso che siano arrivati i problemi per la gente.
Test: Latitude E7470 in modalità LEGACY
- SecureBoot disabilitato
- ROM legacy abilitata
- BootMode = Legacy
All'avvio, vedo diverse opzioni sia per Legacy che per UEFI.
Avvio OSD dall'opzione USB LEGACY
- _SMSTSBootUEFI = False
- OSD completato con successo
Avvio OSD dall'opzione USB UEFI
- _SMSTSBootUEFI = True
- L'OSD non riesce.
- Applica OS e driver
- Avvia il passaggio "Imposta Windows e ConfigMgr"
- Riavvia, torna con "Nessun dispositivo di avvio trovato", quindi prova ad avviare PXE o avviare su USB.
- Se provo ad avviare dal disco, ottengo "Dispositivo di avvio selezionato non riuscito"
Quindi .. lezione qui, se stai utilizzando un dispositivo più recente e stai cercando di usarlo ancora in modalità Legacy anziché UEFI, assicurati di dirgli di avviarsi da un'opzione Legacy.
Futuro test di emissione
Hai qualcosa che ti sta appendendo? Hit me up su Twitter e se disponibile, vedrò cosa posso fare, e forse ho più elementi da aggiornare qui.
Circa Recast Software
1 organizzazione su 3 che utilizza Microsoft Configuration Manager si affida a Right Click Tools per far emergere le vulnerabilità e rimediare più rapidamente che mai.
Scarica strumenti gratuiti
Richiedi prezzi
Scopri come Right Click Tools sta cambiando il modo in cui vengono gestiti i sistemi.
Aumenta immediatamente la produttività con la nostra Community Edition limitata e gratuita.
Inizia oggi con Right Click Tools: