grub-devel
[Top][All Lists]
Advanced

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

Re: boot.img Fix


From: Pavel Roskin
Subject: Re: boot.img Fix
Date: Tue, 07 Jul 2009 18:17:07 -0400

On Tue, 2009-07-07 at 10:08 +0200, Yves BLUSSEAU wrote:
> Hi,
> 
> there is a "bug" in boot.img: if you install the boot.img into the 
> volume boot sector of a FAT32 partition instead of MBR (i know it's a 
> bad idea), you "destroyed" the partition (even grub will not recognize it).

I think a much bigger issue is that installing on FAT32 it was allowed
at all!  I assume that even with your patch, installing the GRUB
bootsector into some filesystems would still break them.  We need a
check that the bootsector is compatible with the filesystem.

> The problem is that the FAT32 FileSystem need a 87 bytes long BPB 
> instead of the 59 bytes long for FAT16 
> (http://en.wikipedia.org/wiki/File_Allocation_Table#Boot_Sector).
> So the boot.img need to preverse the first 90 bytes of the first sectors 
> of a FAT32 partition.
> I made this patch to fix it and it work perfectly.
> 
> What i have done is:
>     * change the offset of the end of BPB
>     * change the offsets of the data inside the region of Extended BPB
>     * remove 2 constants that are never used

Removing unused constants is better done in a separate patch.  And they
should be specified by name.

>     * change the minor version of the GRUB_BOOT_VERSION 4.0 => 4.1

I don't see where it's checked.  What's the effect of the change?

>     * change the string of hd_probe_error_string from "Hard Drive" to "HD"
>        because i needed 2 extras bytes and do not want to change the working
>        code of the boot.

It means the code is very tight.  We would not able to add any
workarounds or features in the future.

When is the ability to install on FAT32 important?  If it's just a way
to fix a missing check in grub-setup, then I'll rather have some extra
space.

The same boot.S has a hole for the partition table.  I think we should
need either one hole or another.  That would allow us to have two
versions of boot.img, one for FAT bootsector and another for MBR.

> -notification_string: .asciz "GRUB "

It's better not to mix formatting and essential changes.  Besides, the
use of tabs is justified for alignment.

-- 
Regards,
Pavel Roskin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]