18 |
our $server; |
our $server; |
19 |
our $server_ip; |
our $server_ip; |
20 |
|
|
21 |
sub available { qw/katalog debian_live webconverger debirf tinycore nfsroot openvz printer wrt clonezilla ubuntu memdisk vyatta android/ }; |
sub available { qw/ |
22 |
|
katalog debian_live webconverger |
23 |
|
debirf tinycore nfsroot |
24 |
|
openvz printer wrt |
25 |
|
clonezilla ubuntu memdisk vyatta android |
26 |
|
systemrescue |
27 |
|
memtest |
28 |
|
/ }; |
29 |
|
|
30 |
sub debian_live { |
sub debian_live { |
31 |
my ($ip) = @_; |
my ($ip) = @_; |
270 |
|
|
271 |
}); |
}); |
272 |
} |
} |
273 |
|
|
274 |
|
|
275 |
|
# http://www.sysresccd.org/Sysresccd-manual-en_PXE_network_booting |
276 |
|
sub systemrescue { |
277 |
|
my $ip = shift; |
278 |
|
my $path = upstream::iso( 'http://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/1.6.1/systemrescuecd-x86-1.6.1.iso/download' ); |
279 |
|
|
280 |
|
my $dir = "$server::base_dir/tftp/systemrescue"; |
281 |
|
symlink '/usr/lib/syslinux/memdisk', "$dir/memdisk" unless -e "$dir/memdisk"; |
282 |
|
|
283 |
|
client::conf $ip => 'kvm.boot' => "n -cdrom $path"; |
284 |
|
|
285 |
|
pxelinux::config_for_ip( $ip, qq{ |
286 |
|
|
287 |
|
default systemrescue |
288 |
|
label systemrescue |
289 |
|
|
290 |
|
kernel iso/isolinux/rescuecd |
291 |
|
append initrd=iso/isolinux/initram.igz dodhcp netboot=http://$server::ip:7777/systemrescue/iso/sysrcd.dat |
292 |
|
|
293 |
|
}); |
294 |
|
} |
295 |
|
|
296 |
|
# http://www.memtest.org/ |
297 |
|
sub memtest { |
298 |
|
my $ip = shift; |
299 |
|
|
300 |
|
my $dir = "$server::base_dir/tftp/memtest"; |
301 |
|
mkdir $dir unless -e $dir; |
302 |
|
symlink '/boot/memtest86+.bin', "$dir/memtest.bin" unless -e "$dir/memtest.bin"; |
303 |
|
|
304 |
|
pxelinux::config_for_ip( $ip, qq{ |
305 |
|
|
306 |
|
default memtest |
307 |
|
label memtest |
308 |
|
linux memtest.bin |
309 |
|
|
310 |
|
}); |
311 |
|
} |
312 |
|
|
313 |
sub in_chroot { |
sub in_chroot { |
314 |
my ( $dir, $command ) = @_; |
my ( $dir, $command ) = @_; |