libguestfs: accede y modifica imágenes de disco de máquinas virtuales

libguestfs

Quizás no muchos conocen libguestfs, una biblioteca escrita en C y un conjunto de herramientas que te permiten acceder y modificar las imágenes de disco virtual empleadas en las máquinas virtuales. Además, podrás trabajar con varias plataformas de virtualización basadas en KVM de Linux, y las imágenes de las MV se montarán directamente sobre el host haciendo uso del módulo FUSE y con las herramientas guestmount/guestunmount.

Otro detalle positivo de libguestfs es que puede acceder a casi cualquier FS, o sistema de archivos, y eso incluye todos los de Linux (ext2, ext3, ext4, XFS, btrfs,…), los de MS Windows (VFAT y NTFS), los de macOS (HFS y HFS+), así como los de BSD, e incluso gestión de volúmenes LVM2. Todo eso tanto en MBR como en GPT.

En cuanto a los tipos de discos virtuales a los que puede acceder, pueden ser:

  • qcow2
  • VirtualBox .vdi
  • VMWare .vmdk
  • Hyper-V .vhd y .vhdx

También puede acceder y modificar archivos, dispositivos locales, imágenes ISO, tarjetas de memoria SD, o hacerlo de forma remota a través de protocolos como:

  • FTP
  • HTTP
  • SSH
  • iSCSI
  • NBD
  • GlusterFS
  • Ceph
  • Sheepdog
  • etc.

Por otro lado, libguestfs no necesita privilegios, lo que también resulta interesante. Gracias a este proyecto, tendrás varias herramientas de línea de comandos como guestfish, guestmount, guestunmount, virt-rescue para reparar las MV que no arrancan, virt-cat, virt-tar, etc.

libguestfs también actúa como una API para poder vincular programas de administración en diversos lenguajes de programación:

  • C
  • C++
  • Perl
  • Python
  • Ruby
  • Java
  • PHP
  • Haskell
  • Erlang
  • Lua
  • C#
  • etc.

También puedes usarlo desde scripts, lo que resulta muy práctico a la hora de administrar sistemas. Además, este proyecto de Richard Jones se puede instalar desde los repos de muchas de las distros conocidas de esta forma:

  • Debian/Ubuntu y derivados

sudo apt install libguestfs-tools

  • Fedora/CentOS/RHEL y derivados

sudo dnf install libguestfs

  • Arch Linux y derivados

sudo pacman -Sy libguestfs

Por cierto, si estás usando libvirt y tratas de invocar a alguna de las utilidades o herramientas incluidas en libguestfs, vas a recibir un error como este:


libguestfs: error: could not create appliance through libvirt.

La solución es tan simple como exportar una variable como «direct» así:


export LIBGUESTFS_BACKEND=direct

Más información – Sitio web oficial


El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: AB Internet Networks 2008 SL
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.