Package: parted Version: 2.3-9 Severity: normal Hi, GPT, 23 partitions).
I am currently having some trouble with partprobing a device created via dmsetup. It basically consists of my normal /dev/sda with a few sectors exchanged. My /dev/sda uses GPT and has more than 16 partitions. Now doing a partprobe on the newly created /dev/mapper/testdisk only creates a /dev/mapper/testdisk1 to /dev/mapper/testdisk16, the other ones are missing. The issue should be reproduceable with the attached test script. The wget'ed or in this email attached raw disk image (32MB, 6KB compressed) consists of 23 zero'ed 1MiB partitions with a GPT and fails this test script for me. I also tried upgrading parted/libparted0debian1 to 3.1, but the issue still remained. Cheers, Linus -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-2-amd64 (SMP w/2 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages parted depends on: ii libblkid1 2.20.1-4 ii libc6 2.13-27 ii libdevmapper1.02.1 2:1.02.67-2 ii libparted0debian1 2.3-9 ii libreadline6 6.2-8 ii libtinfo5 5.9-5 ii libuuid1 2.20.1-4 parted recommends no packages. Versions of packages parted suggests: pn parted-doc <none> -- debconf-show failed
#!/bin/sh
NAME="testdisk"
## Cleanup device mapper
for i in `seq 1 32`; do
[ -e /dev/mapper/$NAME$i ] && {
dmsetup remove $NAME$i
[ -e /dev/mapper/$NAME$i ] && rm /dev/mapper/$NAME$i
}
[ -e /dev/mapper/${NAME}p$i ] && {
dmsetup remove ${NAME}p$i
[ -e /dev/mapper/${NAME}p$i ] && rm /dev/mapper/${NAME}p$i
}
done
[ -e /dev/mapper/$NAME ] && dmsetup remove $NAME
## Cleanup loop device
LOOPDEV="`losetup -a | grep "/tmp/$NAME" | cut -f1 -d':'`"
[ -n "$LOOPDEV" ] && losetup -d $LOOPDEV
## Setup loop device
wget -q http://x-realis.dyndns.org/parted/testdisk.xz -O - | xz -d > /tmp/$NAME
losetup -f /tmp/$NAME
LOOPDEV="`losetup -a | grep "/tmp/$NAME" | cut -f1 -d':'`"
## Setup device mapper
echo "0 $((2**25/512)) linear $LOOPDEV 0" | dmsetup create $NAME
## Probe partition table
RETPARTPROBE="`partprobe -s /dev/mapper/$NAME`"
echo $RETPARTPROBE
COUNTPARTPROBE="`echo $RETPARTPROBE | sed "s#/dev/mapper/$NAME: gpt partitions##" | wc -w`"
ls /dev/mapper/$NAME*
COUNTLS=$((`ls /dev/mapper/$NAME* | wc -w`-1))
[ ! $COUNTLS -eq $COUNTPARTPROBE ] && {
printf "Failure! Partprobe missed some partitions (%d vs %d)\n" $COUNTLS $COUNTPARTPROBE
exit 1
}
printf "Success! Partprobe found all %d partititions\n" $COUNTLS
exit 0
testdisk.xz
Description: application/xz

