Bug#516347: debian-installer: guided-with-lvm no longer allows multiple primary partition
Hello.
I'm facing the same problem while preseededing partionning recipes in
the lenny amd64 installer on a 10Gb xen virtual hard drive, but it is not lvm
specific, as it appears also in partman-auto with regular recipes.
I don't know more than you if it comes from an incorrect recipe, or some
regression from etch.
Either of the two following recipes exits with a "Can't have a partition
outside the disk!"/"This probably happened because there are too many
(primary) partitions in the partition table." error message.
Recipe 1 fails : /boot + lvm root partition :
d-i partman-auto/method string lvm
d-i partman-auto/expert_recipe string custom :: \
96 128 128 ext3 $primary{ } $bootable { } \
method{ format } format{ } use_filesystem{ } \
filesystem{ ext3 } options/nodev{ nodev } mountpoint{ /boot } \
. \
100 1000 -1 ext3 $lvmok{ } method{ format } format{ } \
use_filesystem{ } filesystem{ ext3 } mountpoint{ / } .
/var/log/partman :
parted_server: Opening infifo
/bin/autopartition-lvm: IN: NEW_PARTITION =dev=hda primary ext3
131604480-10939622399 beginning 10819000001
parted_server: Read command: NEW_PARTITION
parted_server: command_new_partition()
parted_server: Note =dev=hda as changed
parted_server: Opening outfifo
parted_server: requested partition with type primary
parted_server: requested partition with file system ext3
parted_server: add_primary_partition(disk(21381120),257040-21387899)
parted_server: OUT: Error
parted_server: OUT: Can't have a partition outside the disk!
Recipe 2 fails : /boot + regular primary root partition :
d-i partman-auto/method string regular
d-i partman-auto/expert_recipe string custom :: \
96 128 128 ext3 $primary{ } $bootable { } \
method{ format } format{ } use_filesystem{ } \
filesystem{ ext3 } options/nodev{ nodev } mountpoint{ /boot } \
. \
100 1000 -1 ext3 $primary{ } method{ format } format{ } \
use_filesystem{ } filesystem{ ext3 } mountpoint{ / } .
/var/log/partman :
parted_server: Opening infifo
/bin/perform_recipe: IN: NEW_PARTITION =dev=hda primary ext3
131604480-10939622399 beginning 10819000001
parted_server: Read command: NEW_PARTITION
parted_server: command_new_partition()
parted_server: Note =dev=hda as changed
parted_server: Opening outfifo
parted_server: requested partition with type primary
parted_server: requested partition with file system ext3
parted_server: add_primary_partition(disk(21381120),257040-21387899)
parted_server: OUT: Error
parted_server: OUT: Can't have a partition outside the disk!
In either case, parted_server is asked to create a primary partition
which goes beyond the disk end :
10819000001 (size) + 131604480 (beginning) = 10950604481
Traces in partman-auto and partman-auto-lvm shell scripts shows that
the disk size is correctly :
+ disksize=10947133440
I still got to track back how this improper size value is computed.
Changing recipe 2 to have a logical root partition leads to a
successfull partitionning :
d-i partman-auto/method string regular
d-i partman-auto/expert_recipe string custom :: \
96 128 128 ext3 $primary{ } $bootable { } \
method{ format } format{ } use_filesystem{ } \
filesystem{ ext3 } options/nodev{ nodev } mountpoint{ /boot } \
. \
100 1000 -1 ext3 method{ format } format{ } \
use_filesystem{ } filesystem{ ext3 } mountpoint{ / } .
parted_server: Opening infifo
/bin/perform_recipe: IN: NEW_PARTITION =dev=hda logical ext3
131604480-10939622399 full 10819000001
parted_server: Read command: NEW_PARTITION
parted_server: command_new_partition()
parted_server: Note =dev=hda as changed
parted_server: Opening outfifo
parted_server: requested partition with type logical
parted_server: requested partition with file system ext3
parted_server: OUT: OK
As the position is "full" instead of "beginning", the given size is
ignored, and the partitionning succeed :
# fdisk -l /dev/hda
Disk /dev/hda: 10.9 GB, 10947133440 bytes
255 heads, 63 sectors/track, 1330 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000c38bd
Device Boot Start End Blocks Id System
/dev/hda1 1 16 128488+ 83 Linux
/dev/hda2 17 1330 10554705 5 Extended
/dev/hda5 17 1330 10554673+ 83 Linux
Regards.
--
Simon Walter
Reply to: