diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2004-09-09 03:30:58 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2004-09-09 03:30:58 +0000 |
commit | 5efd89130d82b9e6f2f6e77654cc323a364ed413 (patch) | |
tree | b4e5533621722a1c7c3bdd836e3ee86544bc1158 | |
parent | 73774bc4456089e4f54df0fcd79bc6b99c6f2f1e (diff) | |
download | drakx-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
-rw-r--r-- | perl-install/any.pm | 19 |
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); |