Error: ``` sudo losetup /dev/loop1 ./target.img # target.img is on /dev/loop1
``` Stupid me missed the extra `.` that doublespacing added above. On Sun, Nov 30, 2025 at 10:34 AM Cryptographrix <[email protected]> wrote: > ``` > > # make the images into /dev devices > > sudo losetup /dev/loop0 ./source.img # source.img is on /dev/loop0 > > sudo losetup /dev/loop1 ./target.img. # target.img is on /dev/loop1 > > > # make sure you have `gdisk` installed for these > > sudo sgdisk /dev/loop0 -R /dev/loop1 # this copies the partition table from > source.img to target.img > > sudo sgdisk -G /dev/loop1 # This randomizes the GUIDs on the new > partition table so your OS doesn't get confused > > > # do a partprobe to tell the kernel that the new partitions exist > > sudo partprobe /dev/loop1 > > > # Verify loopback devices have partitions you expect > > # adjust `for i in {0..3}` below if for some reason the partition index > (/dev/loop0p# and/or /dev/loop1p#) starts with 1 instead of 0 > > ls -lahtr /dev/loop* > > > # dd if/of each partition from source.img to target.img > > for i in {0..3}; do sudo dd status=progress if=/dev/loop0p${i} > of=/dev/loop1p${i} ; done > > > # for good measure and because I'm old > > sync > > > # how to detach the images from /dev devices > > sudo losetup -d /dev/loop0 > > sudo losetup -d /dev/loop1 > > ``` > > > On Sat, Nov 29, 2025 at 6:00 PM prk0ghy via GNU coreutils General > Discussion <[email protected]> wrote: > >> Hello Everyone, >> >> thank you for the great work on coreutils, i use them so often and would >> not know what to do without them. I have an issue with dd that I am not >> able to solve myself, that is why I am seeking for help here. >> I am trying to copy parts of a disk image to another file. I do this >> because the original disk image is 500GB in size but only ~25GB are >> actually used by partitions. My Idea was to copy only the first part of the >> image. fdisks displays the partitions like this: >> >> ``` >> fdisk -l ./source.imgDisk ./source.img: 465.76 GiB, 500107862016 bytes, >> 976773168 sectors >> Units: sectors of 1 * 512 = 512 bytes >> Sector size (logical/physical): 512 bytes / 512 bytes >> I/O size (minimum/optimal): 512 bytes / 512 bytes >> Disklabel type: gpt >> Disk identifier: AAAAA-AAAAA-AAAAA-AAAAA-AAAAA >> >> Device Start End Sectors Size >> Type >> ./source.img1 2048 616447 614400 300M Windows recovery environment >> ./source.img2 616448 821247 204800 100M EFI System >> ./source.img3 821248 1083391 262144 128M Microsoft reserved >> ./source.img4 1083392 52891647 51808256 24.7G Microsoft basic data >> ``` >> >> I tried it like this: >> >> >> ``` >> sudo dd status=progress count=52891647 if=/source.img of=/target.img >> ``` >> >> After the operation is finished I get: >> >> >> ``` >> ❯ fdisk -l ./taget.imgGPT PMBR size mismatch (976773167 != 52891646) will >> be corrected by write. >> Disk ./taget.img: 25.22 GiB, 27080523264 bytes, 52891647 sectors >> Units: sectors of 1 * 512 = 512 bytes >> Sector size (logical/physical): 512 bytes / 512 bytes >> I/O size (minimum/optimal): 512 bytes / 512 bytes >> Disklabel type: dos >> Disk identifier: 0x4afd3a95 >> >> Device Boot Start End >> Sectors Size Id Type >> ./taget.img1 1 52891646 52891646 25.2G ee GPT >> ``` >> >> >> >> I have no Idea what is happening. I tried iflag=sync conv=sync but the >> result is the same. Is there something I am missing? >> >> >> Thank you very much and have a nice time >> >> >> prk0ghy >> >> >> --- >> Version: >> coreutils.x86_64 9.6-6.fc42 >> <unknown>coreutils-common.x86_64 >> 9.6-6.fc42 <unknown> >> Kernel: >> Linux host 6.17.1-300.fc42.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Oct 9 >> 18:53:18 UTC 2025 x86_64 GNU/Linux >> >> >> OS: >> Description: Bluefin (Version: gts-42.20251125) > >
