Como criar uma imagem de disco de uma máquina Linux com diversas partições?

Como criar uma imagem de disco de uma máquina Linux com diversas partições?

Estou tentando criar arquivos de imagem de disco em todas as unidades de uma máquina Linux remota que hospeda nossa unidade de compartilhamento usando o arquivo dd. Quando executo df -h --totalele mostra várias partições. Eu tenho algumas perguntas:

  1. Os arquivos azuis abaixo de partições adicionais?
  2. O que significa a sintaxe [arquivo] -> [arquivo]?
  3. É possível criar uma única imagem de disco para todas as partições usando dd? Se sim, como?

insira a descrição da imagem aqui

Aqui estão os detalhes sobre os arquivos dm-[]:

insira a descrição da imagem aqui

Contexto: estou tentando converter esta máquina CentOS em uma VM hyper-v. Converti com sucesso uma máquina Linux de partição única convertendo o arquivo .img criado com o ddcomando em um .vmdk (usando VBoxManage.exe) e depois em um .vhd (usando VBoxManage.exe novamente). Ele inicializou no Hyper-V sem problemas. Qualquer visão sobre como transformar máquinas Linux P2V em Hyper-V também seria apreciada.

Responder1

Atualmente estou usando isso para uma imagem de cartão SD Linux de 3 partições. Eu acho que você pode traduzir para sua própria situação:

export VERSION=3.4.113
export ARMBIAN_BUILD=~/Armbian/build-$VERSION

dd if=/dev/zero of=sd.img bs=1M count=256

# Do the bootloader thing. Put the file from position 8192 bytes into the image
echo Copying bootloader
sudo dd if=ext/u-boot.bin of=sd.img bs=1k seek=8 conv=notrunc

(
echo n
echo p
echo 1
echo
echo +50M
echo n
echo p
echo 2
echo
echo +150M
echo n
echo p
echo
echo
echo
echo t
echo 1
echo b
echo t
echo 3
echo b
echo a
echo 1
echo w
) | fdisk sd.img > /dev/null

sleep 1

export start0=`echo p | sudo fdisk sd.img | grep sd.img1 | awk ' { print $3 } '`
export end0=`echo p | sudo fdisk sd.img | grep sd.img1 | awk ' { print $4 } '`
export start1=`echo p | sudo fdisk sd.img | grep sd.img2 | awk ' { print $2 } '`
export end1=`echo p | sudo fdisk sd.img | grep sd.img2 | awk ' { print $3 } '`
export start2=`echo p | sudo fdisk sd.img | grep sd.img3 | awk ' { print $2 } '`
export end2=`echo p | sudo fdisk sd.img | grep sd.img3 | awk ' { print $3 } '`

mkdir -p mnt
mkdir -p mnt/boot
mkdir -p mnt/rootfs
mkdir -p mnt/media

echo Creating boot partition from $start0 to $end0
export sectors0=`expr $end0 - $start0`
export size0=`expr $sectors0 \* 512`
export offset0=`expr $start0 \* 512`
sudo losetup -d /dev/loop0 > /dev/null 2>&1
sudo losetup /dev/loop0 sd.img -o $offset0 --sizelimit $size0
sudo mkfs.vfat /dev/loop0
sudo mount /dev/loop0 mnt/boot

echo Creating rootfs partition from $start0 to $end0
export sectors1=`expr $end1 - $start1`
export size1=`expr $sectors1 \* 512`
export offset1=`expr $start1 \* 512`
sudo losetup -d /dev/loop1 > /dev/null 2>&1
sudo losetup /dev/loop1 sd.img -o $offset1 --sizelimit $size1
sudo mkfs.ext2 /dev/loop1
sudo mount /dev/loop1 mnt/rootfs

echo Creating media partition from $start0 to $end0
sudo losetup -d /dev/loop2 > /dev/null 2>&1
export sectors2=`expr $end2 - $start2`
export size2=`expr $sectors2 \* 512`
export offset2=`expr $start2 \* 512`
sudo losetup /dev/loop2 sd.img -o $offset2 --sizelimit $size2
sudo mkfs.vfat /dev/loop2
sudo mount /dev/loop2 mnt/media

informação relacionada