Anuncio

Colapsar
No hay anuncio todavía.

TIP: crear un pen USB booteable UEFI con Windows (cuando windows ocupa más del tamaño de un DVD). Ej: Server 2016

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • TIP: crear un pen USB booteable UEFI con Windows (cuando windows ocupa más del tamaño de un DVD). Ej: Server 2016

    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:
    # Tamaño minimo del pen USB stick 5.29GB
    # Poner aquí donde tenemos 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

  • #2
    Es importante que no perdáis esto de vista: cada vez las imágenes ocupan mas.

    Comentario


    • #3
      Hola Jm

      he intentado el script....mira que curioso:

      Number Friendly Name Serial Number HealthStatus OperationalStatus Total Size Partition
      Style
      ------ ------------- ------------- ------------ ----------------- ---------- ----------
      3 SanDisk Ultra 4C531001340608115562 Healthy Online 57.84 GB GPT
      Format-Volume : Size Not Supported
      Activity ID: {3efd4550-3875-4d24-b46a-8847576c575e}
      At D:\aa\aa.ps1:25 char:1
      + Format-Volume -FileSystem FAT32
      + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo : NotSpecified: (StorageWMI:ROOT/Microsoft/...age/MSFT_Volume) [Format-Volume], CimException
      + FullyQualifiedErrorId : StorageWMI 4097,Format-Volume

      You cannot call a method on a null-valued expression.
      At D:\aa\aa.ps1:54 char:14
      + ParseName("$($volume.DriveLetter):").InvokeVerb('E ject')
      + ~~~~~~~~~~~~~~~~~~~
      + CategoryInfo : InvalidOperation: ( [], RuntimeException
      + FullyQualifiedErrorId : InvokeMethodOnNull


      subo una imagen que es mejor
      Haga clic en la imagen para ver una versión más grande

Nombre:	aaa.PNG
Visitas:	1146
Size:	14,5 KB
ID:	35207
      Editado por última vez por barnastudios; https://jmtella.com/foro/member/59-barnastudios en , 20:35:12.

      Comentario


      • #4
        Ejecuta UNA a UNA y dime en cual falla...

        Comentario


        • #5
          Haga clic en la imagen para ver una versión más grande

Nombre:	bb.PNG
Visitas:	1143
Size:	19,8 KB
ID:	35216 en esta:

          $volume = Get-Disk | Where Number -eq $disk |
          New-Partition -UseMaximumSize -AssignDriveLetter |
          Format-Volume -FileSystem FAT32
          Editado por última vez por barnastudios; https://jmtella.com/foro/member/59-barnastudios en , 20:48:58.

          Comentario


          • #6
            Eso de tamaño no soportado.....raro
            Editado por última vez por barnastudios; https://jmtella.com/foro/member/59-barnastudios en , 20:51:53.

            Comentario


            • #7
              Originalmente publicado por barnastudios Ver Mensaje
              Eso de tamaño no soportado.....raro
              Efectivamente, ya que se usa el parámetro
              -UseMaximumSize por tanto usa el que le informa la unidad y luego da error... Ese pen no me gusta... (bueno,,si es SanDisk no me extraña...)

              Comentario


              • #8
                oki. Mañana pruebo con otro y te cuento

                Comentario


                • #9
                  Perdón JM por no darte respuesta aún. Es que no he probado con un nuevo pendrive todavía

                  Estoy liado con la red de casa (cableando, configurando y todo eso) y poco tiempo tengo, de momento.

                  Un saludo

                  Comentario


                  • #10
                    Originalmente publicado por barnastudios Ver Mensaje
                    Perdón JM por no darte respuesta aún. Es que no he probado con un nuevo pendrive todavía

                    Estoy liado con la red de casa (cableando, configurando y todo eso) y poco tiempo tengo, de momento.

                    Un saludo
                    Me he cansado de hacerlo...funciona. Hubo con un pen mindundi que me paso lo mismo, lo tiré

                    Comentario


                    • #11
                      Hola!!
                      Estoy intentando crear un pen y parece que copia todos los ficheros, menos el que tiene que trocear.
                      El resultado es este:

                      ------------------------------------------------------------------------------

                      Total Copiado OmitidoNo coincidencia ERROR Extras
                      Director.: 85 84 1 0 0 1
                      Archivos: 899 898 1 0 0 0
                      Bytes: 4.210 g 729.04 m 3.498 g 0 0 0
                      Tiempo: 0:01:23 0:01:13 0:00:00 0:00:09


                      Velocidad: 10331815 Bytes/s
                      Velocidad: 591.191 Megabytes/min
                      Finalizado: jueves, 13 de febrero de 2020 20:10:33


                      Herramienta Administración y mantenimiento de imágenes de implementación
                      Versión: 10.0.19041.1


                      Error: 87

                      El parámetro no es correcto.

                      El archivo de registro de DISM se encuentra en C:\WINDOWS\Logs\DISM\dism.log

                      Comentario


                      • #12
                        Originalmente publicado por Waldin Ver Mensaje
                        Hola!!
                        Estoy intentando crear un pen y parece que copia todos los ficheros, menos el que tiene que trocear.
                        El resultado es este:

                        ------------------------------------------------------------------------------

                        Total Copiado OmitidoNo coincidencia ERROR Extras
                        Director.: 85 84 1 0 0 1
                        Archivos: 899 898 1 0 0 0
                        Bytes: 4.210 g 729.04 m 3.498 g 0 0 0
                        Tiempo: 0:01:23 0:01:13 0:00:00 0:00:09


                        Velocidad: 10331815 Bytes/s
                        Velocidad: 591.191 Megabytes/min
                        Finalizado: jueves, 13 de febrero de 2020 20:10:33


                        Herramienta Administración y mantenimiento de imágenes de implementación
                        Versión: 10.0.19041.1


                        Error: 87

                        El parámetro no es correcto.

                        El archivo de registro de DISM se encuentra en C:\WINDOWS\Logs\DISM\dism.log
                        Tendria que actualizar el script ya que es muy dependiente de la version de powershell... y este ha evolucionado...

                        En cualquie caso, parte el install.wim a tamaño 4096 con el dism ejecutado en modo administrado a pelo en una consola cmd, de acuerdo a esto:

                        https://docs.microsoft.com/en-us/win...-multiple-dvds

                        Comentario


                        • #13
                          Gracias. Probaré y ya comentaré resultados

                          Comentario


                          • #14
                            El comando para trocearlo?
                            Dism /Split-Image /ImageFile:E:\sources\install.wim /SWMFile:C:\sources\install.swm /FileSize:4096


                            Otro sistema.:

                            Si formateamos en dos particiones el USB (Fat32 /NTFS)

                            Averiguar nº disco USB
                            diskpart
                            list disk (ejemplo 1)



                            # Reemplace con numero de disco USB obtenido anteriormente en select disk (ejemplo 1)

                            diskpart.dat (archivo con los datos siguientes)

                            select disk 1
                            clean
                            convert gpt
                            create partition primary size=1000
                            create partition primary
                            select partition 1
                            format fs=fat32 quick
                            assign letter=Q
                            active
                            select partition 2
                            format fs=ntfs quick
                            assign letter=R
                            exit


                            usbcreate.bat (archivo con los datos siguientes)

                            c:
                            cd \usbcreate
                            rd "baseiso" /s /q
                            md "baseiso"
                            xcopy E:\*.* "c:\usbcreate\baseiso" /s /y
                            diskpart /s "c:\usbcreate\diskpart.dat"
                            label Q:USB-FAT32
                            label R:USB-NTFS
                            xcopy "c:\usbcreate\install.wim" "c:\usbcreate\baseiso\sources" /y
                            xcopy "c:\usbcreate\baseiso\*.*" R:\ /s /y
                            rd "c:\usbcreate\baseiso\sources" /s /q
                            md "c:\usbcreate\baseiso\sources"
                            xcopy "c:\usbcreate\baseiso\*.*" Q:\ /s /y /e
                            xcopy "E:\sources\boot.wim" "Q:\sources" /y


                            Notas.:
                            E: (ruta disco montado)
                            Q y R letras libres

                            Ejecutar usbcreate.bat (con derechos Adm)

                            Comentario


                            • #15
                              Originalmente publicado por jmtella Ver Mensaje
                              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:
                              # Tamaño minimo del pen USB stick 5.29GB
                              # Poner aquí donde tenemos 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
                              Hola he probado el script y salvo formatear la unidad no me hace nada más.

                              Necesito crear un USB de w10 booteable que esté en fat32 para que lo pueda leer un Mac y poder hacer una instalación limpia. No quiero un dual system. Hasta ahora lo hacía con rufus pero este detecta que la iso es grande y al seleccionar la iso y mbr me pone por defecto nfts...

                              Comentario

                              Trabajando...
                              X