it-swarm-es.com

¿Es posible convertir una caja de Linux a LVM después del hecho?

Mi servidor Linux usa LVM porque reemplacé la máquina hace un año y la instalé desde cero. LVM me ha salvado la vida y me encanta su flexibilidad. Sin embargo, mi computadora portátil Linux se instaló por última vez hace tres años y, por lo tanto, usa particiones directas.

¿Es posible, sin reinstalar, convertir un sistema existente a LVM? Si es así, ¿qué herramientas pueden hacer este trabajo?

Espero que cualquier sistema de archivos que se comparta con Windows en un sistema de arranque dual no pueda ser LVM. Si me equivoco, hágamelo saber, pero me sorprendería.

17
Eddie

Si, esto se puede hacer.

Sí, puede usarlo para un sistema de Windows de arranque dual, siempre que haga que Windows sea la primera partición, y es una partición primaria (no una extensión interna una lógica). Mis instrucciones aquí no cubren esta situación, que requiere que tenga algo de experiencia con el arranque dual. Si buscas una configuración de Windows/Linux de arranque dual, no sigas ningún consejo debajo de este punto.


Iré uno mejor: con solo unas pocas excepciones, debería poder migrar su computadora portátil completa en vivo , siempre que use una unidad externa con suficiente capacidad.

¡Advertencia! ¡Este procedimiento es EXTREMADAMENTE PELIGROSO! Se asume que tiene un conocimiento profundo del proceso de particionamiento, que tiene una partición/boot separada y que sabe un intento fallido puede dejarlo con una instalación con daño cerebral ¡QUE NO ARRANCA! ¡HA SIDO ADVERTIDO!

Necesitarás:

  • / boot ubicado en una partición separada. Si tiene un sistema de archivos raíz combinado (todo está metido en /), esto no funcionará.
  • La capacidad de arrancar desde un disco duro USB.
  • una unidad externa lo suficientemente grande para contener todos los datos y programas en su sistema existente. Asegúrese de ejecutar un "du /" y esperar el resultado final para tener una idea real del tipo de espacio que necesitará.

Procedimiento general (perdóname por la falta de algunos comandos, estoy escribiendo esto muy rápido):

  1. Conecte la unidad externa y busque el nombre de su dispositivo. Supongamos que lo ve como/dev/sdb.
  2. Cree dos particiones en su disco externo. En nuestro ejemplo, esto se mostrará como/dev/sdb1 y/dev/sdb2.

    parted/dev/sdb

  3. Formatee la primera partición como ext2 o ext3, y etiquete "boot". Formatee la segunda partición en la unidad externa como tipo "Linux LVM".

  4. Obtenga el volumen LVM recién acuñado reconocido por el sistema usando

    pvscan; vgscan

  5. Corte una parte lo suficientemente grande del volumen LVM externo para contener todo el disco duro de la computadora portátil. En caso de duda, utilice todo el espacio disponible.

  6. Formatee su volumen basado en LVM como ext3 o cualquier sistema de archivos que le guste.

    mke3fs/dev/ExternalUSBVolume/ExternalRoot

  7. Para cada montaje del sistema de archivos no especial , cree un directorio en su disco externo y copie (con atributos) todos sus archivos en cada montaje en ese disco . Ignore copias de puntos de montaje como/proc, etc. ya que son "especiales".

  8. cree los puntos de montaje especiales a mano, para que existan en su disco externo. No los complete, solo asegúrese de que los nombres y los permisos coincidan.
  9. (Con mucho cuidado) use su gestor de arranque para instalar una imagen de arranque en su disco externo, en la partición/boot. Este proceso es un poco complejo, así que te dejo a ti que encuentres la información en otro lugar. También es peligroso si lo estropeas; podrías terminar intentando sobrescribir tu cargador de arranque en la unidad de tu computadora portátil. Ten cuidado.
  10. Reinicie su computadora portátil. Cuando esté pasando por la POST, asegúrese de especificar la unidad externa como su unidad de arranque. En este momento, debería tener una (más o menos) réplica cercana de la unidad de su computadora portátil. (a los otros administradores: sí, lo sé, los archivos de registro y otros no están en un estado 100% copiado, pero ese no es el énfasis aquí ... se trata de mover los datos y las herramientas ...)
  11. Una vez que pueda arrancar desde la unidad externa, puede usarla para limpiar la unidad de su computadora portátil. En este punto, está "viviendo" de su disco externo. Mantén esto en mente.
  12. Luego use un editor de particiones, gparted o lo que sea, para eliminar las particiones originales de la computadora portátil (adiós, datos ...), luego marque su área recién acuñada como "LVM". Siga el proceso de reconocimiento, partición, formateo, etc. de su volumen LVM.
  13. Usando el proceso de duplicación de LVM, duplica tu sistema en vivo (que se encuentra actualmente en la unidad externa) en la unidad de la computadora portátil. Tómese un descanso para almorzar (o dos) para esto, ya que llevará tiempo.
  14. Vuelva a montar el sistema de archivos en vivo, moviendo el sistema de archivos/desde la unidad externa al volumen LVM de su computadora portátil.
  15. Vuelva a ejecutar el proceso de instalación del cargador de arranque. Esto es fundamental ya que el disco RAM actual no tendrá la configuración correcta y no sabrá que ha movido las cosas. No hacer esto resultará en un sistema que no se puede arrancar y una visita a un disco de rescate. Si todo lo demás falla, puede volver a arrancar desde su disco externo (no se pierde nada ...)
  16. Reinicie la computadora portátil sin la unidad externa conectada y especifique la unidad interna de la computadora portátil en su lugar. Debería arrancar bien. Anote cualquier cosa que se sienta o parezca herida o rota (no debería haber nada) y arréglelo.
  17. Siéntese y disfrute de una bebida por un trabajo bien hecho.
11
Avery Payne

Recientemente escribí blocks (née lvmify) que hace esta conversión en el lugar. Toma una sola partición, encoge el sistema de archivos si es necesario, mueve el inicio del sistema de archivos al final de la partición y copia un superbloque LVM (preconfigurado con el PV/LV/VG correcto) en su lugar. Si tiene varias particiones, la fusión de los grupos de volúmenes recién creados se realiza con vgmerge. No puede funcionar en sistemas de archivos montados.

6
Gabriel

La forma más fácil de mover un sistema Linux a LVM es usar un disco externo (USB, eSATA) y un sistema basado en CD-ROM como grml para mover todos los datos de la PC al disco externo, luego vuelva a particionar la PC con LVM. Finalmente, copie todo de nuevo y configure y vuelva a instalar grub en el MBR.

Este procedimiento es un poco complicado, pero siempre tiene los datos en la unidad externa y el CD-ROM para iniciar su sistema.

Como esperaba correctamente, Windows no puede acceder a ningún volumen LVM.

3
David Schmitt

Empezando desde abajo: no, Windows no puede leer volúmenes lógicos LVM (particiones).

Si tiene un disco de repuesto que se puede usar como almacenamiento temporal, es solo cuestión de arrancar desde un CD en vivo, copiar los datos en la ubicación temporal, crear uno o más LV y volver a colocar los datos. No es práctico (pero posible) realizar una conversión in situ a LVM; básicamente tienes que encoger la partición anterior y cambiar el tamaño del LV varias veces (y el LV final se fragmentaría)

1
Luca Tettamanti

http://serialized.net/2006/04/migrating-live-filesystems-to-lvm/ tiene una forma interesante de migrar un archivo fs. Agréguelo como parte de un grupo RAID-1, que luego el sistema operativo reflejará en el otro dispositivo (que podría ser un volumen lógico LVM). Está un poco anticuado, así que no sé si aún funcionaría.

1
Brian Minton

Tiene una instalación de varios años en una computadora portátil. Es una propuesta perdida convertirlo a LVM. Haga una copia de seguridad de sus datos, reinstale y copie sus datos. Tendrá un sistema limpio con nuevo software y sus datos.

Si no puede hacer esto porque no sabe dónde están sus datos, tiene un gran problema y esta es su oportunidad de resolverlo.

1
carlito

Probablemente tendrá que hacer una copia de seguridad de los datos en otra unidad o partición (¿o iso?), Crear el contenedor LVM y luego restaurar los datos en el contenedor.

0
Brent