컴퓨터의 Linux 시스템을 내 컴퓨터로 복사하고 싶습니다. 해당 Linux 시스템은 두 개의 파티션을 사용하고 있습니다. ("/" 및 다른 것)
나는 clonezilla를 사용하여 두 개의 파티션을 복사하고 이미지에 넣었습니다. 그러나 내가 그들을 복제했을 때 그들은 sda5와 sda7이라는 파티션 이름을 유지했습니다. 내 컴퓨터에서 Gparted를 사용할 때 이미 sda5 파티션이 있으므로 clonezilla를 사용하면 다른 파티션을 복사하기 위해 해당 파티션이 지워집니다.
그것을 피할 수 있는 방법이 있나요? img 내부의 파티션 이름을 바꾸는 것이 좋을까요?
답변1
다음과 같이 두 컴퓨터 모두에서 dd를 사용하는 것이 좋습니다.
먼저 해당 파티션의 비어 있는 공간 전체에 0을 써서 오래된 데이터와 삭제된 파일을 제거합니다.
dd if=/dev/zero of=/mnt/original_partition/zerofile bs=16M conv=fdatasync
파티션에 남은 공간이 없으면 이 명령이 중지됩니다. 그런 다음 zerofile을 제거하십시오.
rm /mnt/original_partition/zerofile
이제 바이너리 수준의 파티션에 원하는 데이터만 있으므로 압축이 더 쉬워집니다. 이제 파티션의 바이너리 이미지를 만드십시오. fdisk -l을 사용하여 파티션 식별자(이 예에서는 /dev/sdb5로 지정)가 무엇인지 확인하고 다음 명령에서 해당 식별자를 사용합니다. 이 예에서는 gzip 대신 pigz를 사용하고 있습니다. Pigz는 gzip의 병렬 구현이며 시스템의 모든 코어를 사용하여 작업을 더 빠르게 만듭니다.
dd if=/dev/sdb5 bs=16M | pigz | dd of=/path/to/backup/storage/sdb5.img.gz bs=16M conv=fdatasync
이제 파티션의 압축된 바이너리 이미지가 생겼습니다. 그것을 다른 기계로 전송하십시오. 이제 fdisk를 사용하여 파티션을 준비해야 합니다(fdisk는 사용이 매우 간단합니다). 파티션을 필요한 만큼 크게 만들고 변경 사항을 디스크에 씁니다. 방금 /dev/sdb3 파티션을 생성했다고 가정해 보겠습니다.
이제 다음 명령을 사용하여 바이너리 이미지의 압축을 풀고 새 파티션에 씁니다.
dd if=/path/to/backup/storage/sdb5.img.gz bs=16M | pigz -d | dd of=/dev/sdb3 bs=16M conv=fdatasync
이 명령이 완료되면 mount 명령을 사용하여 복사된 파티션을 마운트할 수 있습니다.
mount /dev/sdb3 /mnt/copied-partition/
파티션 크기에 주의하세요. 최소한 원본 크기만큼 커야 합니다.