2011/10/4 Robert Millan <r...@debian.org>: > 2011/10/2 Stefan Lippers-Hollmann <s....@gmx.de>: >> [ Unrelated to this, I have been playing with the idea of doing a >> kFreeBSD-amd64/ unstable installation on real hardware, to allow me >> some further wpasupplicant (or lirc) testing, but all of my systems >> use lvm2 on top of MSDOS or GPT partition tables spanning the whole >> drive (/ on lvm2, no dedicated /boot/). This configuration is >> apparently not supported by Debian/ kFreeBSD yet, e.g. d-i/ partman >> doesn't offer to use the volume group or existing logical volumes >> therein and grub2 can't find the root device, if copied manually. >> While I have tested to move kFreeBSD manually to a prepared ufs2 >> filesystem on top of a LVM2 logical volume, which works fine after >> adapting fstab and setting >> kfreebsd_module_elf /lib/modules/8.2-1-amd64/geom_linux_lvm.ko >> in grub.cfg of an external grub2 install (either on a regular >> partition or linux / on lvm2) in kvm, I didn't try to move such >> an install to real hardware, yet. ] > > This patch should fix your grub.cfg problem, could you test?
And as for D-I support, this one should enable detection in partman menu (or almost). Could you verify it works? You can do a quick check with: rmh@thorin:/tmp/partman-base-147$ gcc parted_devices.c -o parted_devices -lparted && sudo ./parted_devices and see if it lists your LVM volumes. -- Robert Millan
Index: parted-2.3/libparted/arch/freebsd.c =================================================================== --- parted-2.3.orig/libparted/arch/freebsd.c 2011-10-04 07:04:59.000000000 +0200 +++ parted-2.3/libparted/arch/freebsd.c 2011-10-04 07:08:39.589736010 +0200 @@ -1140,6 +1140,31 @@ return 1; } +static int +_probe_lvm_volumes () +{ + DIR* lvm_dir; + struct dirent* lvm_dent; + char buf[PATH_MAX]; + struct stat st; + + lvm_dir = opendir ("/dev/linux_lvm"); + if (!lvm_dir) + return 0; + + while ((lvm_dent = readdir (lvm_dir))) { + if (strcmp (lvm_dent->d_name, ".") == 0 || strcmp (lvm_dent->d_name, "..") == 0) + continue; + snprintf (buf, sizeof (buf), "/dev/linux_lvm/%s", lvm_dent->d_name); + if (stat (buf, &st) != 0) + continue; + _ped_device_probe (buf); + } + closedir (lvm_dir); + + return 1; +} + static void freebsd_probe_all () { @@ -1148,6 +1173,8 @@ _probe_kern_disks (); _probe_zfs_volumes (); + + _probe_lvm_volumes (); } static char*