Skip to content

Cómo montar una imagen de disco virtual QEMU

  • by Jesús Torres
No diría que Binance es la plataforma más fácil para principiantes, pero puede sentir que está seguro dentro de ella. Puede ...
Leer Más
Hoy, veremos una de las criptomonedas más exclusivas: Dogecoin y descubriremos dónde y cómo comprar Dogecoin. En esta guía, aprenderá ...
Leer Más
Este corredor en línea tiene tarifas de negociación bajas y una amplia cartera de instrumentos financieros. Cubriendo más de 135 ...
Leer Más

Supongamos que descubre datos comerciales críticos en un archivo de hoja de cálculo de DOS heredado y Excel no puede estudiar el archivo. Si el software heredado se ejecutó originalmente en DOS, puede iniciar una copia de FreeDOS e instalar el software heredado allí para extraer o exportar los datos a un formato de archivo popular, como un archivo CSV separado por comas.

Puede seguir nuestras instrucciones para instalar y proceder FreeDOS utilizando la máquina aparente QEMU. Pero habiendo instalado FreeDOS, ¿cómo se instala y ejecuta el software heredado en QEMU?

Puede sumar una imagen de disco QEMU utilizando dos métodos básicos: utilizando un desplazamiento para sumar la imagen directamente o utilizando el libguestfs-tools paquete.

Linux puede sumar el formato de imagen de disco sin procesar de QEMU, asumiendo que sabe dónde encontrar el inicio de la partición de la mecanismo C: en el disco aparente. El disco aparente puede contener varias particiones, pero para la mayoría de las instalaciones de sistemas operativos heredados como DOS, probablemente solo tenga una partición. Esta es la mecanismo C :.

Veamos la salida de Linux fdisk software. Utilizando la -l La opción mostrará una cinta de las particiones en el disco aparente:

$ fdisk -l image.img 
Disk image.img: 100 MiB, 104857600 bytes, 204800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start    End Sectors  Size Id Type
image.img1 *       63 204623  204561 99.9M  6 FAT16

Aquí, la mecanismo C: es la primera y única partición en la mecanismo aparente, listada como image.img1 .Para determinar el desplazamiento de la mecanismo C :, necesita conocer el sector de inicio de esa partición. La salida de fdisk muestra esto como 63.

Para calcular la compensación, incluso necesita conocer el tamaño del sector. Esta imagen de disco aparente tiene sectores de 512 bytes. Calcula la compensación como el producto de la compensación y el tamaño del sector: 63 × 512 = 32256.

Utilice este valencia de compensación para sumar la mecanismo C: aparente desde Linux:

$ mkdir /tmp/dos
$ sudo mount -o loop,offset=32256 image.img /tmp/dos
$ ls /tmp/dos
AUTOEXEC.BAT  COMMAND.COM  FDCONFIG.SYS  FDOS  KERNEL.SYS
$ sudo umount /tmp/dos

Puede automatizar el cálculo mediante un script Bash. La secuencia de comandos primero debe compilar los títulos en un formato fácilmente analizable. En mi sistema Linux, uso el -o opción con fdisk para especificar qué columnas imprimir. Como solo necesito hacer coincidir la partición (Dispositivo) y el valencia de Inicio, uso esto fdisk comando para enumerar las columnas que necesito:

$ fdisk -l -o Device,Start image.img 
Disk image.img: 100 MiB, 104857600 bytes, 204800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Start
image.img1    63

Y un script de Bash puede analizar esa salida usando Gawk para calcular el desplazamiento por sí solo:

#!/bin/bash
# usage: qemu-mount {imagefile}
# 1st argument: QEMU raw image file

if [ $# -ne 1 ] ; then
  echo 'usage: qemu-mount imagefile'
  echo 'Mounts a QEMU raw image file to /tmp/dos'
  exit 1
fi

start=$( fdisk -l -o Device,Start ${1} | grep "^${1}1" | gawk '{print $2}' )
sectors=$( fdisk -l ${1} | grep '^Units: sectors of' | gawk '{print $(NF-1)}' )
offset=$(( $start * $sectors ))

[ -d /tmp/dos ] || mkdir /tmp/dos
sudo mount -o loop,offset=$offset ${1} /tmp/dos

Posteriormente de sumar la imagen del disco aparente QEMU en el /tmp/dos punto de montaje temporal, puede estudiar y escribir datos en la mecanismo C: aparente. Esta es una forma ejercicio de copiar un instalador de software heredado a la máquina aparente o copiar datos fuera de la máquina aparente. Sin retención, solo debe sumar la imagen del disco aparente cuando QEMU no se esté ejecutando. Si intenta sumar una imagen de disco QEMU mientras está en uso, puede dañar el disco aparente.

Cuando haya terminado de conseguir a la imagen del disco aparente desde Linux, no olvide desmontar la imagen con el umount mando.

los libguestfs-tools El paquete proporciona un conjunto de herramientas para conseguir a imágenes de disco de máquinas virtuales. En este kit de herramientas se incluye guestmount , lo que hace que sea verdaderamente viable sumar una imagen de disco QEMU desde Linux. Si su distribución no incluye este paquete por defecto, es posible que deba instalar el software libguestfs por separado. Sin retención, muchas distribuciones de Linux, incluidas Fedora, Red Hat Enterprise Linux, Debian y Ubuntu proporcionan una libguestfs-tools paquete que puede instalar a través de su administrador de paquetes.

Dos opciones dicen guestmount cómo conseguir a la imagen del disco QEMU. los --add imagefile La opción especifica la imagen del disco aparente con la que trabajar y la --mount device la opción dice guestmount qué partición usar de la imagen del disco. Debe indicar el dispositivo mediante una ruta normalizado de Linux, como /dev/sda1 para la primera partición en la imagen del disco aparente.

Con estas dos opciones, sumar la imagen del disco aparente desde Linux es un comando de una sola serie:

guestmount --add image.img --mount /dev/sda1 /tmp/dos

Posteriormente de un momento, esto monta la mecanismo C: aparente en el punto de montaje temporal / tmp / dos. Puede conseguir a archivos en la imagen del disco aparente /tmp/dos utilizando herramientas normalizado de Linux, como cp y mv, para copiar datos en el interior y fuera del disco aparente. Tenga cuidado de sumar la imagen del disco solo cuando QEMU no se esté ejecutando, o puede dañar el disco aparente.

Cuando haya terminado con la mecanismo C: aparente, puede desmontar el sistema de archivos usando el guestunmount mando.