¿Cómo hacer que Windows 7 USB flash instale medios desde Linux?


105

Yo tengo:

  • Imagen ISO de los medios de instalación de Windows 7
  • Unidad flash USB de 4 GB
  • sin unidad de DVD
  • Linux instalado

Si pudieras hacer todas estas tareas desde tu escritorio de Linux, estarás sacudiendo la casa. Creo que la parte más difícil sería jugar con todas las operaciones que realiza Diskpart de Windows. Hacer la partición marcada como 'activa' y 'arranque', 'primaria', etc.
p.campbell

3
Creo que GParted ( gparted.sourceforge.net ) puede manejar todos los indicadores de partición muy bien. Ver, por ejemplo, gparted.sourceforge.net/screenshots.php . Y no lo he probado, pero parece que rsync puede sustituir a robocopy en esa lista de verificación.
Matthew Flaschen

1
Hay muchas respuestas detalladas a la misma pregunta en askubuntu.com/q/289559/135671
erik

Respuestas:


181

OK, después de probar sin éxito todos los métodos mencionados aquí, finalmente lo puse a funcionar. Básicamente, el paso que faltaba era escribir un sector de arranque adecuado en la memoria USB, que se puede hacer desde Linux con ms-syso lilo -M. Esto funciona con la versión comercial de Windows 7.

Aquí está el resumen completo nuevamente:

Instale ms-sys: si no está en sus repositorios, consígalo aquí . O, alternativamente, asegúrese de que lilo esté instalado (¡pero no ejecute el paso liloconfig en su caja local si, por ejemplo, Grub está instalado allí!)

Verifique qué dispositivo tiene asignado su dispositivo USB; aquí asumiremos que es /dev/sdb. Elimine todas las particiones, cree una nueva que ocupe todo el espacio, configure el tipo en NTFS (7) y recuerde configurarlo como de arranque:

# cfdisk /dev/sdb   o   fdisk /dev/sdb ( tipo de partición 7 y bandera de arranque )

Cree un sistema de archivos NTFS:

# mkfs.ntfs -f /dev/sdb1

Escriba Windows 7 MBR en la memoria USB (también funciona para Windows 8), varias opciones aquí:

  1. # ms-sys -7 /dev/sdb
  2. o (por ejemplo, en las nuevas instalaciones de Ubuntu) sudo lilo -M /dev/sdb mbr( información )
  3. o (si está instalado syslinux), puede ejecutar sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb

Montar medios ISO y USB:

# mount -o loop win7.iso / mnt / iso
# mount / dev / sdb1 / mnt / usb

Copia sobre todos los archivos:

# cp -r /mnt/iso/* /mnt/usb/   ... o utilice el explorador de archivos GUI estándar de su sistema

Llame syncpara asegurarse de que todos los archivos estén escritos.

Abra gparted, seleccione la unidad USB, haga clic derecho en el sistema de archivos, luego haga clic en "Administrar banderas". Marque la casilla de verificación de inicio, luego cierre.

...y tu estas listo.

Después de todo eso, es probable que desee hacer una copia de seguridad de sus medios USB para realizar más instalaciones y deshacerse del archivo ISO ... Simplemente use dd: # dd if=/dev/sdb of=win7.img

Tenga en cuenta que esto copia todo el dispositivo. - que suele ser (mucho) más grande que los archivos copiados. Entonces, en cambio, propongo

# dd count=[(size of the ISO file in MB plus some extra MB for boot block) divided by default dd blocksize] if=/dev/sdb of=win7.img

Así, por ejemplo, con 8 M bytes adicionales:

# dd count=$(((`stat -c '%s' win7.iso` + 8*1024*1024) / 512)) if=/dev/sdb of=win7.img status=progress

Como siempre, verifique los nombres de los dispositivos con mucho cuidado al trabajar con ellos dd.

El método de creación de un USB de arranque presentado anteriormente también funciona con el instalador Win10 iso. Lo probé ejecutando Ubuntu 16.04 copiando Win10_1703_SingleLang_English_x64.iso (tamaño 4,241,291,264 bytes) en una memoria USB de 8 GB, solo en arranque no UEFI [no seguro]. Después de la ejecución informes dd: 8300156 + 0 registros en 8300156 + 0 registros 4249679872 bytes (4.2 GB, 4.0 GiB) copiados, 412.807 s, 10.3 MB / s

Invierta si / o la próxima vez que quiera poner el instalador de Windows 7 en USB.


1
Sería bueno mencionar el tipo de partición numérica para usar también en cfdisk (7, 86, 87?)
Johan Dahlin

55
Funcionó con el tipo 7
Ropez

3
Solo una nota: si su sistema de archivos ntfs da errores de permisos extraños cuando escribe en él, incluso como root, asegúrese de haber instalado ntfs-3g.
Jeremy Salwen

1
Intenté esto directamente en un disco duro, y recibí el error "Windows no puede acceder a las fuentes de instalación" una vez que lo inicié.
Jeremy Salwen

44
llame syncdespués de la copia para asegurarse de que todos los archivos estén escritos
Nicolas Dusart

13

Puede lograr esto con dd, si su PC admite UEFI y, por extensión, discos GPT.

Abra una terminal, necesitará encontrar qué dispositivo es su pendrive. Si tiene la unidad montada, puede encontrar el nombre del dispositivo escribiendo "mount" y mirando su entrada. Algo como lo siguiente:

/dev/sdb1 on /media/USBDISK type vfat (rw,nosuid,nodev,uhelper=hal,uid=1000,utf8,shortname=mixed)

En este caso, la primera parte de / dev / sdb se monta en / media / USBDISK. Abra un shell raíz y desmonte la unidad.

umount /dev/sdb1

Vaya al directorio donde está almacenado su ISO en un shell raíz y escriba lo siguiente: (Reemplace windows7.iso con lo que se llame iso, y / dev / sdb con la identificación del dispositivo de su dispositivo USB).

dd if=windows7.iso of=/dev/sdb

Si su placa base admite el arranque desde un pendrive, debería poder arrancarla. Esto hará que el instalador en el pendrive no el sistema operativo en sí.


21
No funciona para mi

1
¿Su placa base admite el arranque desde USB? Ese será el factor decisivo final de si este enfoque funcionará o no.
TrueDuality

11
Tampoco funciona para mí y mi máquina admite el arranque USB bien. Tal vez este enfoque pueda funcionar en máquinas que pueden iniciar el almacenamiento USB de estilo DVD, pero la mayoría de las BIOS asumen un diseño de estilo HDD en USB (lo que significa MBR de 512 bytes con código de inicio). Una cosa que vale la pena mencionar: las imágenes de CD / DVD de Fedora, a diferencia de W7, de hecho tienen ese MBR con código de arranque y tabla de particiones, lo que las hace adecuadas para el arranque HDD / USB también.
Tronic

99
Esto requiere que su placa base pueda iniciar USB-CDROM, no solo USB-HDD
TrueDuality

12
A esta solución le falta el paso de instalación de MBR y, por lo general, no funcionará a menos que ya esté mágicamente. La solución de @Gunthers está completa.
stolsvik

5

La sugerencia de PCambell es buena pero también querrás borrar el MBR, el equivalente de Linux está debajo

Intenté esto y funcionó (no estoy seguro de por qué falló el método dd, pero parece que la partición tenía que ser ntfs):

  • determine qué dispositivo / dev / es su unidad flash USB y desmóntelo
  • borre el MBR: dd if = / dev / zero of = / dev / device bs = 446 count = 1
  • ejecuta fdisk / dev / device
  • eliminar todas las particiones y crear 1 partición primaria, hacer que sea de arranque y luego guardar los cambios
  • ejecute mkfs.ntfs / dev / device1 (partición 1)
  • copie todo el contenido de la iso de instalación de Windows en la partición que creó

-4

En lugar de

dd if=windows7.iso of=/dev/sdb

se escribe como root,

dd if=windows7.iso of=/dev/sdb1 

(AGREGUE 1 al final o sea cual sea su unidad USB).


3
No, of = sdb es correcto según las respuestas anteriores.
James Broadhead

1
Esto esta simplemente mal.
lukad

1
-1: ddnecesita escribir en dispositivos, no en particiones
ssc
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.