Michael Tautschnig a écrit :
Ok, this will need some more experimental work I'm afraid. Could you try to do
some manual steps and report back before we actually build this into
setup-storage?

On that particular host, I'd like to know how

parted -s /dev/sda mklabel msdos
parted -s /dev/sda mkpart primary ext3 512B 536871423B
parted -s /dev/sda mkpart primary  536871424B 80026361855B
parted -s /dev/sda set 1 boot on
mkfs.ext3  /dev/sda1
parted -s /dev/sda set 2 lvm on
vgchange -a y vg0

behaves in comparison to

vgchange -a n vg0
parted -s /dev/sda mklabel msdos
parted -s /dev/sda mkpart primary ext3 512B 536871423B
parted -s /dev/sda mkpart primary  536871424B 80026361855B
parted -s /dev/sda set 1 boot on
mkfs.ext3  /dev/sda1
parted -s /dev/sda set 2 lvm on
vgchange -a y vg0
Apart from the extra output line, I can see no difference : in both
cases, the LVM volumes are back and active after the last vgchange.
Here's the full output of the second command list.


[...]

Could you maybe do an explicit vgchange -a y vg0 beforehand? Somehow it should
be possible to reprocduce the error that parted reports when doing, e.g., the
second mkpart. That error was

Error: Error informing the kernel about modifications to partition /dev/sda2 --
Device or resource busy.

in http://paste.debian.net/67978/.
I had started lvm before running the commands, but it's not enough to reproduce the problem. I have also tried to run them after having stopped the installation, didn't work either. I finally inserted the vgchange line in Commands.pm, it seems to have been run as expected, and the result is still an error that happens later. The result is at http://paste.debian.net/68689/, and my (quite sloppy :-) ) patch is below:

--- Commands.pm.~1~     2010-04-13 13:32:32.000000000 +0200
+++ Commands.pm 2010-04-13 15:20:11.000000000 +0200
@@ -806,6 +806,7 @@
    or die "Can't change disklabel, partitions are to be preserved\n";

  # write the disklabel to drop the previous partition table
+ &FAI::push_command( "vgchange -a n vg0", "vg_created_vg0", "vg_disabled_vg0" );
  &FAI::push_command( "parted -s $disk mklabel $label", "exist_$disk",
    "cleared1_$disk" );

--
Nicolas

Antwort per Email an