--- lib/PXElator/config.pm 2010/07/10 12:57:38 503 +++ lib/PXElator/config.pm 2010/07/21 16:50:27 511 @@ -17,7 +17,7 @@ our $server; our $server_ip; -sub available { qw/katalog debian_live webconverger debirf tinycore nfsroot openvz printer wrt clonezilla ubuntu/ }; +sub available { qw/katalog debian_live webconverger debirf tinycore nfsroot openvz printer wrt clonezilla ubuntu freedos/ }; sub debian_live { my ($ip) = @_; @@ -159,6 +159,33 @@ }); } + +sub freedos { + my $ip = shift; + + my $dir = "$server::base_dir/tftp/freedos"; + mkdir $dir unless -e $dir; + + symlink '/usr/lib/syslinux/memdisk', "$dir/memdisk" unless -e "$dir/memdisk"; + + my $image = client::conf( $ip => 'memdisk.image' ); + + if ( ! $image ) { + $image = 'freedos.gz'; + upstream::mirror_file 'http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/unofficial/balder/balder10.imz' => "$dir/$image"; + } else { + $image =~ s{^.+/tftp/freedos/}{} && warn "using $image\n"; + } + + pxelinux::config_for_ip( $ip, qq{ + +default freedos +label freedos + kernel memdisk + append initrd=$image + + }); +} sub in_chroot { my ( $dir, $command ) = @_;