Condividi tramite


Personalizzare un layout del dispositivo

Un layout del dispositivo è il progetto per la configurazione del disco di un dispositivo del sistema operativo factory. Descrive il funzionamento del contenuto Microsoft, OEM e SV per creare un layout del disco per un'immagine del sistema operativo factory. I layout dei dispositivi vengono creati usando un file XML per descrivere l'hardware fisico e quindi usando Windows System Kit per generare un pacchetto di layout del dispositivo.

Per eseguire il flashing di un FFU con gestione e manutenzione immagini distribuzione, è necessario configurare il FFU con un layout del dispositivo che include devicePath e dimensioni del settore dell'hardware di destinazione.

Tipi di layout del dispositivo

Il sistema operativo factory ha due tipi di layout dei dispositivi:

  • Layout del dispositivo monolitico

    È possibile creare un'immagine del sistema operativo factory usando i layout del dispositivo inclusi in Windows System Kit. Questi layout vengono creati e di proprietà di Microsoft e non possono essere modificati.

  • Layout del dispositivo diviso

    Nel sistema operativo factory la proprietà del layout del dispositivo può essere suddivisa in modo pulito tra Microsoft e gli OEM. In questo scenario:

    • Microsoft specifica gli elementi di layout del dispositivo necessari, ad esempio dischi virtuali e partizioni. Questi sono i componenti di layout descritti in Layout partizione
    • Gli OEM creano un file di layout del dispositivo OEM (DeviceLayoutOEM.xml) che descrive le caratteristiche fisiche dei dischi (ad esempio le dimensioni del settore) e possono anche aggiungere altre partizioni o dischi virtuali.

Rispetto ai layout monolitici dei dispositivi, i layout suddivisi riducono il tempo di co-progettazione consentendo agli OEM e alle macchine virtuali di creare rapidamente layout per i propri dispositivi in modo che possano testare lo sviluppo e lo sviluppo del sistema operativo.

Funzionamento del layout del dispositivo diviso

Un layout diviso ha due parti:

  • Layout del dispositivo di proprietà e gestito da Microsoft

    Questo layout è incluso in Windows System Kit e configura i dischi virtuali e le partizioni necessari per il sistema operativo factory.

  • Un DeviceLayoutOEM.xml creato dall'OEM

    Questo file descrive le caratteristiche dell'unità di un dispositivo e può anche aggiungere altre partizioni, se necessario. Questo file è supplementare al layout del dispositivo di proprietà di Microsoft. I due layout interagiscono per creare un layout del dispositivo personalizzato per il dispositivo.

    Come punto di partenza, il DeviceLayoutOEM.xml incluso nella cartella dell'area %WSKWorkspaceRoot%\OEMCustomization\DeviceLayout di lavoro viene prepopolato con l'ID dello Store predefinito e le dimensioni del settore 512. È possibile usare questo file per il layout del disco:

    • Aggiunta di un Oggetto DevicePath.
    • Verifica che le dimensioni del settore corrispondano alle dimensioni del settore del disco.

Questi due file di layout vengono combinati durante la creazione dell'immagine per creare un layout del dispositivo applicabile al dispositivo.

Vedi Usare un layout di dispositivo personalizzato nel dispositivo per informazioni su come aggiungere un file di layout del dispositivo all'immagine.

File di layout dei dispositivi OEM

Il codice XML seguente mostra gli elementi che costituiscono un file di DeviceLayoutOEM.xml. Ogni elemento descrive un aspetto del layout del dispositivo configurabile da un OEM.

<?xml version="1.0" encoding="utf-8"?>
<OEMDeviceLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate/v2">
    <Stores>
        <Store>
            <Id></Id>
            <StoreType></StoreType>
            <DevicePath></DevicePath>
            <SizeInBytes></SizeInBytes>
            <Partitions>
                <Partition>
                    <Name></Name>
                    <Type></Type>
                    <FileSystem></FileSystem>
                    <Id></Id>
                    <TotalBytes></TotalBytes>    
                    <ByteAlignment></ByteAlignment>
                </Partition>
            </Partitions>
        </Store>
    </Stores>
    <SectorSize></SectorSize>
    <MergeVersionTag></MergeVersionTag>
    <UpdateByOSTag></UpdateByOSTag>
</OEMDeviceLayout>

Informazioni di riferimento su OEMDeviceLayout

Elementi figlio OEMDeviceLayout

L'elemento <OEMDeviceLayout> è l'elemento di primo livello per i layout dei dispositivi OEM. L'unico elemento obbligatorio in un layout OEM è SectorSize.

<OEMDeviceLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate/v2">
    <Stores></Stores>
    <SectorSize></SectorSize>
    <MergeVersionTag></MergeVersionTag>
    <UpdateByOSTag></UpdateByOSTag>
</OEMDeviceLayout>
Elemento Obbligatoria Tipo Descrizione
Negozi Facoltativo Negozi Definisce un gruppo di dischi fisici. OEMDeviceLayout può includere solo un singolo <elemento Stores> .
SectorSize Necessario numero intero Dimensioni del settore del disco. Se le dimensioni del settore non corrispondono alle dimensioni del settore sul disco, il flashing avrà esito negativo.
MergeVersionTag Facoltativo Intero
UpdateByOSTag Facoltativo, il valore predefinito è false Boolean

Archivia gli elementi figlio

L'elemento <Stores> descrive un gruppo di dischi fisici. I layout dei dispositivi OEM possono avere solo un singolo <elemento Stores> .

<Stores>
    <Store>
    ...
    </Store>
</Stores>
Elemento Descrizione
Archivio <Gli elementi figlio di Store> definiscono un disco fisico.

Archiviare gli elementi figlio

Gli elementi figlio di <Store> definiscono gli attributi di un disco fisico.

<Store>
    <Id></Id>
    <StoreType></StoreType>
    <DevicePath></DevicePath>
    <SizeInBytes></SizeInBytes>
    <Partitions></Partitions>
</Store>
Elemento Obbligatoria Tipo Descrizione
ID Obbligatoria Stringa (GUID) Usare {5a585bae-900b-41b5-b736-a4cecffc34b4} per configurare un disco con le partizioni richieste da Microsoft.
StoreType Facoltativo String Fornisce una descrizione leggibile dell'archivio. Non influisce sull'immagine.
DevicePath Obbligatorio per i dischi fisici string Percorso dispositivo UEFI dell'handle di EFI_BLOCK_IO_PROTOCOL mappato al dispositivo di archiviazione. I caratteri jolly (?) sono accettabili per la sostituzione di singoli caratteri nella stringa. Esempio: <DevicePath>PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)/NVMe(0x1,??-??-??-??-??-??-??-??)</DevicePath>.
SizeInBytes Obbligatoria Intero -Dimensioni del disco fisico in byte.
-Le dimensioni devono essere un multiplo di 131072 (FFU Block Size)
Partizioni Facoltativo Partizioni Uno e un <solo elemento Partitions consentito> per Ogni <Store>. Le partizioni sono definite dagli elementi figlio delle <partizioni>

Partiziona gli elementi figlio

Gli elementi figlio delle <partizioni> descrivono le partizioni definite dall'OEM per un dispositivo. Le partizioni configurate in DeviceLayoutOEM.xml sono aggiunte alle partizioni necessarie definite dal layout del dispositivo di proprietà di Microsoft.

<Partitions>
    <Partition>
    ...
    </Partition>
</Partitions>
Elemento Obbligatoria Tipo Descrizione
Partition Facoltativo Partition Descrive una partizione in un disco fisico

Partizionare gli elementi figlio

Gli elementi figlio da <partizionare> descrivono le proprietà delle partizioni in un dispositivo.

<Partition>
    <Name></Name>
    <Type></Type>
    <FileSystem></FileSystem>
    <Id></Id>
    <TotalBytes></TotalBytes>    
    <ByteAlignment></ByteAlignment>
</Partition>
Elemento Obbligatoria Tipo Descrizione
Nome Necessario string Caratteri massimi: 36 per il file system NTFS, 11 per il file system FAT o FAT32. Il nome della partizione deve essere univoco in tutte le parti del layout del dispositivo.
Tipo Necessario string GUID per il tipo di partizione GPT
Specificare il tipo di {ebd0a0a2-b9e5-4433-87c0-68b6b72699c7} base per le partizioni OEM, in modo che sia possibile accedervi tramite il \\?\Volume{<partition id>}\ percorso mentre il dispositivo esegue il sistema operativo factory
FileSystem Facoltativo String -I valori consentiti sono {NTFS, FAT, FAT32}.
-Se non specificato, il volume sarà una partizione RAW non formattata
ID Facoltativo String GUID per il tipo di partizione GPT. L'ID partizione deve essere unqiue in tutte le parti del layout del dispositivo. Se non specificato, verrà assegnato un GUID casuale.
TotalBytes Facoltativo Intero -Dimensioni della partizione in byte.
-Le partizioni devono essere ridimensionate in modo che possa rientrare in "SizeInBytes" specificato nel relativo "Store" padre, dopo l'aggiunta del contenuto di personalizzazione del sistema operativo e OEM all'immagine.
-Il valore deve essere divisibile per 131072 (FFU Block Size).
-Il valore massimo è determinato dal tipo filesystem specificato.
ByteAlignment Facoltativo Intero -NON usare questo campo a meno che non sia consigliato dal fornitore di siliconi.
-Esegue l'override del limite di byte in cui deve essere allineata l'inizio di questa partizione.

Layout OEM di esempio

Di seguito è riportato un layout di dispositivo OEM di esempio per un disco fisico con due partizioni e una dimensione di settore 512:

<?xml version="1.0" encoding="utf-8"?>
<OEMDeviceLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate/v2">
    <Stores>
        <Store>
            <Id>{5a585bae-900b-41b5-b736-a4cecffc34b4}</Id>
            <StoreType>Default</StoreType>
            <DevicePath>VenHw(8D90D477-39A3-4A38-AB9E-586FF69ED051)</DevicePath>
            <SizeInBytes>4294967296</SizeInBytes>            
            <Partitions>
                <Partition>
                    <Name>OEM1</Name>
                    <Type>{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}</Type>
                    <FileSystem>FAT32</FileSystem>
                    <TotalBytes>134217728</TotalBytes>
                </Partition>
                <Partition>
                    <Name>OEM2</Name>
                    <Type>{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}</Type>
                    <FileSystem>FAT32</FileSystem>
                    <TotalBytes>67108864</TotalBytes>
                </Partition>
            </Partitions>
        </Store>
    </Stores>
    <SectorSize>512</SectorSize>
    <MergeVersionTag>1</MergeVersionTag>
</OEMDeviceLayout>

Usare un layout di dispositivo personalizzato nel dispositivo

Dopo aver creato un file di DeviceLayoutOEM.xml, è possibile usarlo per configurare il layout del disco del dispositivo del sistema operativo factory. I layout dei dispositivi OEM vengono abilitati tramite il framework delle impostazioni del sistema operativo factory.

  1. Creare un file DeviceLayoutOEM.xml che rifletta la configurazione del disco. È possibile usare il file DeviceLayoutOEM.xml nell'area di lavoro oppure usare l'esempio vuoto precedente come punti di partenza.

  2. Salvare il file nell'area di lavoro come DeviceLayoutOEM.xml.

  3. Seguire la procedura descritta in Personalizzare le impostazioni per generare e usare un file di personalizzazione delle impostazioni:

    • Nel file di personalizzazione verrà visualizzata un'impostazione denominata splitlayoutfile. Impostare il valore di questa impostazione sul percorso del file.
    <Customization Name="splitlayoutfile">
        <ReadOnlyMetadata Description="oem/sv-owned split layout file. (file must be named DeviceLayoutOEM.xml)" Type="FILE" DefaultValue="" SupportedExtensions="xml" />
        <Value>C:\Workspace\OEMCustomization\DeviceLayout\DeviceLayoutOEM.xml</Value>
    </Customization>
    
  4. Aggiornare nel <DeviceLayoutType> file OEMInput.xml:

    <DeviceLayoutType>GPT_SPACES_SPLIT</DeviceLayoutType>
    
  5. Quando si genera l'immagine, verrà usato il layout configurato.