Re: Recent changes to bootconfig.c
>>>>> "Mark" == Mark van Walraven <firstname.lastname@example.org> writes:
Mark> I've looked through your changes for bootconfig.c rev 1.29 -> 1.30.
Mark> Unfortunately, I believe you have gone wrong on a few points.
Mark> In make_bootable():
Mark> 1. It is not safe to assume that the boot device defaults to the root!
Mark> Consider root on hdb and lilo in an extended partition on hda.
I've begun to make some changes that are not yet committed to CVS
that address this somewhat... It doesn't run just yet -- there's a
crash bug I've not gotten to; I'll work on it tomorrow (Monday) all
day; I'm considering creating a branch to check it in on so yous can
have a look and see if you like what I'm doing with it.
I created a new variable, Boot, that shadows Root unless you create a
small partition and mount it as /boot, in which case that becomes
Boot. I think now that this might not always be the way folks will
want to set it up... Ideas?
I have it messageing prior to running `cfdisk', explaining this
partitioning scheme. In mount_partition, it fills in a template for
/boot... It doesn't yet, but should, check the size and location of
the about to be mounted partition before offering to mount on /boot.
It needs to be a low-cylinder small partition. Will this setup work
well later on when we switch to Grub? /boot is where the Linux
kernels are stowed.
hda1 -> 5Mb in low cylinder range for /boot
... whatever else ...
hdb ... whatever.
I have also modified the install.sh script and the lilo.conf template
to put the kernel symlinks inside /boot where they belong, so that a
`make install' from the kernel-source will actually work.
Mark> 2. The 'problem earlier and user responded "no"' test should come after
Mark> run_lilo(), or else the user won't have a lilo.conf to edit.
Mark> You have also put it ahead of all the prompts at which the user
Mark> might have responded "no"!
Mark> 3. Similarly, run_lilo() needs to be run *after* the boot device has
Mark> been chosen, not before.
Mark> In run_lilo():
Mark> 4. You cannot write the boot= line unless the boot device is known
Mark> (a consequence of 1. above) and ...
Mark> 5. Therefore you should generate lilo.conf, but not run lilo if boot
Mark> is NULL.
Mark> 6. "Install lilo on master boot record" belongs in make_bootable(),
Mark> where the boot device/partition selection is already handled for
Mark> the case that root is a logical partitions. Passing installed_mbr
Mark> by address sort-of highlights this. Probably the entire selection
Mark> of boot device/partition belongs in a new function.
I've reorganized this stuff some, but not as much as perhaps it ought
Mark> I really don't mean to be rude, but I have been working on this for some
Mark> time and it is difficult to get right. I have several times declared in
Mark> debian-boot that I am working on this code and am annoyed that you have
Mark> made these changes that (a) break some of the things I did to improve
Mark> incorrect code and (b) make it impossible for me to continue in the path
Mark> I was going - without communicating with me first.
Mark> I hope I am not out of line here. Unlike you, I am not an official
Mark> developer. Still, I hope we can work together on this.
Do you have patches to show us? Do you have writes on CVS?