On 06/20/2014 03:41 PM, Gene Czarcinski wrote:
While not specifically anaconda released, this mailing list was
suggested to have a discussion on a proposal I would like to make.
While I am writing this message, another individual has also been
involved: Heydayat Vatankhah <hedayatv@xxxxxxxxx> who happens to be
the Fedora package maintainer for the os-prober package.
Currently, grub2's 30_os-prober and the os-prober package as
implemented in rawhide are seriously broken. They simply do not work
and an OS newly installed by anaconda based on the current rawhide
will be unable to boot previously installed OSs. The BZ reports and
attached patches to fix the problem are here:
https://bugzilla.redhat.com/show_bug.cgi?id=1108296
https://bugzilla.redhat.com/show_bug.cgi?id=1108344
If it is of interest to anybody, I consider this problem to be a Fedora
21 Alpha blocker which should be fixed sooner rather than later. It is
a blocker because, without the fix, you will be unable to boot previous
installs after doing a new F21/rawhide install. This makes anaconda look
bad :-((
Gene
It takes both updates to fix things. Either one by themselves will
not break things any worse than they are.
This is not the first time that Heydayat and I have had problems with
os-prober and we have sent the fixes upstream but they have been
ignored. For example:
https://bugzilla.redhat.com/show_bug.cgi?id=888341
and note the response from upstream debian.
Anyway, Heyayat has previously mentioned forking os-prober and I
believe that the time has com to do just that.
1. Create a new package os-prober-ng which takes the current
os-prober-1.58-7 in rawhide plus my new patch plus a couple of the
patches in the debian os-prober repository and use that as the basis
for os-prober-ng-0.1. Naturally, lots of files will be renamed so
that they are different from the files in os-prober. The intent is not
to exactly replace os-prober but simply offer what I believe will be a
better product. Any better suggestions for a different name are welcome.
2. The new os-prober-ng will be an information gathering tool
intended to help configure a bootloader. For the most part, the
current "os-prober" program looks to be fairly complete as is (except
for a bug I am working on). However, it runs a number of tests for
obscure operating systems which lengthen the time that it takes to run
grub2-mkconfig. This includes qnx, lsb, hurd, minux, and Haiku. I
suggest these be dropped or, at the very least, put into a separate
binary rpm for optional installation.
3. An integral part of the current os-prober is the linux-boot-prober
which gathers the information needed to create all those wonderful
menuentry items by 30_os-prober. I have an alternative to propose
(see below) and therefor intend to make this another optional binary rpm.
4. A significant new program will use the path to a systems rootfs and
return the path to the grub.cfg for that system instance. This info
will be used to "chain load" grub2 configuration files.
5. It is interesting that extlinux (syslinux) also has the capability
to chain-load configuration files. Therefore, another optional
program will return the information needed to create chain-loading
extlinux configuration files.
6. Thanks to some prodding and information provided by Chris Murphy,
I believe I have figured out a way to chain-load UEFI configuration
files so that you will be able to have multi-boot fedora installations
on a UEFI system. Right now this is based on some hand-crafted grub2
files but it does appear to work and I have a qemu-kvm-ovmf UEFI
system with both Fedora 20 and Fedora 21 installed on a single disk
(naturally it is BTRFS partitioned ;) ). Both boot and run in
secure-boot mode.
Beside os-prober-ng, I am proposing a new package which I call
'multi-boot-configtool". This package will use the outputs of
os-prober-ng to create grub2 and (later) extlinux configurations
capable of booting previously installed systems.
1. The software will use /etc/grub.d/* files to support most of the
automation. However, there will be the capability to run some of it
independent of grub2 and grub2-mkconfig.
2. The package will have a /etc/default/multi-boot-configtool file to
store optional runtime variables.
3. The package will support creating configurations to "chainloader
+1" MBR, BIOS Boot partitions and EFI system partitions.
4. There will be three types of (optional) configuration files:
a) custom.cfg which is in the same directory as grub.cfg and is
invoked dynamically by /etc/grub.d/41_custom,
b) inline in a manner similar to the way 30_os-prober does, and
c) into a file similar to /etc/grub.d/40_custom.
5. There will be a 30_multi-boot which will be a somewhat re-written
30_os-prober. I am also proposing that grub2 drop 30_os-prober and
that its functionality be picked up by multi-boot-configtool.
Actually, I would prefer to just drop the creation of these menuentry
items pointing to kernels and initrds and simply chainload
configuration files. Comments here would be appreciated.
Timeline: I would like to see this in Fedora 21 but that is likely
wishful thinking on my part. As I see them, you will be able to
install both os-prober-ng and multi-boot-configtool in parallel with
existing packages so they will not be on a critical path.
Comments? Suggestions?
BTW, I plan to attempt establishing some communication with the
upstream developers/maintainers of os-prober as well as the grub2
developers to get their reaction to my proposals. Anyone wishing to
be part of those discussions, please name yourselves.
Gene
_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list