In our case, a debug download revealed a message immediately after partclone exists with the “error exit” message: /dev/sda1 not found. The partition did not exist. Why?
For WIndows XP, fog writes a boot sector to the hard drive (that’s Stage 1 preparation). The boot sector being written is from a file /usr/share/fog/mbr/xp.mbr inside the init.xz image. That boot sector has a partition table containing a single partition starting at 32.3kB and ending at 80.0GB. If you hard drive is 79.99GB instead – as may be the case with older computers – that partition goes beyond the end of the disk, thus making the partition table invalid. Hence /dev/sda1 isn’t there and partclone fails.
Here’s how we solved it:
– Find the init.xz image (/var/www/fog/service/ipxe/init.xz)
– Unpack and mount the image (https://wiki.fogproject.org/wiki/index.php/Modifying_the_Init_Image)
– Use dd to copy xp.mbr onto an HDD (in this case, an additional, say 200 GB, virtual HDD)
(e.g. dd if=xp.mbr of=/dev/sdc bs=512 count=1)
– Use parted on that HDD (resizepart 1 35.0GB) – should be larger than your largest image, but smaller than your smallest HDD
– Use dd to copy the boot sector from the HDD back into the xp.mbr file
– Unmount and repack init.xz