SHA256
1
0
forked from pool/grub2

Accepting request 537924 from home:michals

Do not check that PReP partition does not contain an ELF during installation
  (bsc#1065738).
  * grub2-install-remove-useless-check-PReP-partition-is-empty.patch

OBS-URL: https://build.opensuse.org/request/show/537924
OBS-URL: https://build.opensuse.org/package/show/Base:System/grub2?expand=0&rev=281
This commit is contained in:
Michael Chang 2017-11-06 05:40:19 +00:00 committed by Git OBS Bridge
parent b046f3779b
commit 1d85774cd1
3 changed files with 88 additions and 0 deletions

View File

@ -0,0 +1,79 @@
From b57af595c94db6d7babb7623c1530ee4f5b956f0 Mon Sep 17 00:00:00 2001
From: Michal Suchanek <msuchanek@suse.de>
Date: Tue, 31 Oct 2017 14:28:54 +0100
Subject: [PATCH] grub-install: remove useless check PReP partition is empty.
References: bsc#1065738
The grub-install rewrite in commit cd46aa6cefab checks that the PPeP
partition does not install an ELF binary before writing grub to it. This
causes regression in installer scripts that expect to be able to
reinstall bootloaders without first witping the partition by hand.
Fixes: cd46aa6cefab ("Rewrite grub-install, grub-mkrescue,
grub-mkstandalone and grub-mknetdir ")
---
util/grub-install.c | 39 ++-------------------------------------
1 file changed, 2 insertions(+), 37 deletions(-)
diff --git a/util/grub-install.c b/util/grub-install.c
index 75e3e5ba6f07..ae859476e3da 100644
--- a/util/grub-install.c
+++ b/util/grub-install.c
@@ -731,34 +731,6 @@ is_prep_partition (grub_device_t dev)
return 0;
}
-static int
-is_prep_empty (grub_device_t dev)
-{
- grub_disk_addr_t dsize, addr;
- grub_uint32_t buffer[32768];
-
- dsize = grub_disk_get_size (dev->disk);
- for (addr = 0; addr < dsize;
- addr += sizeof (buffer) / GRUB_DISK_SECTOR_SIZE)
- {
- grub_size_t sz = sizeof (buffer);
- grub_uint32_t *ptr;
-
- if (sizeof (buffer) / GRUB_DISK_SECTOR_SIZE > dsize - addr)
- sz = (dsize - addr) * GRUB_DISK_SECTOR_SIZE;
- grub_disk_read (dev->disk, addr, 0, sz, buffer);
-
- if (addr == 0 && grub_memcmp (buffer, ELFMAG, SELFMAG) == 0)
- return 1;
-
- for (ptr = buffer; ptr < buffer + sz / sizeof (*buffer); ptr++)
- if (*ptr)
- return 0;
- }
-
- return 1;
-}
-
static void
bless (grub_device_t dev, const char *path, int x86)
{
@@ -1772,16 +1744,9 @@ main (int argc, char *argv[])
{
grub_util_error ("%s", _("the chosen partition is not a PReP partition"));
}
- if (is_prep_empty (ins_dev))
- {
- if (write_to_disk (ins_dev, imgfile))
- grub_util_error ("%s", _("failed to copy Grub to the PReP partition"));
- }
- else
+ if (write_to_disk (ins_dev, imgfile))
{
- char *s = xasprintf ("dd if=/dev/zero of=%s", install_device);
- grub_util_error (_("the PReP partition is not empty. If you are sure you want to use it, run dd to clear it: `%s'"),
- s);
+ grub_util_error ("%s", _("failed to copy Grub to the PReP partition"));
}
grub_device_close (ins_dev);
if (update_nvram)
--
2.13.6

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Tue Oct 31 13:36:02 UTC 2017 - msuchanek@suse.com
- Do not check that PReP partition does not contain an ELF during installation
(bsc#1065738).
* grub2-install-remove-useless-check-PReP-partition-is-empty.patch
-------------------------------------------------------------------
Tue Sep 26 06:35:50 UTC 2017 - mchang@suse.com

View File

@ -212,6 +212,7 @@ Patch81: grub2-lvm-allocate-metadata-buffer-from-raw-contents.patch
Patch82: grub2-diskfilter-support-pv-without-metadatacopies.patch
Patch83: grub2-efi-uga-64bit-fb.patch
Patch84: grub2-s390x-09-improve-zipl-setup.patch
Patch85: grub2-install-remove-useless-check-PReP-partition-is-empty.patch
# Btrfs snapshot booting related patches
Patch101: grub2-btrfs-01-add-ability-to-boot-from-subvolumes.patch
Patch102: grub2-btrfs-02-export-subvolume-envvars.patch
@ -484,6 +485,7 @@ swap partition while in resuming
%patch82 -p1
%patch83 -p1
%patch84 -p1
%patch85 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1