Compartir a través de


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.

  1. 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.

  2. Guarde el archivo en el área de trabajo como DeviceLayoutOEM.xml.

  3. 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>
    
  4. Actualice en el <DeviceLayoutType> archivo OEMInput.xml:

    <DeviceLayoutType>GPT_SPACES_SPLIT</DeviceLayoutType>
    
  5. Al generar la imagen, usará el diseño que ha configurado.