여러 파티션이 있는 Linux 시스템의 디스크 이미지를 만드는 방법은 무엇입니까?

여러 파티션이 있는 Linux 시스템의 디스크 이미지를 만드는 방법은 무엇입니까?

공유 드라이브를 호스팅하는 원격 Linux 시스템의 모든 드라이브를 사용하여 디스크 이미지 파일을 생성하려고 합니다 dd. 실행하면 df -h --total여러 파티션이 표시됩니다. 몇 가지 질문이 있습니다.

  1. 아래 파란색 파일은 추가 파티션인가요?
  2. [파일] -> [파일] 구문이 무슨 뜻인가요?
  3. 를 사용하여 모든 파티션에 대한 단일 디스크 이미지를 생성할 수 있습니까 dd? 그렇다면 어떻게 해야 할까요?

여기에 이미지 설명을 입력하세요.

dm-[] 파일에 대한 세부정보는 다음과 같습니다.

여기에 이미지 설명을 입력하세요.

컨텍스트: 이 CentOS 머신을 Hyper-V 가상 머신으로 변환하려고 합니다. 명령 으로 생성된 .img 파일을 .vmdk(VBoxManage.exe 사용)로 변환 한 다음 .vhd(다시 VBoxManage.exe 사용)로 변환하여 dd단일 파티션 Linux 시스템을 성공적으로 변환했습니다 . 문제없이 Hyper-V에서 시작됩니다. Linux 시스템을 Hyper-V로 P2V하는 방법에 대한 통찰력도 크게 높이 평가됩니다.

답변1

현재 3파티션 Linux SD 카드 이미지에 사용하고 있습니다. 나는 당신이 그것을 자신의 상황에 맞게 번역할 수 있다고 생각합니다.

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

관련 정보