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.
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.
Enregistrez le fichier dans votre espace de travail en tant que
DeviceLayoutOEM.xml
.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>
- Dans votre fichier de personnalisation, vous verrez un paramètre appelé
Mettez à jour dans
<DeviceLayoutType>
votre fichier OEMInput.xml :<DeviceLayoutType>GPT_SPACES_SPLIT</DeviceLayoutType>
Lorsque vous générez votre image, elle utilise la disposition que vous avez configurée.