[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [PATCH] Do not set boot flag when there is already a partition with the flag



This looks reasonable to me, but I would still wait for some input from somebody more familiar with storage stuff.

Martin

----- "Hans de Goede" <hdegoede redhat com> wrote:

> In F-10 and before we did not set the boot flag for /boot on msdos
> labels,
> this could lead to issues when asked to install grub into a
> partition,
> or with certain BIOS's which won't boot from a disk when there are no
> active partitions on the disk. However our new behavior of always
> setting
> the boot flag for /boot is wrong for msdos labels too, and is causing
> various
> issues, see (amongst others) bug 530894 and:
> http://forums.fedoraforum.org/showthread.php?t=231421
> http://forums.fedoraforum.org/showthread.php?t=2348
> ---
>  storage/__init__.py |   13 +++++++++++++
>  1 files changed, 13 insertions(+), 0 deletions(-)
> 
> diff --git a/storage/__init__.py b/storage/__init__.py
> index b3da135..ea89633 100644
> --- a/storage/__init__.py
> +++ b/storage/__init__.py
> @@ -291,6 +291,19 @@ class Storage(object):
>          else:
>              for dev in bootDevs:
>                  if hasattr(dev, "bootable"):
> +                    # Dos labels can only have one partition marked
> as active
> +                    # and unmarking ie the windows partition is not a
> good idea
> +                    skip = False
> +                    if dev.disk.format.partedDisk.type == "msdos":
> +                        for p in
> dev.disk.format.partedDisk.partitions:
> +                            if p.type == parted.PARTITION_NORMAL and
> \
> +                               p.getFlag(parted.PARTITION_BOOT):
> +                                skip = True
> +                                break
> +                    if skip:
> +                         log.info("not setting boot flag on %s as
> there is"
> +                                  "another active partition" %
> dev.name)
> +                         continue
>                      log.info("setting boot flag on %s" % dev.name)
>                      dev.bootable = True
>                      dev.disk.setup()
> -- 
> 1.6.5.2
> 
> _______________________________________________
> Anaconda-devel-list mailing list
> Anaconda-devel-list redhat com
> https://www.redhat.com/mailman/listinfo/anaconda-devel-list


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]