forked from pool/grub2
Accepting request 258927 from home:michael-chang:branches:Base:System
- fix errors when boot is btrfs with Windows partition scheme. The first partition is created on cylinder boundary that can't offer enough room for core.img and also the installation has to be in logical paritition which made MBR the only location to install. (bnc#841247) * add grub2-setup-try-fs-embed-if-mbr-gap-too-small.patch OBS-URL: https://build.opensuse.org/request/show/258927 OBS-URL: https://build.opensuse.org/package/show/Base:System/grub2?expand=0&rev=123
This commit is contained in:
parent
fcbf2cb71b
commit
5ccf9d5533
60
grub2-setup-try-fs-embed-if-mbr-gap-too-small.patch
Normal file
60
grub2-setup-try-fs-embed-if-mbr-gap-too-small.patch
Normal file
@ -0,0 +1,60 @@
|
||||
Index: grub-2.02~beta2/util/setup.c
|
||||
===================================================================
|
||||
--- grub-2.02~beta2.orig/util/setup.c
|
||||
+++ grub-2.02~beta2/util/setup.c
|
||||
@@ -501,8 +501,44 @@ SETUP (const char *dir,
|
||||
err = grub_util_ldm_embed (dest_dev->disk, &nsec, maxsec,
|
||||
GRUB_EMBED_PCBIOS, §ors);
|
||||
else if (ctx.dest_partmap)
|
||||
- err = ctx.dest_partmap->embed (dest_dev->disk, &nsec, maxsec,
|
||||
- GRUB_EMBED_PCBIOS, §ors);
|
||||
+ {
|
||||
+ err = ctx.dest_partmap->embed (dest_dev->disk, &nsec, maxsec,
|
||||
+ GRUB_EMBED_PCBIOS, §ors);
|
||||
+#ifdef GRUB_SETUP_BIOS
|
||||
+ if (err == GRUB_ERR_OUT_OF_RANGE
|
||||
+ && strcmp (ctx.dest_partmap->name, "msdos") == 0
|
||||
+ && dest_dev->disk->id == root_dev->disk->id
|
||||
+ && dest_dev->disk->dev->id == root_dev->disk->dev->id)
|
||||
+ {
|
||||
+ grub_fs_t root_fs;
|
||||
+
|
||||
+ root_fs = grub_fs_probe (root_dev);
|
||||
+ if (root_fs && root_fs->embed)
|
||||
+ {
|
||||
+ grub_disk_addr_t *fs_sectors;
|
||||
+ unsigned int fs_nsec;
|
||||
+
|
||||
+ fs_sectors = NULL;
|
||||
+ fs_nsec = core_sectors;
|
||||
+ err = root_fs->embed (root_dev, &fs_nsec, maxsec,
|
||||
+ GRUB_EMBED_PCBIOS, &fs_sectors);
|
||||
+ if (!err && fs_nsec >= core_sectors)
|
||||
+ {
|
||||
+ grub_util_info ("Your msdos embedding area is too small, will use file system embedding area instead");
|
||||
+ sectors = fs_sectors;
|
||||
+ nsec = fs_nsec;
|
||||
+ ctx.container = root_dev->disk->partition;
|
||||
+ core_dev = root_dev;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ if (fs_sectors)
|
||||
+ grub_free (fs_sectors);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+ }
|
||||
else
|
||||
err = fs->embed (dest_dev, &nsec, maxsec,
|
||||
GRUB_EMBED_PCBIOS, §ors);
|
||||
@@ -584,7 +620,7 @@ SETUP (const char *dir,
|
||||
|
||||
/* Write the core image onto the disk. */
|
||||
for (i = 0; i < nsec; i++)
|
||||
- grub_disk_write (dest_dev->disk, sectors[i], 0,
|
||||
+ grub_disk_write (core_dev->disk, sectors[i], 0,
|
||||
GRUB_DISK_SECTOR_SIZE,
|
||||
core_img + i * GRUB_DISK_SECTOR_SIZE);
|
||||
|
@ -1,3 +1,13 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 30 07:36:15 UTC 2014 - mchang@suse.com
|
||||
|
||||
- fix errors when boot is btrfs with Windows partition scheme. The
|
||||
first partition is created on cylinder boundary that can't offer
|
||||
enough room for core.img and also the installation has to be in
|
||||
logical paritition which made MBR the only location to install.
|
||||
(bnc#841247)
|
||||
* add grub2-setup-try-fs-embed-if-mbr-gap-too-small.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 30 03:45:04 UTC 2014 - mchang@suse.com
|
||||
|
||||
|
@ -158,6 +158,7 @@ Patch45: grub2-efinet-reopen-SNP-protocol-for-exclusive-use-by-grub.patch
|
||||
Patch46: grub2-xen-legacy-config-device-name.patch
|
||||
Patch47: grub2-Initialized-initrd_ctx-so-we-don-t-free-a-random-poi.patch
|
||||
Patch48: grub2-btrfs-fix-get_root-key-comparison-failures-due-to-en.patch
|
||||
Patch49: grub2-setup-try-fs-embed-if-mbr-gap-too-small.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
|
||||
@ -364,6 +365,7 @@ mv po/grub.pot po/%{name}.pot
|
||||
%patch46 -p1
|
||||
%patch47 -p1
|
||||
%patch48 -p1
|
||||
%patch49 -p1
|
||||
%patch101 -p1
|
||||
%patch102 -p1
|
||||
%patch103 -p1
|
||||
|
Loading…
Reference in New Issue
Block a user