summaryrefslogtreecommitdiffstats
path: root/perl-install/any.pm
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2004-09-09 03:30:58 +0000
committerPascal Rigaux <pixel@mandriva.com>2004-09-09 03:30:58 +0000
commit5efd89130d82b9e6f2f6e77654cc323a364ed413 (patch)
treeb4e5533621722a1c7c3bdd836e3ee86544bc1158 /perl-install/any.pm
parent73774bc4456089e4f54df0fcd79bc6b99c6f2f1e (diff)
downloaddrakx-5efd89130d82b9e6f2f6e77654cc323a364ed413.tar
drakx-5efd89130d82b9e6f2f6e77654cc323a364ed413.tar.gz
drakx-5efd89130d82b9e6f2f6e77654cc323a364ed413.tar.bz2
drakx-5efd89130d82b9e6f2f6e77654cc323a364ed413.tar.xz
drakx-5efd89130d82b9e6f2f6e77654cc323a364ed413.zip
handles the lilo case where it wants to assign a new Volume ID: prompt the user, then
- if it doesn't want to modify the Volume ID, use static-bios-codes to be able to install lilo - otherwise call lilo with answer "n" to the question "Is the above disk an NT boot disk?" so that it assigns a new Volume ID
Diffstat (limited to 'perl-install/any.pm')
-rw-r--r--perl-install/any.pm19
1 files changed, 17 insertions, 2 deletions
diff --git a/perl-install/any.pm b/perl-install/any.pm
index 7ac2be7c2..515914210 100644
--- a/perl-install/any.pm
+++ b/perl-install/any.pm
@@ -111,6 +111,7 @@ sub installBootloader {
eval { run_program::rooted($::prefix, 'lilo', '-u') } if $::isInstall && !$::o->{isUpgrade} && -e "$::prefix/etc/lilo.conf" && glob("$::prefix/boot/boot.*");
+ retry:
eval {
my $_w = $in->wait_message(N("Please wait"), N("Bootloader installation in progress"));
bootloader::install($b, $all_hds);
@@ -121,8 +122,22 @@ sub installBootloader {
$err =~ s/^\w+ failed// or die;
$err = formatError($err);
while ($err =~ s/^Warning:.*//m) {}
- $in->ask_warn('', [ N("Installation of bootloader failed. The following error occurred:"), $err ]);
- return;
+ if (my ($dev) = $err =~ /^Reference:\s+disk\s+"(.*?)".*^Is the above disk an NT boot disk?/ms) {
+ if ($in->ask_yesorno('',
+formatAlaTeX(N("LILO wants to assign a new Volume ID to drive %s. However, changing
+the Volume ID of a Windows NT, 2000, or XP boot disk is a fatal Windows error.
+This caution does not apply to Windows 95 or 98, or to NT data disks.
+
+Assign a new Volume ID?", $dev)))) {
+ $b->{force_lilo_answer} = 'n';
+ } else {
+ $b->{'static-bios-codes'} = 1;
+ }
+ goto retry;
+ } else {
+ $in->ask_warn('', [ N("Installation of bootloader failed. The following error occurred:"), $err ]);
+ return;
+ }
} elsif (arch() =~ /ppc/) {
my $of_boot = cat_("$::prefix/tmp/of_boot_dev") || die "Can't open $::prefix/tmp/of_boot_dev";
chop($of_boot);