From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1MO5jh-0007B2-38 for mharc-grub-devel@gnu.org; Tue, 07 Jul 2009 04:09:09 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MO5jf-0007Aw-9X for grub-devel@gnu.org; Tue, 07 Jul 2009 04:09:07 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MO5ja-0007AU-4s for grub-devel@gnu.org; Tue, 07 Jul 2009 04:09:06 -0400 Received: from [199.232.76.173] (port=35407 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MO5jZ-0007AJ-Sx for grub-devel@gnu.org; Tue, 07 Jul 2009 04:09:02 -0400 Received: from sneakemail.com ([38.113.6.61]:33699 helo=sneak1.sneakemail.com) by monty-python.gnu.org with smtp (Exim 4.60) (envelope-from ) id 1MO5jZ-0007Gj-0n for grub-devel@gnu.org; Tue, 07 Jul 2009 04:09:01 -0400 Received: (qmail 32511 invoked by uid 508); 7 Jul 2009 08:08:56 -0000 Message-ID: <15498-60872@sneakemail.com> Date: Tue, 07 Jul 2009 10:08:27 +0200 From: "Yves BLUSSEAU" User-Agent: Thunderbird 2.0.0.22 (Windows/20090605) MIME-Version: 1.0 To: grub-devel@gnu.org Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="------------ms020801020405000309010001" X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) Subject: 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: Tue, 07 Jul 2009 08:09:07 -0000 This is a cryptographically signed message in MIME format. --------------ms020801020405000309010001 Content-Type: multipart/mixed; boundary="------------040503060500000805030803" This is a multi-part message in MIME format. --------------040503060500000805030803 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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). 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 * change the minor version of the GRUB_BOOT_VERSION 4.0 => 4.1 * 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. Now the bootloader (boot.img) can be install on any FAT volume partitions. Best Regards, Yves Blusseau --------------040503060500000805030803 Content-Type: text/plain; name="boot_img_fat32.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="boot_img_fat32.diff" commit 1890e0781d4e210c6076568a81899ed598319249 Author: Yves Blusseau Date: Tue Jul 7 10:04:33 2009 +0200 Extend the BPB for compatibility with FAT32 volume boot partition diff --git a/ChangeLog b/ChangeLog index ed6b637..d52de45 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2009-07-07 Yves BLUSSEAU + + * include/grub/boot.h (GRUB_BOOT_VERSION_MINOR): + change the GRUB_BOOT_VERSION from 4.0 to 4.1 + + * boot/i386/pc/boot.S: Change hd_probe_error_string from + "Hard Drive" to "HD" to gain 2 extra bytes + + * include/grub/i386/pc/boot.h: Change the offsets to extend + the BPB for compatibility with FAT32 volume boot partitions + 2009-07-06 Pavel Roskin * commands/search.c (search_fs): Fix potential NULL pointer diff --git a/boot/i386/pc/boot.S b/boot/i386/pc/boot.S index 8d8c27c..d43aec6 100644 --- a/boot/i386/pc/boot.S +++ b/boot/i386/pc/boot.S @@ -434,11 +434,11 @@ general_error: int $0x18 stop: jmp stop -notification_string: .asciz "GRUB " -geometry_error_string: .asciz "Geom" -hd_probe_error_string: .asciz "Hard Disk" -read_error_string: .asciz "Read" -general_error_string: .asciz " Error" +notification_string: .asciz "GRUB " +geometry_error_string: .asciz "Geom" +hd_probe_error_string: .asciz "HD" +read_error_string: .asciz "Read" +general_error_string: .asciz " Error" /* * message: write the string pointed to by %si diff --git a/include/grub/boot.h b/include/grub/boot.h index 2357748..43cd3a5 100644 --- a/include/grub/boot.h +++ b/include/grub/boot.h @@ -20,7 +20,7 @@ #define GRUB_BOOT_HEADER 1 #define GRUB_BOOT_VERSION_MAJOR 4 -#define GRUB_BOOT_VERSION_MINOR 0 +#define GRUB_BOOT_VERSION_MINOR 1 #define GRUB_BOOT_VERSION ((GRUB_BOOT_VERSION_MINOR << 8) \ | GRUB_BOOT_VERSION_MAJOR) diff --git a/include/grub/i386/pc/boot.h b/include/grub/i386/pc/boot.h index f35cb3a..57f53ca 100644 --- a/include/grub/i386/pc/boot.h +++ b/include/grub/i386/pc/boot.h @@ -26,25 +26,19 @@ #define GRUB_BOOT_MACHINE_BPB_START 0x3 /* The offset of the end of BPB (BIOS Parameter Block). */ -#define GRUB_BOOT_MACHINE_BPB_END 0x3e +#define GRUB_BOOT_MACHINE_BPB_END 0x5a /* The offset of the major version. */ -#define GRUB_BOOT_MACHINE_VER_MAJ 0x3e +#define GRUB_BOOT_MACHINE_VER_MAJ 0x5a /* The offset of BOOT_DRIVE. */ -#define GRUB_BOOT_MACHINE_BOOT_DRIVE 0x4c - -/* The offset of KERNEL_ADDRESS. */ -#define GRUB_BOOT_MACHINE_KERNEL_ADDRESS 0x40 +#define GRUB_BOOT_MACHINE_BOOT_DRIVE 0x68 /* The offset of KERNEL_SECTOR. */ -#define GRUB_BOOT_MACHINE_KERNEL_SECTOR 0x44 - -/* The offset of KERNEL_SEGMENT. */ -#define GRUB_BOOT_MACHINE_KERNEL_SEGMENT 0x42 +#define GRUB_BOOT_MACHINE_KERNEL_SECTOR 0x60 /* The offset of BOOT_DRIVE_CHECK. */ -#define GRUB_BOOT_MACHINE_DRIVE_CHECK 0x4e +#define GRUB_BOOT_MACHINE_DRIVE_CHECK 0x6a /* The offset of a magic number used by Windows NT. */ #define GRUB_BOOT_MACHINE_WINDOWS_NT_MAGIC 0x1b8 --------------040503060500000805030803-- --------------ms020801020405000309010001 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEH AQAAoIIJTzCCAwIwggJroAMCAQICEAMAOQUZKD6tTRh30DfkC/0wDQYJKoZI hvcNAQEFBQAwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25z dWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBG cmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDQxNDEzMzA0NloXDTEwMDQxNDEz MzA0NlowRDEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEhMB8G CSqGSIb3DQEJARYSYmx1c3NlYXVAemV0YW0ub3JnMIIBIjANBgkqhkiG9w0B AQEFAAOCAQ8AMIIBCgKCAQEAnHsh2NH/5qb24DH07hhK/dO+to+NYeISv+Bv 09Jlwk2yVKfBGjBAsk/o0cGteMjrS+8XuxmhRavOkZRq05eg7jIxj/goVYk7 7OAVpHwbrvGF50QZdToe7WosgzKmp0Kj1CRsxRETiCr37Z82EaHi7UriR7lh 9sAcjdBLBK/esI84BITMj1X0hwninr5z+aQJhxxK3LNzV5akLMTCHhjm3zbD fy23FdQd38zlZZF7BX8DLjMopYQHrMy0dW9jG3wK56+Y1KerpxFKaaF6Vbe7 d3qw1T+L6p+MPLkSo+gMpXR9XsVonYLw+ci/Rye+b48p1/BLd8dPFj8FzfyS 9z4KuQIDAQABo1MwUTAPBgNVHQ8BAf8EBQMDB/mAMBEGCWCGSAGG+EIBAQQE AwIFoDAdBgNVHREEFjAUgRJibHVzc2VhdUB6ZXRhbS5vcmcwDAYDVR0TAQH/ BAIwADANBgkqhkiG9w0BAQUFAAOBgQA0MvI4LNOjcHDzAEPfF/8lnh92rvTw F1kUFrKSVWRaZRNwGoVqnFf8xVZdFbzslKj2pJnU1jBxHhnz1HxbmRXU0eUl oZktCPfcKy+EMnQa5bvMMH3NaKdoAsj6fabJIqRMRs6kr/4hnYY6V6U6fhja z8UMueP4Ru/v6zncwMmfpTCCAwIwggJroAMCAQICEAMAOQUZKD6tTRh30Dfk C/0wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRo YXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQ ZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDQxNDEzMzA0NloX DTEwMDQxNDEzMzA0NlowRDEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1l bWJlcjEhMB8GCSqGSIb3DQEJARYSYmx1c3NlYXVAemV0YW0ub3JnMIIBIjAN BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnHsh2NH/5qb24DH07hhK/dO+ to+NYeISv+Bv09Jlwk2yVKfBGjBAsk/o0cGteMjrS+8XuxmhRavOkZRq05eg 7jIxj/goVYk77OAVpHwbrvGF50QZdToe7WosgzKmp0Kj1CRsxRETiCr37Z82 EaHi7UriR7lh9sAcjdBLBK/esI84BITMj1X0hwninr5z+aQJhxxK3LNzV5ak LMTCHhjm3zbDfy23FdQd38zlZZF7BX8DLjMopYQHrMy0dW9jG3wK56+Y1Ker pxFKaaF6Vbe7d3qw1T+L6p+MPLkSo+gMpXR9XsVonYLw+ci/Rye+b48p1/BL d8dPFj8FzfyS9z4KuQIDAQABo1MwUTAPBgNVHQ8BAf8EBQMDB/mAMBEGCWCG SAGG+EIBAQQEAwIFoDAdBgNVHREEFjAUgRJibHVzc2VhdUB6ZXRhbS5vcmcw DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQA0MvI4LNOjcHDzAEPf F/8lnh92rvTwF1kUFrKSVWRaZRNwGoVqnFf8xVZdFbzslKj2pJnU1jBxHhnz 1HxbmRXU0eUloZktCPfcKy+EMnQa5bvMMH3NaKdoAsj6fabJIqRMRs6kr/4h nYY6V6U6fhjaz8UMueP4Ru/v6zncwMmfpTCCAz8wggKooAMCAQICAQ0wDQYJ KoZIhvcNAQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJu IENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENv bnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2 aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTEr MCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTAe Fw0wMzA3MTcwMDAwMDBaFw0xMzA3MTYyMzU5NTlaMGIxCzAJBgNVBAYTAlpB MSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYD VQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQTCBnzAN BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV+065yplaHmjAdQRwnd/p /6Me7L3N9VvyGna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqqP3FW y688Cwfn8R+RNiQqE88r1fOCdz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUP SAR/p7bRPGEEQB5kGXJgt/sCAwEAAaOBlDCBkTASBgNVHRMBAf8ECDAGAQH/ AgEAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwudGhhd3RlLmNvbS9U aGF3dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1UdDwQEAwIBBjApBgNV HREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZI hvcNAQEFBQADgYEASIzRUIPqCy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYf qi2fNi/A9BxQIJNwPP2t4WFiw9k6GX6EsZkbAMUaC4J0niVQlGLH2ydxVyWN 3amcOY6MIE9lX5Xa9/eH1sYITq726jTlEBpbNU1341YheILcIRk13iSx0x1G /11fZU8xggNkMIIDYAIBATB2MGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxU aGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUg UGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIQAwA5BRkoPq1NGHfQN+QL /TAJBgUrDgMCGgUAoIIBwzAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwG CSqGSIb3DQEJBTEPFw0wOTA3MDcwODA4MjdaMCMGCSqGSIb3DQEJBDEWBBQQ Wrwo6lZz0vsIViz8ox99GC0LhzBSBgkqhkiG9w0BCQ8xRTBDMAoGCCqGSIb3 DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzAN BggqhkiG9w0DAgIBKDCBhQYJKwYBBAGCNxAEMXgwdjBiMQswCQYDVQQGEwJa QTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoG A1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElzc3VpbmcgQ0ECEAMA OQUZKD6tTRh30DfkC/0wgYcGCyqGSIb3DQEJEAILMXigdjBiMQswCQYDVQQG EwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEs MCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElzc3VpbmcgQ0EC EAMAOQUZKD6tTRh30DfkC/0wDQYJKoZIhvcNAQEBBQAEggEAS2Zz/PZhUE4o 87vac61j5+emkVOrYnGurfBd/xSARX+sOewNnEKc2YNXo0vq7i7hdxOyz96x IdyrOKrmcQPgJwV2SdmbMFrihTU6UkblRP31zN3RMHK7vqNXKTyp62z96xyg 4fcCKFOjt8sNECyUhYez1qS9Eg6xDTduDSulb0Qqcwm6UmGcJg4hPcJQFoV3 WH8qREVGpeXVUtssa7yCOrTuYkQE1UOtqcoQBT7PGPfV69N5pexTRftH5utl rDFvKKhLUOHSOInSkSblZEkQIHFqMgtA6E+RqmSOnvF9zd0P0Iv4WF5aVYE+ UjerXu6EiZ8P1VsHhvbqQgQo4T/5AgAAAAAAAA== --------------ms020801020405000309010001--