Traslado / arranque y MBR a una nueva unidad

11

Tengo un servidor CentOS 6 con dos discos duros. Mi viejo disco de 3TB me ha dado algunos problemas, así que me estoy mudando a un nuevo disco. Debido a que my /y la /homepartición son administradas por un LVM, fue fácil migrarlas a la nueva unidad. Ahora quiero moverme sobre mi /bootpartición y el MBR que hace que todo se inicie.

Cargué un CD en vivo y rsyncedsobre mi /bootpartición al mismo tamaño de partición en mi nueva unidad. También intenté copiar mi MBR con los siguientes comandos:

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1

Después de hacer esto, reinicié, le dije a mi BIOS que no mirara el viejo disco duro durante el ciclo de arranque y solo mirara la nueva unidad, pero todo lo que terminé con fue un cursor parpadeante.

¿Me perdí un paso aquí? ¿O hay algo más que deba hacer para que las cosas arranquen y pueda eliminar por completo mi disco anterior?

EDITAR: Estoy empezando a pensar que rsync no era la forma de copiar la partición / boot de una unidad a otra. Basado en esta guía , intenté usar el comando dump en su lugar. En este comando copié mi vieja partición de arranque desmontada a mi nueva partición de arranque montada y vacía.

dump -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -) 

Recibo un error grub 15 en el arranque que es mejor que un cursor parpadeante, pero no sé si eso está más cerca de una solución.

Cloudkiller
fuente
¿Por qué no instalar grub en la nueva unidad?
frostschutz
Cada vez que me cansaba de ejecutar grub-install terminaba arrancando y obtenía solo un indicador de grub.
Cloudkiller

Respuestas:

3

Si los dos discos duros son del mismo tamaño (o el nuevo es más grande), ¿por qué no copió el disco viejo al disco nuevo? Es decir

dd if=/dev/sda of=/dev/sdb

Ahora, si el nuevo disco duro es más grande, cambie los tamaños de partición con parted o gparted. Todo esto se inició desde un CD / memoria USB en vivo.

erik
fuente
Son de diferente tamaño. 3tb era simplemente excesivo para el servidor, así que me mudé a un raptor de 1tb con la esperanza de obtener un poco más de velocidad. En cualquier caso, la clonación no parece ser el problema. Al menos, la parte LVM se movió fácilmente y parece que la partición de arranque se copió completamente con mi último volcado. Ahora creo que el problema está relacionado de alguna manera con mi grub o el MBR. Creo que el problema es que no sé lo suficiente sobre grub2 y cómo interactúa con los LVM para solucionarlo.
Cloudkiller
el uso de dd, que está haciendo una copia bit por bit, es una forma antigua de hacer una migración de datos, especialmente cuando los tamaños de disco ahora están en el rango de terabytes y, con mayor frecuencia, la cantidad de datos reales es inferior a 10 gb en el disco; una instalación limpia y nueva de SUSE con muchas bibliotecas instaladas me ejecuta alrededor de 5 GB en el disco, que guardo en un archivo y uso un dispositivo de memoria de 8 gb para mover ese archivo tar, la partición de arranque, ya sea EFI o MBR, solo funciona unos pocos MEGABYTE.
ron
si puede usar EFI o UEFI en lugar de BIOS, y tener una partición de arranque EFI a través de GPT en lugar de una partición de arranque MBR & dos, hace las cosas fáciles, básicamente, simplemente formatee la partición EFI como fat32 y copie esos pocos MB de archivos relacionados; de lo contrario, para MBR, debe comprender cómo funciona, corregir las direcciones dentro del nuevo disco, luego instalar el nuevo MBR en el nuevo disco en el primer sector para que el BIOS pueda acceder a él correctamente; EFI es mucho mejor si su hardware es compatible con EFI
ron
y ELILO es mejor que GRUB / GRUB2, demasiadas cosas en grub que nunca uso y simplemente complica las cosas; un archivo elilo.conf y listo! si no arranca solo ese archivo para revisar y corregir
ron
4

Resulta que usar rsync o dump para copiar la partición / boot estaba causando el problema. Basado en la respuesta anterior de erick, inicié un CD en vivo en modo de rescate y ejecuté los siguientes comandos dd.

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1
dd if=/dev/sda1 of=/dev/sdb1

Volví a ejecutar los primeros dos dd solo para asegurarme de que todo se había copiado correctamente y no estaba dañado con todas las pruebas que había estado haciendo. Luego ejecuté el tercer dd para copiar la partición de arranque de mi unidad anterior a la nueva. Después de eso, apagué, saqué mi viejo disco y arranqué sin problemas en mi CentOS.

Debe haber habido algún problema causado por el uso de dump en una unidad montada que hizo que la copia no funcionara correctamente. De todos modos, dd hizo el truco. Gracias por su ayuda a todos.

Cloudkiller
fuente
Este es un buen ejemplo de ignorancia es felicidad ya que funcionó. Pregúntese qué hizo el CD de rescate para corregir el problema en el MBR. Tener dos discos en el sistema al mismo tiempo, cuál es sda y cuál es sdb, y cuando quita el disco viejo y tiene solo el disco nuevo, ¿cambia eso y luego se convierte en sda o sdb?
ron
dependiendo de lo que esté haciendo, puede no importar, pero generalmente es mejor arrancar o identificar discos por algún método único, como por id. de dispositivo o UUID.
ron
usar dd y MBR es como usar puntos y condensador en un motor en lugar de encendido electrónico con inyección electrónica de combustible (EFI) ... juego de palabras intencionado ... y no usar EFI porque no se entiende completamente.
ron
3

En lugar de dd, construí un nuevo volumen. Más pasos, pero podrían solucionar problemas en lugar de copiarlos. Tenía un arranque demasiado pequeño que se corrompió. También estaba usando cento7 con grub2. Entonces, mis instrucciones requerirían algunos ajustes o actualizaciones a grub2 como sugirió psusi. Traté de notar los cambios.

NOTA: Cuando uso "/ dev / sdx", estoy asumiendo que usted sabe que el "sdx" debe cambiarse a cualquier nombre del disco / volumen que quiera ser / boot.

  • Use fdisk (no cfdisk) para Particionar con el tipo 83 (parte de Linux normal), y marque como de arranque.
    • Motivo de fdisk: cfdisk inicia la partición demasiado pronto, sin espacio para el cargador de arranque. Recuerde, el cargador de arranque debe ajustarse antes de la partición.
  • Hacer sistema de archivos en la partición. Ext [234], xfs. ¿otros?.
  • Montar en / boot
  • Copie los archivos * .img de / boot sobre / boot ... al menos los que desea conservar.
  • También copié archivos vmlinuz- * de / boot sobre / boot ... no estoy seguro de si eso es necesario.
  • Ejecute grub2-install / dev / sdx
    • Nota 1: Si está utilizando grub (en lugar de grub2), creo que el comando correcto es grub-install / dev / sdx
    • Nota 2: ¡Esto se instala antes de la partición que acabamos de formatear, así que NO apunte a / dev / sdx1!
  • Ejecute grub2-mkconfig -o /boot/grub2/grub.cfg
  • No olvide actualizar / etc / fstab para / boot

referencias: http://www.ocztechnologyforum.com/fo...226#post373226 http://www.patriotmemory.com/forums/...ead.php?t=3696 http://thunk.org/tytso /blog/2009/02/...se-block-size/ https://ubuntuforums.org/showthread.php?t=1528529 https://wiki.centos.org/HowTos/Grub2

Art Hill
fuente
2

El problema es que no deberías usarlo ddpara copiar el MBR así. Simplemente necesita reinstalar grub en la nueva unidad para obtener un MBR actualizado correctamente . El MBR contiene la ubicación del archivo grub stage 2, que cambió cuando restauró el volcado.

También debe actualizar a grub2 ya que grub legacy no se ha mantenido durante años, y grub2 no requiere una partición que no sea lvm / boot.

psusi
fuente
Estoy usando grub2, es lo que el instalador de CentOS 6 puso en mi disco. Además, la partición no lvm / boot también era la configuración predeterminada proporcionada por CentOS. Intenté reinstalar grub2 muchas veces en el disco, pero conseguir que funcionara fue algo que se me escapó.
Cloudkiller