[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[2207] 2009-05-13 Robert Millan <address@hidden>
From: |
Robert Millan |
Subject: |
[2207] 2009-05-13 Robert Millan <address@hidden> |
Date: |
Wed, 13 May 2009 20:59:46 +0000 |
Revision: 2207
http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=2207
Author: robertmh
Date: 2009-05-13 20:59:45 +0000 (Wed, 13 May 2009)
Log Message:
-----------
2009-05-13 Robert Millan <address@hidden>
* util/i386/pc/grub-setup.c (setup): Restructure code flow to make
it easier to understand / work with.
Modified Paths:
--------------
trunk/grub2/ChangeLog
trunk/grub2/util/i386/pc/grub-setup.c
Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog 2009-05-13 20:52:35 UTC (rev 2206)
+++ trunk/grub2/ChangeLog 2009-05-13 20:59:45 UTC (rev 2207)
@@ -1,3 +1,8 @@
+2009-05-13 Robert Millan <address@hidden>
+
+ * util/i386/pc/grub-setup.c (setup): Restructure code flow to make
+ it easier to understand / work with.
+
2009-05-13 Pavel Roskin <address@hidden>
* loader/i386/pc/multiboot2.c: Add necessary includes for
Modified: trunk/grub2/util/i386/pc/grub-setup.c
===================================================================
--- trunk/grub2/util/i386/pc/grub-setup.c 2009-05-13 20:52:35 UTC (rev
2206)
+++ trunk/grub2/util/i386/pc/grub-setup.c 2009-05-13 20:59:45 UTC (rev
2207)
@@ -310,17 +310,19 @@
dos_part, bsd_part);
if (! dest_dev->disk->has_partitions)
+ {
grub_util_warn ("Attempting to install GRUB to a partitionless disk. This
is a BAD idea.");
+ goto unable_to_embed;
+ }
if (dest_dev->disk->partition)
+ {
grub_util_warn ("Attempting to install GRUB to a partition instead of the
MBR. This is a BAD idea.");
+ goto unable_to_embed;
+ }
- /* If the destination device can have partitions and it is the MBR,
- try to embed the core image into after the MBR. */
- if (dest_dev->disk->has_partitions && ! dest_dev->disk->partition)
- {
/* Unlike root_dev, with dest_dev we're interested in the partition map
even
- if dest_dev itself is a whole disk. */
+ if dest_dev itself is a whole disk. */
auto int NESTED_FUNC_ATTR identify_partmap (grub_disk_t disk,
const grub_partition_t p);
int NESTED_FUNC_ATTR identify_partmap (grub_disk_t disk __attribute__
((unused)),
@@ -330,16 +332,22 @@
return 1;
}
grub_partition_iterate (dest_dev->disk, identify_partmap);
-
+
grub_partition_iterate (dest_dev->disk, (strcmp (dest_partmap,
"pc_partition_map") ?
find_usable_region_gpt :
find_usable_region_msdos));
-
- if (embed_region.end != embed_region.start)
- embedding_area_exists = 1;
-
- /* If there is enough space... */
- if ((unsigned long) core_sectors <= embed_region.end -
embed_region.start)
- {
+ if (embed_region.end == embed_region.start)
+ {
+ grub_util_warn ("Embedding area is not present at all!");
+ goto unable_to_embed;
+ }
+
+ if ((unsigned long) core_sectors > embed_region.end - embed_region.start)
+ {
+ grub_util_warn ("Embedding area is too small for core.img.");
+ goto unable_to_embed;
+ }
+
+
grub_util_info ("will embed the core image at sector 0x%llx",
embed_region.start);
*install_dos_part = grub_cpu_to_le32 (dos_part);
@@ -374,16 +382,9 @@
grub_util_error ("%s", grub_errmsg);
goto finish;
- }
- }
- /* If we reached this point, it means we were unable to embed. */
+unable_to_embed:
- if (embedding_area_exists)
- grub_util_warn ("Embedding area is too small for core.img.");
- else
- grub_util_warn ("Embedding area is not present at all!");
-
if (must_embed)
grub_util_error ("Embedding is not possible, but this is required when "
"the root device is on a RAID array or LVM volume.");
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [2207] 2009-05-13 Robert Millan <address@hidden>,
Robert Millan <=