Clonar Disco Duro Windows 10, 7, 8 on Ubuntu

Después de haber realizado minuciosamente la operación de migrar sistemas de arranque dual a SSD (sin una nueva instalación de ninguno de los sistemas) dos veces en los últimos días, he decidido escribir los pasos en caso de que alguna vez necesite repetirlo. También puede beneficiar a otra persona en Internet. Este es el flujo de trabajo más eficiente y menos propenso a errores que yo sepa, y descubrirlo no fue tan fácil como parece.

Disculpe la forma un tanto abreviada de esta guía; Me tomo la libertad de asumir que el lector es un usuario avanzado y al menos está familiarizado con Linux.

El escenario

Estas son las condiciones específicas en las que trabajé:

  • Sistema Linux / Windows de arranque dual.
  • Tablas de particiones MBR.
  • GRUB2 instalado en MBR de la primera unidad ( /dev/sda).
  • Windows instalado en la primera unidad ( /dev/sda).
    • Cargador de arranque en formato /dev/sda1.
    • Partición real de Windows en formato /dev/sda2.
  • Linux instalado en la segunda unidad ( /dev/sdb).
    • Cambie la partición en formato /dev/sdb1.
    • ext4Partición actual de Linux en formato /dev/sdb2.
  • Dos particiones NTFS de datos masivos (para acceso compartido de Linux / Windows) después de ambos sistemas ( /dev/sda3/dev/sdb3).

La conclusión es que queremos mover particiones de ambos sistemas ( /dev/sda1/dev/sda2/dev/sdb2) para la nueva SSD , pero no las particiones de datos (que también quieren mantener el intercambio de Linux en el disco duro). La advertencia es que el SSD no es lo suficientemente grande para contener clones textuales de las particiones, por lo que tendremos que reducirlos .

Puntos de bonificación por instalar /varun disco duro también. La caché de paquetes APT se basa bastante en un sistema Debian razonablemente antiguo, sin mencionar los registros.

Prerrequisitos

  • Live CD de Linux con herramientas de recuperación, preferiblemente de la distribución que elijas.
  • Unidad de CD utilizable como dispositivo de arranque.
  • ntfsprogsntfs-3ginstalado en su sistema Linux. Lo último es preferible, ya que se mantiene activamente (en el momento de escribir este artículo).

Pasos para clonar disco duro dual boot con Windows y Ubuntu

La gran conclusión es que no se moleste con las herramientas de cambio de tamaño NTFS de Microsoft. Ellos son francamente inútil e incapaz de llevar a cabo las operaciones de cambio de tamaño de la partición de utilidad: serán siempre se queda atascado en algún archivo «inamovible» – pagefile.sysswapfile.sysalgunos \System Volume Informationmezcolanza o simplemente se niegan a contraerse sin especificar una razón (cf. eventos 258 y 259 para los eventos de la aplicación de desfragmentación el registro de eventos de Windows; # 259 es útil, # 258 es inútil, y llega un punto en el que simplemente deja de obtener # 259 por completo). La desfragmentación no ayuda, y parece que nadie en Microsoft tuvo la simple idea de aplazar la operación de cambio de tamaño hasta el reinicio, si el problema es que actualmente hay archivos abiertos más allá del límite de reducción previsto.

Créame, me había esforzado por usarlos suponiendo que MS seguramente tendría una mejor implementación de NTFS, ya que es su tecnología interna. Estaba equivocado.

De todos modos, esto es lo que hago, paso a paso:

  1. Asegúrese de que su partición de Windows esté en buen estado.
  2. Deje suficiente espacio en la partición para adaptarse a la contracción.
  3. Ejecute chkdsk /f c:y acepte el mensaje para programar la verificación en el próximo reinicio.
  4. Reinicie y deje que se ejecute la verificación.
  5. Reinicie de nuevo.
  6. Asegúrese de que su partición de Linux esté en buen estado.
  7. Deje suficiente espacio en la partición para adaptarse a la contracción.
  8. Ejecute # e2fsck -f /dev/sdb2y, si aparece, acepte el mensaje para programar la comprobación en el próximo reinicio.
  9. Si apareció el mensaje, reinicie y deje que se ejecute la verificación.
  10. Reinicie de nuevo.
  11. Prepare la nueva tabla de particiones. Nota: A partir de este punto, asumiré que el SSD ha tomado la primera ranura de disco en el sistema, haciéndolo /dev/sday moviendo los HDD una letra hacia abajo; es decir, la unidad de Windows ahora se convierte en /dev/sdby la de Linux ahora /dev/sdc.
  12. Arranque en su Live CD de Linux. El CD en vivo puede ofrecerse a chrootsu instalación de Linux existente; Le sugiero que no lo haga todavía y que en su lugar lo ejecute desde el sistema de CD en vivo.
  13. Copiar el MBR del disco duro a su SSD: # dd if=/dev/sdb of=/dev/sda bs=512 count=1. Sí, sé que la tabla de particiones probablemente no sea válida en este punto, pero mantiene GRUB (en caso de que necesitemos su modo de recuperación; aunque probablemente no lo necesitemos), y el UUID de la unidad que Windows requiere para arrancar desde el SSD sin problemas. requiriendo una reinstalación.
  14. Preste atención a las reglas de particionamiento SSD actuales. En el momento de escribir este artículo, se recomienda dejar 2048 sectores vacíos al comienzo de la unidad (este es el valor predeterminado) y asegurarse de que todas las particiones comiencen en un límite de 8 sectores (es decir, el número del sector de inicio debe ser divisible por 8). También es posible que desee dejar ~ 10% del SSD sin asignar para el aprovisionamiento excesivo para lograr una vida útil prolongada del SSD.
  15. Arregle la tabla de particiones: ejecute # fdisk /dev/sdano cfdisk , morirá con un error) y elimine todas las particiones menos las de Windows ( /dev/sda1para el cargador de arranque y /dev/sda2para el sistema real).
  16. Mientras aún está dentro fdisk, cree la partición de Linux.
  17. Asegúrese de emitir el wcomando para escribir la tabla de particiones.
  18. Actualice la vista del kernel de las tablas de particiones ejecutando # partprobe.
  19. Copie la partición de Linux. Según mi experiencia, ddes difícil trabajar con las copias textuales ( ) (y simplemente ineficaces), así que a menos que su CD en vivo proporcione partclone.ext4(hace una copia escasa, es decir, omite sectores vacíos), creemos uno nuevo y copiemos el contenido.
  20. Cree su nuevo sistema de archivos ejecutando # mkfs.ext4 -L <your preferred label> /dev/sda3. En el momento de escribir este artículo, todo el mundo recomienda un tamaño de bloque de 4096, pero si esto cambia, simplemente establezca el tamaño de bloque según la recomendación del día, seleccionando -b <block size>la línea de comando antes de la ruta del dispositivo.
  21. Asegúrese de que su antigua partición de Linux esté montada en algún lugar al que tenga acceso. Si no es así, intente lo siguiente: # mkdir /tmp/oldfs && mount /dev/sdc3 /tmp/oldfs.
  22. Asegúrese de que su nueva partición de Linux esté montada en algún lugar al que tenga acceso. Si no es así, intente lo siguiente: # mkdir /tmp/newfs && mount /dev/sdc3 /tmp/newfs.
  23. Copie sus datos ejecutando # cp -afv /tmp/oldfs/* /tmp/newfs/. El -ainterruptor hace la magia de mantener los atributos y lo que no.
  24. Espere hasta que finalice la operación de copia.
  25. Repare su nueva instalación de Linux.
  26. Introduzca su CD chrooten vivo en la nueva partición de Linux. Esto se puede hacer desde los menús en el modo de recuperación de Debian.
  27. Descubra el UUID de la nueva partición ejecutando blkid -c /dev/null.
  28. Editar /etc/fstab: actualice el UUID de la partición raíz con lo que acabamos de leer en el paso anterior y establezca la noatimeopción en él. Nota: No pongo discardaquí a propósito . Llamar a TRIM sobre cada descarte es un desperdicio, es mejor hacerlo periódicamente. Más sobre eso más tarde.
  29. Además, mientras estamos en eso, arregle cualquier otra fstabentrada que haya sido configurada por la ruta del dispositivo en lugar del UUID, por ejemplo, las particiones de datos masivos.
  30. Reinstalar GRUB: # grub-install /dev/sda.
  31. Actualización de la configuración de GRUB – exploración de los granos, etc .: # update-grub. Tenga en cuenta que esto probablemente no detectará ningún otro sistema operativo, pero eso no es un problema.
  32. Reinicie con su nueva instalación de Linux. Asegúrese de que la SSD sea el primer dispositivo de arranque.
  33. Cambie el tamaño de la partición de Windows y clónela en el SSD.
  34. Es una buena idea hacer una copia de seguridad en este momento. ntfsclonelo tiene cubierto para eso: la imagen es escasa y se puede comprimir aún más. Consulte el manual ( man ntfsclone).
  35. Úselo # ntfsresize -n -i /dev/sdb2para verificar si su partición de Windows está lista para funcionar y cuánto puede reducirla.
  36. Úselo # ntfsresize -s <new size> /dev/sdb2para encogerlo. Recomiendo reducir a un tamaño justo por debajo del tamaño de la partición SSD de destino por un tiempo mínimo dedicado a la reubicación de archivos.
  37. Copie el cargador de arranque de Windows al SSD usando # ntfsclone --overwrite /dev/sda1 /dev/sdb1.
  38. Copie el volumen del sistema de Windows al SSD usando # ntfsclone --overwrite /dev/sda2 /dev/sdb2.
  39. Descubra cuánto puede expandir el nuevo volumen NTFS ejecutando # ntfsresize -n -i /dev/sda2. Busque «tamaño del dispositivo».
  40. Expanda el nuevo volumen NTFS ejecutando # ntfsresize -s <new size> /dev/sda2. Sustituye el número leído en el paso anterior por <new size>. No se necesitan sufijos de unidad ya que el número está en bytes.
  41. Ejecute # update-grubpara volver a detectar todos los sistemas operativos en su sistema.
  42. Configure su sistema Linux para SSD. Esto significa recortes regulares y programación de E / S. Hay muchas formas de hacerlo. Me gusta poner un script de shell simple /usr/local/sbin/ssd.shcon los comandos fstrim -v /echo deadline > /sys/block/sda/queue/scheduleren él. Luego, llame al script en el arranque o cuando lo desee; puse una /usr/local/sbin/ssd.sh &línea en /etc/rc.local.
  43. Repare su nueva instalación de Windows.
  44. Reinicie en Windows.
  45. Ejecute Microsoft Management Console (tecla de Windows + R, tipo mmc), desde el menú Archivo agregue el complemento Administración de discos. Vaya a ese complemento eligiéndolo en el árbol de la izquierda.
  46. Su antigua unidad de Windows estará fuera de línea debido a un conflicto de UUID de la unidad (está almacenada en el MBR). Haga clic con el botón derecho en la lista de la ventana inferior y seleccione «En línea». Esto hará que Windows vuelva a generar el UUID.
  47. Arregle los errores que puedan surgir en las letras de las unidades.
  48. Configure su sistema Windows para SSD. Acabo de instalar Samsung Magician y dejé que configurara todas las opciones para un «máximo rendimiento». Nota: Su software de monitoreo SSD OEM puede tener problemas para reconocer la partición de Linux. Sin embargo, está bien, nada está roto, incluso si te grita.
  49. Una vez que se asegure de que las instalaciones de su sistema migrado estén bien e intactas, puede eliminar las particiones del sistema antiguo de los discos duros. Vuelva a ejecutar # update-grubdespués de eso para eliminar las opciones falsas del menú de inicio de GRUB. Sin embargo, si desea recuperar ese espacio recién liberado para sus datos masivos, tiene mala suerte: no puede aumentar los volúmenes NTFS para ocupar espacio frente a ellos. Lo que significa que tendrá que pasar por el ntfsresize– ntfsclone– ntfsresizeping-poing nuevamente. A menos que la partición del sistema sea igual o más grande que la partición masiva, en cuyo caso puede omitir una (o ambas) ntfsresize. Pero esa es una historia para otro momento.

Deja un comentario