FAI 4 Debian Wheezy und LVM Probleme
FAI 4 Debian Wheezy LVM Bug
Leider sind bei meiner aktuellen FAI Installation noch zwei LVM Bugs vorhanden.
Ist schon im FAI Wiki hinterlegt.
Der erste Fehler:
dracut findet beim booten ein bestehendes LVM und mountet nicht das Live-System (nfsroot)
Lösung ist beim fai-chroot den Kernelparameter „-k rd_NO_LVM“ anzugeben.
Dadurch wird der Kernel angewiesen keine LVM Treiber zu laden.
Wenn man dies nicht immer wieder von hand angeben will kann man auch nen alias in der .bachrc setzen.
alias fai-chboot='fai-chboot -k rd_NO_LVM'
Der zweite Fehler:Die FAI Installation bricht beim Storage Setup da es ein LVM findet, und dies nicht löschen tut.
Eine mögliche Lösung ist bei github hinterlegt
Hier als Patch Datei
--- /srv/fai/nfsroot/usr/share/fai/setup-storage/Commands.pm.orig 2013-04-19 20:48:00.000000000 +0200 +++ /srv/fai/nfsroot/usr/share/fai/setup-storage/Commands.pm 2013-04-19 20:50:17.170737861 +0200 @@ -644,6 +644,8 @@ if (0 == $clear_vg) { my $vg_setup_pre = "vgchange_a_n_VG_$vg"; + &FAI::push_command( "vgchange -a y $vg", + "", "vg_enabled_for_destroy_$vg" ); if (defined($FAI::configs{"VG_$vg"})) { $FAI::configs{"VG_$vg"}{exists} = 1; @@ -664,12 +666,12 @@ } } - &FAI::push_command( "wipefs -a $vg/$lv", - "vgchange_a_n_VG_$vg$pre_deps_cl", + &FAI::push_command( "wipefs -a /dev/$vg/$lv", + "vg_enabled_for_destroy_$vg$pre_deps_cl", "wipefs_$vg/$lv"); &FAI::push_command( "lvremove -f $vg/$lv", "wipefs_$vg/$lv", - "lv_rm_$vg/$lv,self_cleared_/dev/$vg/$lv"); + "lv_rm_$vg/$lv,self_cleared_$lv"); $vg_setup_pre .= ",lv_rm_$vg/$lv"; } } else { @@ -683,18 +685,21 @@ } my $vg_destroy_pre = "vgchange_a_n_VG_$vg"; + &FAI::push_command( "vgchange -a y $vg", + "", "vg_enabled_for_destroy_$vg" ); + foreach my $lv (keys %{ $FAI::current_lvm_config{$vg}{volumes} }) { my $pre_deps_cl = ""; $pre_deps_cl = ",self_cleared_" . join(",self_cleared_", @{ $FAI::current_dev_children{"/dev/$vg/$lv"} }) if (defined($FAI::current_dev_children{"/dev/$vg/$lv"}) && scalar(@{ $FAI::current_dev_children{"/dev/$vg/$lv"} })); - &FAI::push_command( "wipefs -a $vg/$lv", - "vgchange_a_n_VG_$vg$pre_deps_cl", + &FAI::push_command( "wipefs -a /dev/$vg/$lv", + "vg_enabled_for_destroy_$vg$pre_deps_cl", "wipefs_$vg/$lv"); &FAI::push_command( "lvremove -f $vg/$lv", "wipefs_$vg/$lv", - "lv_rm_$vg/$lv,self_cleared_/dev/$vg/$lv"); ++ "lv_rm_$vg/$lv,self_cleared_$lv"); $vg_destroy_pre .= ",lv_rm_$vg/$lv"; } &FAI::push_command( "vgremove $vg", "$vg_destroy_pre", "vg_removed_$vg");
Eventuell verzieht mein Blog die Zeichen deswegen hier noch als Datei.
FAI_setup-storage_Commands.pm.patch
Alternativ kann man diese Datei in /etc/fai/nfsroot-hooks erstellen und ausführbar machen.
10_FAI_setup-storage_Commands.pm.patch.sh
Patch anwenden
Dieser Patch muss, bis er eingebaut ist, bei jeder neu Erstellung des FAI Live-Systems wieder angewendet werden.
Anstatt einen alias zu nutzen wuerde ich die Templatefunktion von fai-chboot nutzen und dann das Template mit fai-chboot -vc templatename rechnermane kopieren.