Today I've upgraded our FAI server to 4.0~beta2+experimental50 and rebuilt the nfsroot I'm working with. We have a new disk_config that ought to correspond to our requirements
disk_config disk1 bootable:1 preserve_lazy:1,2 primary - 512 - - primary - 0- - - disk_config disk2 bootable:1 preserve_lazy:1,2 primary - 512 - - primary - 0- - - disk_config raid preserve_lazy:0,1 always_format:0 raid1 /boot sda1,sdb1 ext4 rw,errors=remount-ro raid1 - sda2,sdb2 - - disk_config lvm preserve_lazy:vg0-home vg vg0 md1 vg0-swap swap 4096 swap rw vg0-local /usr/local 10240 ext4 rw vg0-src /usr/src 10240 ext4 rw vg0-usr /usr 10240 ext4 rw vg0-var /var 10240 ext4 rw vg0-tmp /tmp 2048 ext4 rw vg0-home /home 97280 ext4 rwvg0-root / 4096 ext4 rw,errors=remount-ro
With this disk_config the system becomes unbootable, GRUB doesn't seem to install correctly so all you get when booting this system is a blinking cursor in the lower left corner. In our PXE boot we have rescue-boot options with remote kernel and initrd image, with this it is kinda possible to boot the system. vg0-home is not preserved since the RAID isn't initialized prior to get_current_lvm.
Fredrik Eriksson wrote:
That is, it seems like it manages to preserve MBR with GRUB from a previously successful install but the initrd image doesn't seem to be built correctly, correct me if I'm wrong in my assumption here. We get our menu and it tries to boot but doesn't get further than thiswhen using these modifications--- /srv/fai/lennyroot64/live/filesystem.dir/usr/sbin/setup-storage 2010-12-23 23:21:37.000000000 +0100 +++ /srv/fai/squeezeroot64/live/filesystem.dir/usr/sbin/setup-storage 2011-01-05 14:47:11.000000000 +0100@@ -135,8 +135,12 @@ # read the sizes and partition tables of all disks listed in $FAI::disks &FAI::get_current_disks;+# if they are on top of RAID we have to start mdadm first+system "/sbin/mdadm-startall"; # see whether there are any existing LVMs &FAI::get_current_lvm; +# and stop mdadm +system "/etc/init.d/mdadm-raid stop";# see whether there are any existing RAID devices&FAI::get_current_raid; @@ -177,7 +181,11 @@ $FAI::debug and print Dumper \%FAI::configs;# generate the command script-&FAI::build_disk_commands; +# build_disk_commands won't leave our partitions alone +#&FAI::build_disk_commands; +&FAI::push_command( "true", "" , "pt_complete_/dev/sda"); +&FAI::push_command( "true", "" , "pt_complete_/dev/sdb"); + &FAI::build_raid_commands; &FAI::build_lvm_commands; &FAI::build_cryptsetup_commands;This seem to work as for preserving vg0-home and its contents and everything gets installed, but makes the system unbootable, it cannot find vg0 although the installation does.
It is possible to boot with our rescue-mode here, with remote kernel and initrd image, but as earlier you have to press Ctrl-D to boot the system although, this time, vg0-home is preserved.Loading, please wait... Volume group "vg0" not found Skipping volume group vg0 Unable to find LVM volume vg0/root
I've tried poking around at several different places in the setup-storage code but this is so far the closest we get to the functionality we're after, and perl isn't really my mother tongue since I haven't looked at it up until I started with this project. Personally I believe that I have to get my mind around the magic of build_disk_commands, that we just commented out and replaced with two lines, any pointers in the right direction are welcome.
I'll attach two log files. The format.log is from an install without modifications to usr/sbin/setup-storage and format2.log is from an install with the modifications mentioned in the diff above.
Kind regards -- Fredrik
<<attachment: fredrike.vcf>>
