Cómo mover el disco de imagen de un sistema de archivos a una partición

Cómo mover el disco de imagen de un sistema de archivos a una partición

Tengo un archivo linux.img con Arch Linux instalado. Utilizo el archivo linux.img para iniciar Archlinux en una máquina virtual. Tengo una PC nueva y me gustaría mover linux.img a una PC nueva e iniciarlo desde un disco particionado. ¿Cómo muevo el archivo del sistema del disco de imagen (linux.img) a un disco de partición sin perder los archivos dentro de linux.img?

Respuesta1

¿De qué es una imagen linux.img?

Sistema de archivos único

Si es una imagen de un sistema de archivos (por ejemplo, ext4), puede crear una partición (de tamaño mayor o igual) y usar

dd if=linux.img of=<new partition> bs=4M
resize2fs <new partition> # if needed

(como root, por lo que es posible que necesites sudo). El comando resize2fs (sin opciones además de) hará crecer ese sistema de archivos para que se ajuste a su partición.

Alternativamente, si solo desea copiar los archivos, cree una nueva partición, monte mediante loopback y use dos tar y una tubería, o rsync.

Ejemplo 1

sudo -s # ensure we are running as root
mkdir /tmp/a
mkdir /tmp/b
mount -o loop linux.img /tmp/a
mount /dev/sdx1 /tmp/b # where sdx1 is the target partition
cd /tmp
( cd a; tar cf -) | ( cd b; tar xvf - )

Ejemplo 2

sudo -s # ensure we are running as root
mkdir /tmp/a
mkdir /tmp/b
mount -o loop linux.img /tmp/a
mount /dev/sdx1 /tmp/b # where sdx1 is the target partition
rsync -haux /tmp/a/ /tmp/b/

Imagen de unidad particionada

Sin embargo, si linux.img es la imagen de una unidad particionada, es decir, como algo obtenido de un comando similar a

dd if=/dev/sdb of=my.img bs=4M

luego deberá crear varias particiones y repetir el procedimiento anterior para cada partición (potencialmente usando un script para automatizar el proceso).

información relacionada