+ my @vmlinuz = readpipe("/bin/ls -t -1 /boot/vmlinuz* 2>/dev/null");
+
+ # create some lines for each kernel image
+ $nr = 0;
+ foreach $image (@vmlinuz) {
+ # search for kernel initrd file
+ chomp $image;
+ $initrd = $image;
+ $initrd =~ s/vmlinuz/initrd\.img/;
+ $initrd2 = $initrd;
+ $initrd2 =~ s/\.img//;
+ $nr2 = $nr + 1;
+
+ print MYFH_NEW 'image = ' . $image . "\n";
+ if($opt_v) { print 'image = ' . $image . "\n"; }
+
+ if ($nr == 0) {
+ print MYFH_NEW "\t" . 'label = "Linux"' . "\n";
+ if($opt_v) { print "\t" . 'label = "Linux"' . "\n"; }
+ }
+ elsif ($nr == 1) {
+ print MYFH_NEW "\t" . 'label = "Linux Old"' . "\n";
+ if($opt_v) { print "\t" . 'label = "Linux Old"' . "\n"; }
+ }
+
+ print MYFH_NEW "\t" . 'read-only' . "\n";
+ if($opt_v) { print "\t" . 'read-only' . "\n"; }
+ print MYFH_NEW "#\t" . 'restricted' . "\n";
+ if($opt_v) { print "#\t" . 'restricted' . "\n"; }
+ print MYFH_NEW "#\t" . 'alias = ' . "$nr2" . "\n";
+ if($opt_v) { print "#\t" . 'alias = ' . "$nr2" . "\n"; }
+ print MYFH_NEW "#\t" . 'optional' . "\n";
+ if($opt_v) { print "#\t" . 'optional' . "\n"; }
+
+ if (-e $initrd) {
+ print MYFH_NEW "\t" . 'initrd = ' . $initrd . "\n";
+ if($opt_v) { print "\t" . 'initrd = ' . $initrd . "\n"; }
+ }
+ elsif (-e $initrd2) {
+ print MYFH_NEW "\t" . 'initrd = ' . $initrd2 . "\n";
+ if($opt_v) { print "\t" . 'initrd = ' . $initrd2 . "\n"; }
+ }
+ else {
+ if($opt_v) { print "W: initrd $initrd could not be found!\n" }
+ }
+
+ print MYFH_NEW "\n";
+ if($opt_v) { print "\n"; }
+
+ $nr++;
+ last if ($nr > 1);
+ }
+
+ close(MYFH_NEW);
+
+ if ($nr == 0) {
+ print "No images '/boot/vmlinuz*' found!\n";
+ if($opt_v) { print "\n"; }
+ }
+ elsif( not $opt_v ) {
+ print "$nr images '/boot/vmlinuz*' found.\n";
+ }
+ return ($nr > 0); # if =0 this is an error
+}
+
+sub write_imagelinks_config {
+
+ my $image;
+ my $initrd;
+ my $nr;
+ my $nr2;