Partager via


Personnaliser une disposition d’appareil

Une disposition d’appareil est le blueprint de la configuration de disque d’un appareil de système d’exploitation d’usine. Il décrit comment le contenu Microsoft, OEM et SV fonctionne ensemble pour créer une disposition de disque pour une image de système d’exploitation d’usine. Les dispositions d’appareil sont créées à l’aide d’un fichier XML pour décrire le matériel physique, puis à l’aide du Kit système Windows pour générer un package de disposition d’appareil.

Pour flasher un FFU avec DISM, le FFU doit être configuré avec une disposition d’appareil qui inclut le DevicePath et la taille de secteur de votre matériel cible.

Types de disposition d’appareil

Le système d’exploitation d’usine a deux types de dispositions d’appareil :

  • Disposition d’appareil monolithique

    Vous pouvez créer une image de système d’exploitation d’usine à l’aide des dispositions d’appareil incluses dans le Kit système Windows. Ces dispositions sont créées et détenues par Microsoft et ne peuvent pas être modifiées.

  • Fractionner la disposition des appareils

    Dans le système d’exploitation d’usine, la propriété de la disposition des appareils peut être répartie entre Microsoft et les fabricants OEM. Dans ce scénario :

    • Microsoft spécifie les éléments de disposition d’appareil requis, tels que les disques virtuels et les partitions. Il s’agit des composants de disposition décrits dans Disposition de partition
    • Les fabricants OEM créent un fichier de disposition d’appareil OEM (DeviceLayoutOEM.xml) qui décrit les caractéristiques physiques de leurs disques (telles que la taille du secteur) et peuvent également ajouter des partitions ou des disques virtuels supplémentaires.

Par rapport aux dispositions d’appareils monolithiques, les dispositions fractionnées réduisent le temps de co-ingénierie en permettant aux fabricants OEM et aux éditeurs de logiciels de créer rapidement des dispositions pour leurs appareils afin qu’ils puissent tester la mise en place d’appareils et le développement du système d’exploitation.

Fonctionnement de la disposition de l’appareil fractionné

Une disposition fractionnée comprend deux parties :

  • Disposition d’appareil détenue et gérée par Microsoft

    Cette disposition est incluse dans le Kit système Windows et configure les disques virtuels et les partitions requis pour le système d’exploitation d’usine.

  • Un DeviceLayoutOEM.xml créé par OEM

    Ce fichier décrit les caractéristiques du lecteur d’un appareil et peut également ajouter des partitions supplémentaires si nécessaire. Ce fichier est complémentaire à la disposition des appareils appartenant à Microsoft. Les deux dispositions fonctionnent ensemble pour créer une disposition d’appareil adaptée à votre appareil.

    Comme point de départ, le DeviceLayoutOEM.xml inclus dans le dossier de votre espace de %WSKWorkspaceRoot%\OEMCustomization\DeviceLayout travail est prérempli avec l’ID de Magasin par défaut et une taille de secteur 512. Vous pouvez utiliser ce fichier pour la disposition de votre disque en procédant comme suit :

    • Ajout d’un DevicePath.
    • Vérifier que la taille de secteur correspond à la taille de secteur de votre disque.

Ces deux fichiers de disposition sont combinés lors de la création de l’image pour créer une disposition d’appareil applicable à votre appareil.

Consultez Utiliser une disposition d’appareil personnalisée sur votre appareil pour savoir comment ajouter un fichier de disposition d’appareil à votre image.

Fichiers de disposition d’appareil OEM

Le code XML suivant montre les éléments qui composent un fichier DeviceLayoutOEM.xml. Chaque élément décrit un aspect de la disposition de l’appareil configurable par 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>

Référence OEMDeviceLayout

Éléments enfants OEMDeviceLayout

L’élément <OEMDeviceLayout> est l’élément de niveau supérieur pour les dispositions d’appareils OEM. Le seul élément requis dans une disposition OEM est 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>
Élément Obligatoire Type Description
Stores Facultatif Stores Définit un groupe de disques physiques. OEMDeviceLayout ne peut inclure qu’un seul <élément Stores> .
SectorSize Obligatoire entier Taille du secteur du disque. Si la taille du secteur ne correspond pas à la taille de secteur sur le disque, le clignotement échoue.
MergeVersionTag Facultatif Integer
UpdateByOSTag Facultatif, la valeur par défaut est false Booléen

Stocke les éléments enfants

L’élément <Stores> décrit un groupe de disques physiques. Les dispositions d’appareils OEM ne peuvent avoir qu’un seul <élément Stores> .

<Stores>
    <Store>
    ...
    </Store>
</Stores>
Élément Description
Magasin <Les éléments enfants du Magasin définissent> un disque physique.

Stocker les éléments enfants

Les éléments enfants du <Store définissent> les attributs d’un disque physique.

<Store>
    <Id></Id>
    <StoreType></StoreType>
    <DevicePath></DevicePath>
    <SizeInBytes></SizeInBytes>
    <Partitions></Partitions>
</Store>
Élément Obligatoire Type Description
id Obligatoire Chaîne (GUID) Utilisez {5a585bae-900b-41b5-b736-a4cecffc34b4} pour configurer un disque contenant les partitions requises par Microsoft.
StoreType Facultatif String Fournit une description lisible du magasin. N’a pas d’impact sur l’imagerie.
DevicePath Obligatoire pour les disques physiques String Chemin d’accès de l’appareil UEFI du handle EFI_BLOCK_IO_PROTOCOL mappé au périphérique de stockage. Les caractères génériques (?) sont acceptables pour le remplacement de caractères individuels dans la chaîne. Exemple : <DevicePath>PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)/NVMe(0x1,??-??-??-??-??-??-??-??)</DevicePath>.
SizeInBytes Obligatoire Integer - Taille du disque physique en octets.
- La taille doit être un multiple de 131072 (taille de bloc FFU)
Partitions Facultatif Partitions Un seul <élément Partitions> autorisé par <Store>. Les partitions sont définies par les éléments enfants de <Partitions>

Partitionne les éléments enfants

Les éléments enfants des <partitions décrivent les> partitions définies par l’OEM pour un appareil. Les partitions configurées dans DeviceLayoutOEM.xml s’ajoutent aux partitions requises définies par la disposition des appareils appartenant à Microsoft.

<Partitions>
    <Partition>
    ...
    </Partition>
</Partitions>
Élément Obligatoire Type Description
Partition Facultatif Partition Décrit une partition sur un disque physique

Partitionner les éléments enfants

Les éléments enfants de <partition> décrivent les propriétés des partitions sur un appareil.

<Partition>
    <Name></Name>
    <Type></Type>
    <FileSystem></FileSystem>
    <Id></Id>
    <TotalBytes></TotalBytes>    
    <ByteAlignment></ByteAlignment>
</Partition>
Élément Obligatoire Type Description
Nom Obligatoire String Nombre maximal de caractères : 36 pour le système de fichiers NTFS, 11 pour le système de fichiers FAT ou FAT32. Le nom de la partition doit être unique dans toutes les parties de la disposition de votre appareil.
Type Obligatoire String GUID pour le type de partition GPT
Spécifiez le type {ebd0a0a2-b9e5-4433-87c0-68b6b72699c7} de base pour les partitions OEM, afin qu’elles soient accessibles via le \\?\Volume{<partition id>}\ chemin d’accès pendant que l’appareil exécute le système d’exploitation d’usine
FileSystem Facultatif String - Les valeurs autorisées sont {NTFS, FAT, FAT32}.
-S’il n’est pas spécifié, le volume est une partition RAW non mise en forme
Id Facultatif String GUID pour le type de partition GPT. L’ID de partition doit être unqiue dans toutes les parties de la disposition de votre appareil. S’il n’est pas spécifié, un GUID aléatoire est affecté.
TotalBytes Facultatif Integer -Taille de la partition en octets.
-Les partitions doivent être dimensionnées de telle sorte qu’elles puissent tenir dans la valeur « SizeInBytes » spécifiée dans son « Store » parent, une fois que le contenu de personnalisation du système d’exploitation et de l’OEM a été ajouté à l’image.
-La valeur doit être divisible par 131072 (taille de bloc FFU).
-La valeur maximale est déterminée par le type FileSystem spécifié.
ByteAlignment Facultatif Integer -NE PAS utiliser ce champ, sauf si le fournisseur de silicium l’recommande.
-Remplace la limite d’octets sur laquelle le début de cette partition doit s’aligner.

Exemple de disposition OEM

Voici un exemple de disposition d’appareil OEM pour un disque physique avec deux partitions et une taille de secteur de 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>

Utiliser une disposition d’appareil personnalisée sur votre appareil

Une fois que vous avez créé un fichier DeviceLayoutOEM.xml, vous pouvez l’utiliser pour configurer la disposition de disque de votre appareil de système d’exploitation d’usine. Les dispositions des appareils OEM sont activées via l’infrastructure des paramètres du système d’exploitation d’usine.

  1. Créez un fichier DeviceLayoutOEM.xml qui reflète la configuration de votre disque. Vous pouvez utiliser le fichier DeviceLayoutOEM.xml dans votre espace de travail ou utiliser l’exemple vide ci-dessus comme point de départ.

  2. Enregistrez le fichier dans votre espace de travail en tant que DeviceLayoutOEM.xml.

  3. Suivez le processus dans Personnaliser les paramètres pour générer et utiliser un fichier de personnalisation des paramètres :

    • Dans votre fichier de personnalisation, vous verrez un paramètre appelé splitlayoutfile. Définissez la valeur de ce paramètre sur le chemin d’accès de votre fichier.
    <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. Mettez à jour dans <DeviceLayoutType> votre fichier OEMInput.xml :

    <DeviceLayoutType>GPT_SPACES_SPLIT</DeviceLayoutType>
    
  5. Lorsque vous générez votre image, elle utilise la disposition que vous avez configurée.