diff options
Diffstat (limited to 'perl-install/standalone/drakboot')
-rwxr-xr-x | perl-install/standalone/drakboot | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/perl-install/standalone/drakboot b/perl-install/standalone/drakboot new file mode 100755 index 000000000..33af4079a --- /dev/null +++ b/perl-install/standalone/drakboot @@ -0,0 +1,42 @@ +#!/usr/bin/perl + +use lib qw(/usr/lib/libDrakX); + +use common qw(:system :file :functional); +use interactive; +use any; +use lilo; +use detect_devices; +use fsedit; +use c; + +local $_ = join '', @ARGV; + +/-h/ and die "usage: drakboot\n"; + +$::isStandalone = 1; + +my $in = vnew interactive('su'); + +my $bootloader = lilo::read('', '/etc/lilo.conf'); + +my $hds = catch_cdie { fsedit::hds([ detect_devices::hds() ], {}) } sub { 1 }; +my $fstab = [ fsedit::get_fstab(@$hds) ]; +fs::get_mntpoints_from_fstab($fstab); + +ask: +any::setupBootloader($in, $bootloader, $hds, $fstab, $ENV{SECURE_LEVEL}) or $in->exit(0); + +eval { lilo::install('', $bootloader) }; +my $err = $@; +eval { lilo::install_grub('', $bootloader, $fstab, $hds) }; + +if ($err && $@) { + $in->ask_warn('', + [ _("Installation of LILO failed. The following error occured:"), + grep { !/^Warning:/ } cat_("/tmp/.error") ]); + unlink "/tmp/.error"; + goto ask; +} + +$in->exit(0); |