Recuperé Windows7 del DVD de rescate que venía junto con mi computadora portátil. La recuperación vuelve a particionar la unidad SSD según los valores predeterminados de fábrica, pero me gustaría cambiar eso. Más exactamente, una vez completada la recuperación, las particiones son las siguientes:
root@ubuntu:~# fdisk -l /dev/sda
Device Boot Start End Blocks Id System
/dev/sda1 2048 419432447 209715200 27 Hidden NTFS WinRE
/dev/sda2 * 419432448 419637247 102400 7 HPFS/NTFS/exFAT
/dev/sda3 419637248 839067647 209715200 7 HPFS/NTFS/exFAT
Comentarios:
/dev/sda2
Es una pequeña partición que tienebootmgr
yBoot
.- Windows7 está instalado en
/dev/sda3
, que no estábootmgr
en esa partición.
Ahora me gustaría copiar Windows7 de /dev/sda3
a /dev/sda1
y hacerlo arrancable. Como las particiones tienen el mismo tamaño, esto es muy sencillo en Linux:
root@ubuntu:~# dd if=/dev/sda3 of=/dev/sda1 bs=4096
Después de eso cambié el tipo de partición:
Device Boot Start End Blocks Id System
/dev/sda1 2048 419432447 209715200 7 HPFS/NTFS/exFAT
/dev/sda2 * 419432448 419637247 102400 7 HPFS/NTFS/exFAT
/dev/sda3 419637248 839067647 209715200 7 HPFS/NTFS/exFAT
Luego he reiniciado. Windows7 arranca desde /dev/sda3
(que se convierte en C:
) y /dev/sda1
se convierte en D:
. Ahora hago que la copia de Windows7 sea de arranque (verCambiar mi disco de arranque de Windows 7 de D a C con BCDBooty¿Es posible copiar todos los archivos de Windows 7 de un disco duro a otro?):
C:\> bcdboot d:\windows /s d:
Boot files successfully created.
C:\> bootsect /nt60 d: /mbr
Target volumes will be updated with BOOTMGR compatible bootcode.
F: (\\?\Volume{b6e65e71-6179-11e5-82c7-806e6f6e6963})
Successfully updated NTFS filesystem bootcode.
\??\PhysicalDrive0
Successfully updated disk bootcode.
Bootcode was successfully updated on all targeted volumes.
Doble verificación:
C:\> bcdedit
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume2
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {current}
resumeobject {0b9ac05e-6182-11e5-b742-8dbb81fd6d74}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Windows 7
locale en-US
inherit {bootloadersettings}
recoverysequence {0b9ac060-6182-11e5-b742-8dbb81fd6d74}
recoveryenabled Yes
osdevice partition=C:
systemroot \Windows
resumeobject {0b9ac05e-6182-11e5-b742-8dbb81fd6d74}
nx OptIn
C:\> bcdedit /store D:\Boot\BCD
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=D:
description Windows Boot Manager
locale en-us
inherit {globalsettings}
default {default}
resumeobject {f38db522-680d-11e5-829a-18f46ae2d7b0}
displayorder {default}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {default}
device partition=D:
path \windows\system32\winload.exe
description Windows 7
locale en-us
inherit {bootloadersettings}
osdevice partition=D:
systemroot \windows
resumeobject {f38db522-680d-11e5-829a-18f46ae2d7b0}
nx OptIn
detecthal Yes
Después de iniciar Linux y marcar la partición como de inicio (se puede hacer eso en Windows, pero uso las herramientas con las que estoy familiarizado):
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 419432447 209715200 7 HPFS/NTFS/exFAT
/dev/sda2 419432448 419637247 102400 7 HPFS/NTFS/exFAT
/dev/sda3 419637248 839067647 209715200 27 Hidden NTFS WinRE
El contenido de /dev/sda1
es el siguiente (verificar dos veces):
root@ubuntu:~# ls -l /mnt/sda1
total 10749077
drwxrwxrwx 1 root root 4096 Sep 25 06:11 Boot
-rwxrwxrwx 1 root root 383786 Nov 20 2010 bootmgr
drwxrwxrwx 1 root root 0 Sep 23 21:50 Config.Msi
lrwxrwxrwx 2 root root 60 Jul 14 2009 Documents and Settings -> /mnt/sda1/Users
-rwxrwxrwx 1 root root 4717092864 Sep 23 21:50 hiberfil.sys
-rwxrwxrwx 1 root root 6289461248 Sep 23 21:50 pagefile.sys
drwxrwxrwx 1 root root 0 Jul 14 2009 PerfLogs
drwxrwxrwx 1 root root 4096 Sep 23 20:35 ProgramData
drwxrwxrwx 1 root root 8192 Sep 23 21:26 Program Files
drwxrwxrwx 1 root root 12288 Sep 23 21:12 Program Files (x86)
drwxrwxrwx 1 root root 4096 Sep 22 22:00 $Recycle.Bin
drwxrwxrwx 1 root root 20480 Sep 23 21:50 System Volume Information
drwxrwxrwx 1 root root 4096 Sep 23 21:05 Temp
drwxrwxrwx 1 root root 0 Sep 23 21:50 Update
drwxrwxrwx 1 root root 4096 Sep 22 21:58 Users
-rwxrwxrwx 1 root root 4112 Jul 19 2011 version
drwxrwxrwx 1 root root 24576 Sep 23 21:02 Windows
Se ve bien. Desafortunadamente cuando inicio me saleBootmgr is missing. Press Ctrl+Alt+Del to restart
.
He instalado Grub en /dev/sda1
(sobrescribe el cargador de arranque predeterminado):
grub-install --force --no-floppy --boot-directory=/mnt/sda1/Boot /dev/sda1
con lo siguiente /mnt/sda1/Boot/grub/grub.cfg
:
menuentry "Windows 7" {
insmod ntfs
insmod ntldr
ntldr (hd0,msdos1)/bootmgr
}
Grub pasó el control bootmgr
correctamente, pero arranca persistentemente desde /dev/sda3
. Cuando elimino la partición /dev/sda3
, elpantalla de inicio inicialse muestra pero luego no sucede nada (el arranque simplemente se bloquea).
A continuación lo he instalado ntldr
en /dev/sda1
(copiado NTDETECT.COM
, NTLDR
desde64ntfile.zip) con sector de arranque "nativo":
C:\> bootsect /nt52 d:
y esto boot.ini
:
[Boot Loader]
timeout=30
Default=multi(0)disk(0)rdisk(0)partition(1)\Windows
[Operating Systems]
multi(0)disk(0)rdisk(0)partition(1)\Windows="Windows 7 (boot.ini)" /fastdetect
Después del arranque, muestra "Se produjo un error de lectura del disco". Seguramente es poco probable que la unidad SSD falle de esa manera, por lo que creo que el problema está en el código de bytes/lógica de arranque que no puede manejar correctamente el direccionamiento/diseño de la unidad. He instalado Grub (como arriba) con esta configuración:
menuentry "Windows 7" {
insmod ntfs
insmod ntldr
ntldr (hd0,msdos1)/ntldr
}
y luego pude ver mi menú como se boot.ini
muestra arriba. Cuando continúo, la computadora se reinicia sin ningún mensaje de error (así que entré en el bucle).
¿Como solucionar el problema? Cualquier solución para iniciar Windows desde la primera partición es bienvenida.
Otras publicaciones sobre el tema que he inspeccionado:
- ¿Qué utilidad puede mover mi partición de arranque de Windows a otro disco duro?
- Cree un BCD de arranque desde cero con Bcdedit
- ¿Los parámetros del dispositivo y del sistema operativo deberían ser la partición de arranque o de Windows?
- Arreglando el gestor de arranque de Windows7
- ¿Puedo corregir el error 0xc0000225 sin reinstalar Windows?
PD: No hay otras unidades o memorias USB conectadas al portátil durante la prueba.
Respuesta1
Después de haber copiado sda3 a sda1, todavía hay algunos "punteros" en el registro de Windows en sda1 que apuntan a sda3. Verifique el contenido de HKLM\SYSTEM\MountedDevices\DosDevices\C: y D: si apuntan a la partición correcta. (\DosDevices\C: el valor es la firma de la partición; debería ser la firma de sda1)
Para crear archivos de inicio para sda1: (cuando se inicia en sda3 asignado a c:, sda1 asignado a d:)
bootsect /nt60 d: /mbr - para configurar el código de inicio de la partición sda1 (no hace daño escribir el código de inicio de Windows en MBR)
bcdboot d:\windows /sd: - para crear BCD en sda1
¡¡¡No es necesario editar el BCD del sistema existente en sda2 y el BCD en sda1!!!
Por último, cambie la partición activa a sda1.
Reiniciar.
VerCómo mover archivos de arranque de Windows 7 a otra unidad/particiónpor ayuda.
Respuesta2
Escribí algunos pasos que tomé para resolver este problema y funcionó para mí, así que espero que también ayude a futuros lectores, y tal vez incluso al OP, aunque ha pasado un tiempo.
Procedimiento que utilicé para migrar Windows 7 desde una partición en un disco duro más pequeño y lento a una partición de disco duro más rápida en una Dell OptiPlex 780 MT
- Obtener unidades flash USB
- Se recomiendan 32 GB o más
- Utilicé Amazon Smiles para poder generar una donación a organizaciones benéficas mientras compraba.
- Cree un CD de rescate del sistema en una de las unidades flash USB de arranque
- Se ha vuelto ENORME desde la última vez que lo usé y requiere más de 16 GB
- Siga las instrucciones del CD SysResc desde Windows usando Rufus
- Reduzca los volúmenes al tamaño mínimo, dejando ~40 GB libres en las particiones del sistema operativo
- El objetivo es tener suficiente espacio no asignado en el nuevo disco duro para igualar o superar el tamaño de la partición original de Windows 7.
- Copia de seguridad/mover datos de particiones a una unidad flash USB u otra unidad externa
- Ejecute la limpieza y desfragmentación del disco
- DiskMgmt.MSC en W7 se puede utilizar para ampliar/reducir volúmenes ahora
- Arrancar en el CD de rescate del sistema
- Advertencia: si tiene contraseñas de administrador y sistema BIOS que usan letras mayúsculas, System Rescue CD pensará que está intentando iniciarlo de forma personalizada. Lo dejará en el indicador de inicio estilo LILO: sin instrucciones, ayuda, comandos, etc. para iniciar. Borré la contraseña del sistema BIOS para que llegara al menú de inicio predeterminado
- Una vez que se inicie correctamente, ejecútelo
startx
para ingresar a la GUI- Ejecute GPartEd
- Vaya a la unidad anterior más lenta con la instalación actual de Windows 7 y copie la partición de Windows
- Vaya a la nueva unidad más rápida con el espacio no asignado y pegue la partición copiada.
- La operación puede tardar unos minutos dependiendo de su hardware, pero proporciona una barra de progreso.
- Marque la partición copiada de Windows 7 como activa
- Ir a una ventana de Terminal/comando
- Ejecute
testdisk
y cree/restablezca el sector de arranque de la nueva partición de Windows 7 (no sé si este paso es necesario, pero es justo lo que hice)- Google Usando testdisk para restaurar el sector de arranque en una partición
- Cree las carpetas /mnt/Dell y /mnt/Win7 usando
mkdir
- Estos desaparecerán la próxima vez que inicie el CD/memoria USB de System Rescue.
- Monte la antigua partición de Dell Recovery en /mnt/Dell usando el
mount
comandomount /dev/hdb1 /mnt/Dell
- Monte la nueva partición de Windows 7 en /mnt/Win7
mount /dev/hda4 /mnt/Win7
- Copie los archivos del gestor de arranque de Windows a la nueva partición de Windows 7
- Cree la carpeta /mnt/Win7/Boot usando
mkdir
- Copie /mnt/Dell/bootmgr a /mnt/Win7/ usando
cp
el comando cp /mnt/Dell/boot.sdi /mnt/Win7/
cp /mnt/Dell/Boot/BCD /mnt/Win7/Boot/
- También puede copiar el archivo /Boot/BCD.LOG, pero no estoy seguro si es necesario.
- Tenga en cuenta que esta configuración de arranque todavía apunta a las antiguas particiones de arranque y sistema de Windows 7. Será necesario editarlo para que apunte a las nuevas particiones de arranque y sistema de Windows 7 (la misma en mi caso)
- Cree la carpeta /mnt/Win7/Boot usando
- Ejecute
- Ejecute GPartEd
- Arrancar en BIOS
- Cambie el dispositivo de arranque de la unidad antigua a la nueva
- Alternativamente, puede usar el menú de inicio. Arrancar desde la nueva partición de Windows 7 con éxito
- Arrancar en Windows 7
- Dado que apunta a las antiguas particiones de arranque y del sistema, todavía funciona en el disco duro antiguo.
- La unidad C: es el sistema antiguo.
- Abra un mensaje de Cmd como administrador
- Ejecute DiskMgmt.MSC
- Asigne una letra de unidad a la nueva partición de Windows 7 si aún no tiene una asignada (G: en mi caso)
- Navegue hasta el directorio G:\Boot
G:
cd Boot
- Muestre la configuración de arranque en la nueva partición usando
bcedit /store BCD
- Tome nota del GUID de arranque antiguo actual ({d57db94d-450e-11e5-a383-b8ac6f1ac098} en mi caso)
- Edite la nueva configuración de arranque copiada para agregar la nueva partición de Windows 7
- ReferenciaAgregar entradas de arranque
bcdedit /store /copy {d57db94d-450e-11e5-a383-b8ac6f1ac098} /d "Win7 Debug"
- Nuevo GUID de partición W7 ahora {c15e345e-9c47-11ea-a7d8-b8ac6f1ac098}
bcdedit /store BCD /enum /v
(Para ver los GUID como referencia)- Referencia¿Cómo muevo los archivos de arranque de Windows 7 bootmgr a una unidad diferente?(¡Muchas gracias por que red.october haya publicado su pregunta y respuesta en este sitio!)
bcdedit /store BCD /set {bootmgr} device partition=G:
- Pasos adicionales en mi caso
bcdedit /store BCD /set {c15e345e-9c47-11ea-a7d8-b8ac6f1ac098} device partition=G:
bcdedit /store BCD /set {c15e345e-9c47-11ea-a7d8-b8ac6f1ac098} osdevice partition=G:
bcdedit /store BCD /displayorder {c15e345e-9c47-11ea-a7d8-b8ac6f1ac098} {d57db94d-450e-11e5-a383-b8ac6f1ac098}
- Opcionalmente, haga que la nueva partición de inicio sea la predeterminada
bcdedit /default {c15e345e-9c47-11ea-a7d8-b8ac6f1ac098}
- Ejecute DiskMgmt.MSC
- Reinicie en el CD/USB de rescate del sistema
- Utilice GPartEd para marcar la antigua partición de Windows 7 como oculta
- Desmarque la marca de inicio en la antigua partición de Dell System Recovery
- Reinicie Windows 7 en la nueva unidad
Si no cometió errores y no tuvo dificultades ni errores con ninguno de los pasos, entonces, como yo, ha migrado con éxito tanto la partición de Windows 7 como el administrador de arranque de Windows 7 de una partición en el disco duro original a una nueva partición en otro diferente. disco duro, sin utilizar un disco de recuperación de Windows 7 (que los revendedores OEM no proporcionan con una PC) y sin utilizar aplicaciones de terceros cuestionables. Una agradable sorpresa es que si tenía archivos o carpetas cifrados con EFS antes de la migración, aún podrá acceder a ellos en la nueva partición sin tener que descifrarlos primero. DiskMgmt.MSC ahora muestra la nueva partición de Windows 7 como C: y la antigua partición de Windows 7 sin letra de unidad.
Una vez iniciado en la nueva partición de Windows 7 de forma completamente independiente del disco duro original, puede explorar cómo limpiar el cargador de arranque en esa partición para que todo apunte a ella en lugar de a la antigua partición de Windows 7. Si tiene una partición de Windows XP en la nueva unidad como yo, entonces puede agregar una entrada para iniciarla usando bcdedit también. Una vez que esté seguro de que todo está estable, puede borrar la partición anterior y usarla para otros fines. Realmente espero que esto ayude a alguien más a lograr esfuerzos similares.
Administración de disco W7 después de la migración: