
Eu tenho um arquivo linux.img com Arch Linux instalado nele. Eu uso o arquivo linux.img para inicializar o Archlinux na máquina virtual. Comprei um novo PC e gostaria de mover o linux.img para um novo PC e inicializá-lo a partir de um disco particionado. Como movo o arquivo de sistema do disco de imagem (linux.img) para um disco de partição sem perder os arquivos dentro do linux.img?
Responder1
Do que é uma imagem o linux.img?
Sistema de arquivos único
Se for uma imagem de um sistema de arquivos (ex. ext4), você pode criar uma partição (de tamanho maior ou igual) e usar
dd if=linux.img of=<new partition> bs=4M
resize2fs <new partition> # if needed
(como root, então você pode precisar do sudo). O comando resize2fs (sem opções além de ) aumentará esse sistema de arquivos para caber em sua partição.
Alternativamente, se você deseja apenas copiar os arquivos, crie uma nova partição, monte via loopback e use dois tar's e um pipe, ou rsync.
Exemplo 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 - )
Exemplo 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/
Imagem da unidade particionada
Se, no entanto, o linux.img for a imagem de uma unidade particionada - isto é, como algo obtido a partir de um comando nos moldes de
dd if=/dev/sdb of=my.img bs=4M
então você precisará criar várias partições e repetir o procedimento acima para cada partição (potencialmente usando um script para automatizar o processo).