Bug#64823: incorrect LILO automatic placement on i386
Package: boot-floppies
Version: 2.2.13-2000-05-04
Severity: critical
Hello,
I have a disk ``factory clean'' with no MBR.
No primary partition on the disk, only logical. / = /dev/hda6
I plan to install LILO on the MBR. The install procedure will not let me
do that, It give me only the option to install LILO somewhere it can't be
reached.
==> System won't restart.
Here is what I did :
The disk is formatted like this :
Disk /dev/hda: 255 heads, 63 sectors, 1027 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 1027 8249346 5 Extended
/dev/hda5 1 31 248944+ 82 Linux swap
/dev/hda6 32 298 2144646 83 Linux
/dev/hda7 299 541 1951866 83 Linux
/dev/hda8 542 784 1951866 83 Linux
/dev/hda9 785 1027 1951866 83 Linux
I choose "make linux directly bootable from hard disk"
Then a dialog box says my disk is factory clean.
Then a dialog box asks for an MBR. I answer no
then another dialog ask for where to put lilo. I answer on the MBR.
Then a dialog says to me I have to install on /dev/hda1, and it does install
on /dev/hda1. The message goes like this :
The boot partition is a logical partition. It can't boot from there, so you
must install the MBR in one of the following extended partitions. Please
select the partition to use.
/dev/hda1
This is very bad because :
1) I have no MBR
2) even if I had one, /dev/hda1 is not marked as bootable, and it is
not automagically marked as bootable. I could not make /dev/hda1
bootable because cfdisk did not show the extended partition.
The system did not reboot. that's why I though the severity should be
set to critical. I had an "insert system disk" message from the PC bios.
I manage to finish the installation like this : I reboot with the boot
floppies, typing "linux root=/dev/hda6" at the boot prompt. After system
installation complete, I edit lilo.conf to install LILO on the mbr :
boot=/dev/hda. I run lilo and everything goes well.
Christophe
--
char*p="[)1++++++11+(QI1)9191991)9)1)(II1)919Y91)9)1)(AK+9;991+3*(9I1*IY991)Q1\
)(1I1))A91991)Q1)(+)1)1++9;)Q1+(";main(_){while(*p){for(_=*p-32>>3;_;--_)
putchar(' ');if(!(_=*p++-32&7))putchar('\n');else while(_--)printf("_/");}}
Reply to: