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

[PATCH] Set the boot flag on the GPT PMBR (#754850)



From: "Brian C. Lane" <bcl redhat com>

Some BIOS systems (LENOVO) have problems booting from GPT without the
boot flag of the protective MBR set. This makes sure that it is alway on
when using GPT labeled disks.
---
 pyanaconda/platform.py                  |    8 --------
 pyanaconda/storage/formats/disklabel.py |    7 +++++++
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/pyanaconda/platform.py b/pyanaconda/platform.py
index a2ce1d8..9840f03 100644
--- a/pyanaconda/platform.py
+++ b/pyanaconda/platform.py
@@ -163,7 +163,6 @@ class X86(Platform):
 
     def __init__(self, anaconda):
         super(X86, self).__init__(anaconda)
-        self.blackListGPT()
 
     def setDefaultPartitioning(self):
         """Return the default platform-specific partitioning information."""
@@ -182,13 +181,6 @@ class X86(Platform):
         else:
             return 0
 
-    def blackListGPT(self):
-        buf = iutil.execWithCapture("dmidecode",
-                                    ["-s", "chassis-manufacturer"],
-                                    stderr="/dev/tty5")
-        if "LENOVO" in buf.splitlines() and "gpt" in self._disklabel_types:
-            self._disklabel_types.remove("gpt")
-
 class EFI(Platform):
     _bootloaderClass = bootloader.EFIGRUB
 
diff --git a/pyanaconda/storage/formats/disklabel.py b/pyanaconda/storage/formats/disklabel.py
index 734f13e..c439c5f 100644
--- a/pyanaconda/storage/formats/disklabel.py
+++ b/pyanaconda/storage/formats/disklabel.py
@@ -158,6 +158,13 @@ class DiskLabel(DeviceFormat):
             if self._partedDisk.isFlagAvailable(parted.DISK_CYLINDER_ALIGNMENT):
                 self._partedDisk.unsetFlag(parted.DISK_CYLINDER_ALIGNMENT)
 
+            # Set the boot flag on the GPT PMBR, this helps some BIOS systems boot
+            if self._partedDisk.isFlagAvailable(parted.DISK_GPT_PMBR_BOOT):
+                self._partedDisk.setFlag(parted.DISK_GPT_PMBR_BOOT)
+                log.debug("Set pmbr_boot on %s" % (self._partedDisk,))
+            else:
+                log.debug("Did not set pmbr_boot on %s" % (self._partedDisk,))
+
         return self._partedDisk
 
     @property
-- 
1.7.6.5


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