¿Cómo muevo mi partición raíz LVM de 250 GB a un nuevo disco duro de 120 GB?

18

Tengo la siguiente situación:

Mi instalación actual de Ubuntu (12.04) se ejecuta desde un HDD externo (250 GB) porque era demasiado flojo para comprar un nuevo disco duro interno. Ahora tengo una nueva interna (120 GB) y quiero mover todo a la interna. Instalar Ubuntu nuevo está fuera de discusión porque está peronalizado.

Afortunadamente (eso espero) la partición raíz está particionada con LVM, así que espero poder mover la partición al HDD interno más pequeño.

es posible? ¿Y donde encuentro ayuda?

EDITAR: Esta pregunta ya es bastante antigua y podría estar desactualizada. Agregué la versión de Ubuntu que se usaba en ese entonces.

NotAormalNerd
fuente
pregunta relacionada - las respuestas anteriores no son lo suficientemente claras ...
MeSo2
Las dos respuestas anteriores no son lo suficientemente claras para mí. Entonces comencé una nueva publicación.
MeSo2

Respuestas:

39

Como sospecha, esto es extremadamente elegante de hacer con LVM.

Reduzca la instalación existente para que se ajuste al disco más pequeño.

Instale físicamente el nuevo disco duro, formatee y pvcreateusevgextend para agregarlo al mismo vg que su partición raíz

Utilizar pvmove para mover de forma transparente todos los datos fuera de la partición anterior

Úselo vgreducepara eliminar su disco duro externo de su vg. Desenchufe el disco viejo / dev / sdOLD.

En el siguiente ejemplo:

  • /dev/sdOLD representa la antigua partición para reemplazar
  • /dev/sdNEW representa la nueva partición para tomar su lugar.
  • vgX representa el grupo de volumen

Ejemplo: por supuesto, debe estar 100% seguro de que está utilizando los dispositivos correctos. Además, es esencial contar con copias de seguridad completas y actualizadas, eliminadas del sistema.

pvcreate /dev/sdNEW
vgextend vgX /dev/sdNEW
pvmove /dev/sdOLD
vgreduce vgX /dev/sdOLD

Use update-gruby grub-installpara hacer que su nuevo disco raíz sea arrancable

Hecho.

Floyd
fuente
Hubiera sido agradable si hubieras proporcionado ejemplos concretos.
isaaclw
12
Ah, eso es bueno rechazar una publicación válida aceptada con información útil. Intencionalmente NO di un ejemplo concreto, porque el peligro es que alguien copie y pegue sin pensarlo y destruya sus datos. Si haces algo con lvm, deberías poder encontrarte con los punteros que doy.
Floyd
2
Trabajó en Cento7 también. Los pasos proporcionados aquí fueron suficientes para aprender un poco y googlear un poco. Spot-on
terary
centos: use grub2-mkconfig -o "$ (readlink -e /etc/grub2.cfg)" ... desde aquí
terary
21

Primero, si utilizó el disco completo de 250 GB para su instalación actual, deberá reducirlo para que se ajuste al disco de 120 GB. Solo puede reducir un sistema de archivos ext4 mientras está desmontado, por lo que deberá iniciar un sistema en vivo de Ubuntu (CD o USB) o un sistema en vivo de mantenimiento especializado como GParted live . Puede usar resize2fso GParted para cambiar el tamaño del sistema de archivos existente.

Una vez que haya reducido los sistemas de archivos de su instalación existente para que quepan en el nuevo disco, puede hacer el resto del movimiento con el sistema de archivos montado si lo desea. Si el sistema de archivos existente se ajusta al nuevo disco, puede hacer la transferencia sin desmontar nada ni reiniciar.

En la siguiente descripción, le mostraré cómo pasar del volumen /dev/sdb1físico al volumen físico /dev/sda1, con un grupo de volumen existente llamado oldvg. Asegúrese de ajustar las letras del disco y los números de partición para que coincidan con su sistema.

Para hacer una transferencia en vivo:

  1. Particiones en el disco nuevo, con la función de partición de su elección ( cfdisk, fdisk, parted, ...). Consulte, por ejemplo, ¿cómo agrego un disco duro adicional?
  2. Cree un volumen físico en el nuevo disco: pvcreate /dev/sda1
  3. Agregue este volumen físico al grupo de volúmenes existente que contiene los volúmenes lógicos que desea mover: vgextend oldvg /dev/sda1
  4. Mueva los volúmenes lógicos de un volumen físico a otro: pvmove /dev/sdb1 /dev/sda1
  5. Divida el grupo de volúmenes existente en dos: vgsplit oldvg newvg /dev/sda1

Otro método es hacer que los volúmenes lógicos existentes sean un volumen espejo con lvconvert --mirror, configurar un espejo en el nuevo disco y luego dividir los espejos con lvconvert --splitmirrors. De esta manera, terminas con dos copias de tus datos, y después de la división cada copia lleva su propia vida.

Una vez que haya hecho la copia, deberá hacer que el nuevo disco sea de arranque. Monta el sistema de archivos para esto. Suponiendo que esté montado /mnt, ejecute estos comandos como root:

chroot /mnt
# if the name of the volume group has changed, edit /etc/fstab
update-grub
grub-install /dev/sda

Alternativamente, puede usar Clonezilla . Esta es una poderosa herramienta de clonación y manipulación de disco, y creo que cubre su situación, pero no tengo experiencia con ella.

Gilles 'SO- deja de ser malvado'
fuente
1
Como una respuesta que dice básicamente pvadd, pvmove, pvremovees aceptada sobre esto está más allá de mí ...
ish
Demasiado complicado y no es lo que necesita
Floyd