From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1MOSKF-0006VK-Uc for mharc-grub-devel@gnu.org; Wed, 08 Jul 2009 04:16:24 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MOSKE-0006Sv-HY for grub-devel@gnu.org; Wed, 08 Jul 2009 04:16:22 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MOSKA-0006Jy-TF for grub-devel@gnu.org; Wed, 08 Jul 2009 04:16:22 -0400 Received: from [199.232.76.173] (port=47675 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MOSKA-0006Jp-Pe for grub-devel@gnu.org; Wed, 08 Jul 2009 04:16:18 -0400 Received: from sneakemail.com ([38.113.6.61]:43409 helo=sneak1.sneakemail.com) by monty-python.gnu.org with smtp (Exim 4.60) (envelope-from ) id 1MOSKA-0006qU-E7 for grub-devel@gnu.org; Wed, 08 Jul 2009 04:16:18 -0400 Received: (qmail 32313 invoked by uid 508); 8 Jul 2009 08:15:16 -0000 Message-ID: <16485-82447@sneakemail.com> Date: Wed, 08 Jul 2009 10:13:18 +0200 From: "Yves BLUSSEAU" User-Agent: Thunderbird 2.0.0.22 (Windows/20090605) MIME-Version: 1.0 To: grub-devel@gnu.org References: <15498-60872@sneakemail.com> <1247005027.3393.82.camel@mj> In-Reply-To: <1247005027.3393.82.camel@mj> Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) Subject: Re: boot.img Fix X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jul 2009 08:16:22 -0000 Pavel Roskin a écrit :
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.
  
Are you agree to add this checks in grub-setup ? If yes i can do it.

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.
  
I will send a new patch for that.
    * 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?
  
No effect, just to known that a part of the boot.img has changed.
    * 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.
  
I agree with you. Do you want me to do that ?

Best Regards,
Yves Blusseau