GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo encoger un volumen físico?

Tengo un volumen físico en una partición que se extiende por todo el disco, digamos /dev/sda1 usando el 100 % de /dev/sda. Ahora necesito reducirlo para crear /dev/sda2. Un volumen lógico en realidad usa ~50 % del PV, por lo que teóricamente hay mucho espacio disponible, pero todo está asignado dentro del PV único. ¿Existe una forma segura de reducir el volumen físico (y la partición del disco subyacente) para crear espacio adicional para la segunda partición? Desafortunadamente, mi configuración excluye la posibilidad de mover temporalmente el volumen físico a otro dispositivo.

Por supuesto, sé que puedo hacerlo a nivel de archivo (como hacer una copia de seguridad del contenido, volver a particionar la unidad de disco y recrear la configuración de LVM), pero preferiría hacer el trabajo sin la necesidad de configurar LV desde cero.

Gracias por adelantado.

Respuesta aceptada:

Si solo necesita otro sistema de archivos separado, no tiene que crear una nueva partición:puede crear otro volumen lógico LVM dentro del grupo de volúmenes existente utilizando el espacio no asignado en el PV. Pero si necesita específicamente una nueva partición , entonces debe hacer lo que planeó originalmente.

GParted es una herramienta GUI que puede hacer toda la operación de cambio de tamaño de partición PV + por usted. Lo más probable es que lo encuentre en la colección de paquetes de su distribución.

Pero si no puede o no quiere usarlo por alguna razón, siga leyendo...

Reducir un volumen físico LVM que tiene espacio sin asignar es bastante simple. Por ejemplo, para reducir el tamaño de /dev/sda1 a 40 GiB:

# pvresize --setphysicalvolumesize 40G /dev/sda1

Este comando es seguro, ya que se negará a hacer cualquier cosa si la parte del PV que cortaría contiene extensiones asignadas.

Pero ese es solo el primer paso. El segundo paso será reducir el tamaño de la propia partición.

Para estar seguro, se recomienda que inicialmente reduzca el PV un poco más de lo que planea realmente reducir la partición, de modo que después de reducir la partición pueda extender explícitamente el PV para cubrir el tamaño total de la partición. Si la operación de extensión falla, sabrá de inmediato que algo salió mal al cambiar el tamaño de la partición y no dejará errores ocultos que lo atrapen a usted o a otra persona en el futuro.

Puede reducir una partición utilizando un fdisk simple de Linux comando, pero debes tener en cuenta algunas cosas:

  • Al usar fdisk para cambiar el tamaño de una partición, asegúrese de configurarla para mostrar todos los tamaños de partición y ubicaciones iniciales en sectores primero. Durante la historia de Linux fdisk , su comportamiento ha variado aquí:las versiones modernas lo hacen de forma predeterminada, las versiones anteriores pueden necesitar un -u o -u=sectors opción para hacerlo.
  • Al cambiar el tamaño de una partición existente, no puede mover el punto de inicio de la partición. (Si mueve el punto de inicio, ya no será una simple operación de cambio de tamaño, sino una operación de movimiento de partición más compleja).
Relacionado:Macos:¿cómo montar automáticamente un volumen TrueCrypt en OSX después de iniciar sesión con contraseña/archivo de claves?

Al usar fdisk , cualquier cambio se escribe en el disco solo cuando usa el w dominio. Así que sugeriría proceder así:

  • use sfdisk -d /dev/sda > /safe/location/partition_table_backup.dump para hacer una copia de seguridad de la tabla de particiones existente.
  • iniciar fdisk /dev/sda en modo interactivo
  • usa la p Comando para ver la tabla de particiones actual y verificar que los valores de "inicio" y "fin" se muestren como sectores. Tome nota del valor de "inicio".
  • usa la d comando para eliminar la entrada de partición actual para sda1 .
  • usa el n comando para recrear la entrada de partición primaria 1 para sda1 en el tamaño deseado, teniendo cuidado de especificar la ubicación del primer sector exactamente como estaba (es decir, el mismo número que se mostró en el valor de "inicio" del p comando).
  • usa la t Comando para establecer el tipo de partición 1 en "Linux LVM".
  • verifica dos veces tu trabajo
  • usa la w comando para escribir la tabla de particiones actualizada y salir de fdisk .

Preste atención al mensaje que muestra fdisk al final. Si dice "El kernel aún usa la tabla anterior", algo está bloqueando la actualización de la tabla de particiones en línea. Puedes probar partprobe /dev/sda para decirle al núcleo que vuelva a leer la tabla de particiones (utilizando una interfaz más nueva que algunas versiones anteriores de fdisk use, por lo que podría ayudar y ciertamente no hará daño) y luego mire cat /proc/partitions para ver si el kernel ahora reconoce la partición en el tamaño esperado.

Si el cambio de tamaño de la partición es exitoso, ahora puede ejecutar pvresize /dev/sda1 . Si siguió mi consejo y cambió el tamaño del PV inicialmente un poco más pequeño que el nuevo tamaño deseado de la partición, ahora debería extender el PV un poco para cubrir completamente la partición redimensionada automáticamente. Si este comando informa un error, probablemente cometió un error al especificar el nuevo tamaño y debe usar sfdisk /dev/sda < /safe/location/partition_table_backup.dump para restaurar la tabla de particiones a lo que era inicialmente y vuelva a intentarlo.

(En sistemas muy antiguos, es posible que deba desactivar el VG antes de ejecutar partprobe o incluso reiniciar para permitir que el sistema vuelva a leer la tabla de particiones actualizada).

Una vez que se completa la operación de cambio de tamaño, ahora puede usar fdisk de nuevo para crear la segunda partición que necesitabas. Sí, también pueden hacerlo juntos mientras cambian el tamaño de la partición, pero hacer solo una cosa a la vez es más seguro y garantiza que pueda revertir fácilmente los cambios si es necesario.


Linux
  1. Cómo crear un volumen físico en Linux usando LVM

  2. Lum:¿cómo extender una partición con un LVM y el volumen físico y el volumen lógico contenidos?

  3. ¿Cómo crear una partición Lvm/volumen físico> 2 tb?

  4. Cómo eliminar una partición usando fdisk

  5. CentOS / RHEL:cómo cambiar el tamaño (ampliar) el volumen físico existente (PV)

Cómo clonar discos con el comando dd de Linux

Cómo clonar y restaurar una partición de Linux usando el comando dd

RHEL/CentOS:cómo reducir el volumen de LVM

CentOS / RHEL:cómo agregar un volumen físico (PV) a un grupo de volúmenes (VG) en LVM

Cómo crear una partición usando el comando "partid"

¿Cómo cambiar un sistema de partición física a LVM?