Crear un pen USB booteable UEFI con Windows

Aquí puedes publicar todos los trucos, modificaciones, usos de herramientas y demás para modificar y crear sistems personalizados.
Avatar de Usuario
LATINSERVER
Administrador del Sitio
Mensajes: 111
Registrado: 04 Ago 2017 16:20

Crear un pen USB booteable UEFI con Windows

Mensaje por LATINSERVER » 29 Oct 2017 17:16

Una imagen de Windows "customizado", o bien incluso el Server 2016 que distribuye Microsoft, el install.win ocupa mas de 4 GB (el server 2016 ocupa 5,29 GB).

En este caso tenemos un problema: en un DVD normal no cabe. Y en un PEN, si lo queremos UEFI, debe ser FAT32, y el limite de un archivo (en este caso el install.wim) en FAT32 es 4 GB por lo cual no podremos tampoco crearlo.

Trampa: partir el fichero install.win en trozos inferiores a 4GB mediante la utilidad de Windows DISM.

El código powershell que dejo debajo, lo hace. (por favor, leer los comentarios en el codigo)

Código:

Código: Seleccionar todo

# Tamaño minimo del pen USB stick 5.29GB
# Poner aquí donde tenmos el ISO de W2016

$iso = 'C:\Users\localuser\Downloads\en_windows_server_2016_x64_dvd_9327751.iso'

# Limpiar el USB. Poner en NN en la linea inferior el Numero de Disco del Pen que se ve en DISKPART
# Ser cuidadoso con esto o borraremos un disco que no procede.

$disk=NN

Get-Disk | Where Number -eq $disk | Clear-Disk -RemoveData -Confirm:$true -PassThru

# Convertir a  GPT
if ((Get-Disk | Where Number -eq $disk).PartitionStyle -eq 'RAW') {
    Get-Disk | Where Numer -eq $disk |
    Initialize-Disk -PartitionStyle GPT
} else {
    Get-Disk | Where Number -eq $disk |
    Set-Disk -PartitionStyle GPT
}

# Crear partition primaria y format a FAT32
$volume = Get-Disk | Where Number -eq $disk |
New-Partition -UseMaximumSize -AssignDriveLetter |
Format-Volume -FileSystem FAT32

if (Test-Path -Path "$($volume.DriveLetter):\") {
    # Mount iso
    $miso = Mount-DiskImage -ImagePath $iso -StorageType ISO -PassThru
    # Driver letter
    $dl = ($miso | Get-Volume).DriveLetter
}

if (Test-Path -Path "$($dl):\sources\install.wim") {
    # Copiar ISO excepto el install.wim
    & (Get-Command "$($env:systemroot)\system32\robocopy.exe") @(
        "$($dl):\",
        "$($volume.DriveLetter):\"
        ,'/S','/R:0','/Z','/XF','install.wim','/NP'
    )

    # Trocear el install.wim
    & (Get-Command "$($env:systemroot)\system32\dism.exe") @(
        '/split-image',
        "/imagefile:$($dl):\sources\install.wim",
        "/SWMFile:$($volume.DriveLetter):\sources\install.swm",
        '/FileSize:4096'
    )
}


# Eject USB
(New-Object -comObject Shell.Application).NameSpace(17).
ParseName("$($volume.DriveLetter):").InvokeVerb('Eject')

# Dismount ISO
Dismount-DiskImage -ImagePath $iso
 ! Mensaje de: LATINSERVER
Para descargar debes registrarte, ¿Cómo? dale clic en VER TUTORIAL
Tómate el tiempo de leer el reglamento en: REGLAMENTO DEL FORO
Si alguien pide links de forma externa, NO está permitido extraerlos.
Quien desee links deberá acceder al sitio, registrarse y accederá a los links de descarga.
No hay espacio para los flojos facilistas.
Si te parece bien este foro y deseas donar para mantenerlo al aire, dale clic en QUIERO DONAR
Si deseas descargar como Premium, usa: linksnappy AQUÍ

Responder