Personalización del diseño de un dispositivo
Un diseño de dispositivo es el plano técnico para la configuración de disco de un dispositivo del sistema operativo Factory. Describe cómo funciona conjuntamente el contenido de Microsoft, OEM y SV para crear un diseño de disco para una imagen de sistema operativo factory. Los diseños de dispositivo se crean mediante un archivo XML para describir el hardware físico y, a continuación, usar el Kit del sistema de Windows para generar un paquete de diseño de dispositivo.
Para flashar una FFU con DISM, la FFU debe configurarse con un diseño de dispositivo que incluya el devicePath y el tamaño del sector del hardware de destino.
Tipos de diseño de dispositivo
El sistema operativo de fábrica tiene dos tipos de diseños de dispositivo:
Diseño de dispositivo monolítico
Puede crear una imagen de sistema operativo factory mediante los diseños de dispositivo que se incluyen en el Kit de sistema de Windows. Estos diseños se crean y son propiedad de Microsoft y no se pueden modificar.
División del diseño del dispositivo
En el sistema operativo Factory, la propiedad del diseño del dispositivo se puede dividir limpiamente entre Microsoft y los OEM. En este escenario:
- Microsoft especifica los elementos de diseño de dispositivo necesarios, como discos virtuales y particiones. Estos son los componentes de diseño descritos en Diseño de partición.
- Los OEM crean un archivo de diseño de dispositivo OEM (DeviceLayoutOEM.xml) que describe las características físicas de sus discos (como el tamaño del sector) y también pueden agregar particiones adicionales o discos virtuales.
En comparación con los diseños monolíticos de dispositivos, los diseños divididos reducen el tiempo de co-ingeniería al permitir que los OEM y los CSV creen rápidamente diseños para sus dispositivos para que puedan probar el desarrollo del sistema operativo y el inicio del dispositivo.
Cómo funciona el diseño del dispositivo dividido
Un diseño dividido tiene dos partes:
Un diseño de dispositivo que es propiedad y mantiene Microsoft
Este diseño se incluye en el Kit de sistema de Windows y configura los discos virtuales y las particiones necesarios para el sistema operativo Factory.
Un DeviceLayoutOEM.xml creado por OEM
En este archivo se describen las características de la unidad de un dispositivo y también se pueden agregar particiones adicionales si es necesario. Este archivo es complementario al diseño de dispositivo propiedad de Microsoft. Los dos diseños funcionan juntos para crear un diseño de dispositivo adaptado al dispositivo.
Como punto de partida, el DeviceLayoutOEM.xml incluido en la carpeta del
%WSKWorkspaceRoot%\OEMCustomization\DeviceLayout
área de trabajo se rellena previamente con el identificador de la Tienda predeterminado y un tamaño de 512 sectores. Puede usar este archivo para el diseño de disco mediante:- Agregar un DevicePath.
- Asegurarse de que el tamaño del sector coincida con el tamaño del sector del disco.
Estos dos archivos de diseño se combinan durante la creación de imágenes para crear un diseño de dispositivo que sea aplicable al dispositivo.
Consulte Uso de un diseño de dispositivo personalizado en el dispositivo para obtener información sobre cómo agregar un archivo de diseño de dispositivo a la imagen.
Archivos de diseño de dispositivos OEM
El siguiente XML muestra los elementos que componen un archivo DeviceLayoutOEM.xml. Cada elemento describe un aspecto del diseño del dispositivo que puede configurar 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>
Referencia de OEMDeviceLayout
Elementos secundarios OEMDeviceLayout
El <elemento OEMDeviceLayout> es el elemento de nivel superior para los diseños de dispositivo OEM. El único elemento necesario en un diseño oem es 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 | Obligatorio | Tipo | Descripción |
---|---|---|---|
Tiendas | Opcionales | Tiendas | Define un grupo de discos físicos. OEMDeviceLayout solo puede incluir un único <elemento Stores> . |
SectorSize | Obligatorio | integer | Tamaño del sector del disco. Si el tamaño del sector no coincide con el tamaño del sector en el disco, se producirá un error en el parpadeo. |
MergeVersionTag | Opcional | Entero | |
UpdateByOSTag | Opcional, el valor predeterminado es false. | Boolean |
Almacena elementos secundarios
El <elemento Stores> describe un grupo de discos físicos. Los diseños de dispositivo OEM solo pueden tener un solo <elemento Stores> .
<Stores>
<Store>
...
</Store>
</Stores>
Elemento | Descripción |
---|---|
Tienda | <Los elementos secundarios del almacén> definen un disco físico. |
Almacenar elementos secundarios
Los elementos secundarios de <Store> definen los atributos de un disco físico.
<Store>
<Id></Id>
<StoreType></StoreType>
<DevicePath></DevicePath>
<SizeInBytes></SizeInBytes>
<Partitions></Partitions>
</Store>
Elemento | Obligatorio | Tipo | Descripción |
---|---|---|---|
ID | Obligatorio | Cadena (GUID) | Use {5a585bae-900b-41b5-b736-a4cecffc34b4} para configurar un disco que tenga las particiones necesarias de Microsoft. |
StoreType | Opcionales | String | Proporciona una descripción legible de la tienda. No afecta a la creación de imágenes. |
DevicePath | Obligatorio para discos físicos | String | Ruta de acceso del dispositivo UEFI del EFI_BLOCK_IO_PROTOCOL controlar que se asigna al dispositivo de almacenamiento. Los caracteres comodín (? ) son aceptables para el reemplazo de caracteres individuales en la cadena. Ejemplo: <DevicePath>PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)/NVMe(0x1,??-??-??-??-??-??-??-??)</DevicePath> . |
SizeInBytes | Obligatorio | Entero | -Tamaño del disco físico en bytes. -El tamaño debe ser un múltiplo de 131072 (tamaño de bloque FFU) |
Particiones | Opcionales | Particiones | Uno y solo un <elemento Partitions> permitido por <Store>. Las particiones se definen mediante elementos secundarios de <Particiones> |
Particiones de elementos secundarios
Los elementos secundarios de <Las particiones describen las particiones definidas> por OEM para un dispositivo. Las particiones configuradas en DeviceLayoutOEM.xml se agregan a las particiones necesarias definidas por el diseño de dispositivo propiedad de Microsoft.
<Partitions>
<Partition>
...
</Partition>
</Partitions>
Elemento | Obligatorio | Tipo | Descripción |
---|---|---|---|
Partición | Opcionales | Partition | Describe una partición en un disco físico |
Partición de elementos secundarios
Los elementos secundarios de <Partition> describen las propiedades de las particiones en un dispositivo.
<Partition>
<Name></Name>
<Type></Type>
<FileSystem></FileSystem>
<Id></Id>
<TotalBytes></TotalBytes>
<ByteAlignment></ByteAlignment>
</Partition>
Elemento | Obligatorio | Tipo | Descripción |
---|---|---|---|
Nombre | Obligatorio | String | Caracteres máximos: 36 para el sistema de archivos NTFS, 11 para FAT o FAT32 sistema de archivos. El nombre de la partición debe ser único en todas las partes del diseño del dispositivo. |
Tipo | Obligatorio | String | GUID para el tipo de partición GPT Especifique el tipo {ebd0a0a2-b9e5-4433-87c0-68b6b72699c7} básico para las particiones OEM, por lo que se puede acceder a ellas a través de la \\?\Volume{<partition id>}\ ruta de acceso mientras el dispositivo ejecuta el sistema operativo factory. |
FileSystem | Opcionales | String | -Los valores permitidos son {NTFS, FAT, FAT32}. -Si no se especifica, el volumen será una partición RAW sin formato. |
Identificador | Opcionales | String | GUID para el tipo de partición GPT. El identificador de partición debe ser unqiue en todas las partes del diseño del dispositivo. Si no se especifica, se asignará un GUID aleatorio. |
TotalBytes | Opcional | Entero | -Tamaño de partición en bytes. -Partitions debe tener un tamaño para que se ajuste a "SizeInBytes" especificado en su "Store" primario, después de que se haya agregado contenido de personalización del SISTEMA operativo y OEM a la imagen. -El valor debe ser divisible por 131072 (tamaño de bloque FFU). -El valor máximo viene determinado por el tipo FileSystem especificado. |
ByteAlignment | Opcional | Entero | -NO use este campo a menos que lo recomiende el proveedor de silicio. -Invalida el límite de bytes al que debe alinearse el principio de esta partición. |
Diseño de OEM de ejemplo
A continuación se muestra un diseño de dispositivo OEM de ejemplo para un disco físico con dos particiones y un tamaño de sector 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>
Uso de un diseño de dispositivo personalizado en el dispositivo
Después de crear un archivo DeviceLayoutOEM.xml, puede usarlo para configurar el diseño de disco del dispositivo del sistema operativo Factory. Los diseños de dispositivo OEM se habilitan a través del marco de configuración del sistema operativo de fábrica.
Cree un archivo DeviceLayoutOEM.xml que refleje la configuración del disco. Puede usar el archivo DeviceLayoutOEM.xml en el área de trabajo o usar el ejemplo vacío anterior como puntos de partida.
Guarde el archivo en el área de trabajo como
DeviceLayoutOEM.xml
.Siga el proceso de Personalización de la configuración para generar y usar un archivo de personalización de configuración:
- En el archivo de personalización, verá una configuración denominada
splitlayoutfile
. Establezca el valor de esta configuración en la ruta de acceso del archivo.
<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>
- En el archivo de personalización, verá una configuración denominada
Actualice en el
<DeviceLayoutType>
archivo OEMInput.xml:<DeviceLayoutType>GPT_SPACES_SPLIT</DeviceLayoutType>
Al generar la imagen, usará el diseño que ha configurado.