grub-devel
[Top][All Lists]
Advanced

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

Re: grub-mkrescue: Problem with MBR partition table at start of EFI part


From: Thomas Schmitt
Subject: Re: grub-mkrescue: Problem with MBR partition table at start of EFI partition
Date: Wed, 15 May 2019 12:57:58 +0200

Hi,

> Again, this is an FDD 2880K image and there is no MBR there. Your
> interpretation is wrong.

In respect to MBR partition table, mformat source has at
  https://sources.debian.org/src/mtools/4.0.23-1/mformat.c/#L1375
code with this comment:

  /* install fake partition table pointing to itself */


> What kind of image is used on MS ISO Win image? FDD or HDD one?

Probably FDD (however this might be exactly defined).
There is a 0xaa 0x55 signature, piossibly x86 boot code, and clearly
no partition table.

Chris Murphy exposed on
  https://drive.google.com/open?id=1JgPv8EBHDn5A7hTEwewGK1MuFHvHbJnr
as block 0 of the Microsoft El Torito boot image for EFI:

00103800  eb 3c 90 4d 53 44 4f 53  35 2e 30 00 02 01 01 00  |.<.MSDOS5.0.....|
00103810  02 e0 00 40 0b f0 09 00  12 00 02 00 00 00 00 00  |address@hidden|
00103820  00 00 00 00 00 00 29 c0  56 ef 00 45 46 49 53 45  |......).V..EFISE|
00103830  43 54 4f 52 20 20 46 41  54 31 32 20 20 20 fa 33  |CTOR  FAT12   .3|
00103840  c0 8e d0 bc 00 7c 16 07  bb 78 00 36 c5 37 1e 56  |.....|...x.6.7.V|
00103850  16 53 bf 3e 7c b9 0b 00  fc f3 a4 06 1f c6 45 fe  |.S.>|.........E.|
00103860  0f 8b 0e 18 7c 88 4d f9  89 47 02 c7 07 3e 7c fb  |....|.M..G...>|.|
00103870  cd 13 72 79 33 c0 39 06  13 7c 74 08 8b 0e 13 7c  |..ry3.9..|t....||
00103880  89 0e 20 7c a0 10 7c f7  26 16 7c 03 06 1c 7c 13  |.. |..|.&.|...|.|
00103890  16 1e 7c 03 06 0e 7c 83  d2 00 a3 50 7c 89 16 52  |..|...|....P|..R|
001038a0  7c a3 49 7c 89 16 4b 7c  b8 20 00 f7 26 11 7c 8b  ||.I|..K|. ..&.|.|
001038b0  1e 0b 7c 03 c3 48 f7 f3  01 06 49 7c 83 16 4b 7c  |..|..H....I|..K||
001038c0  00 bb 00 05 8b 16 52 7c  a1 50 7c e8 92 00 72 1d  |......R|.P|...r.|
001038d0  b0 01 e8 ac 00 72 16 8b  fb b9 0b 00 be e6 7d f3  |.....r........}.|
001038e0  a6 75 0a 8d 7f 20 b9 0b  00 f3 a6 74 18 be 9e 7d  |.u... .....t...}|
001038f0  e8 5f 00 33 c0 cd 16 5e  1f 8f 04 8f 44 02 cd 19  |._.3...^....D...|
00103900  58 58 58 eb e8 8b 47 1a  48 48 8a 1e 0d 7c 32 ff  |XXX...G.HH...|2.|
00103910  f7 e3 03 06 49 7c 13 16  4b 7c bb 00 07 b9 03 00  |....I|..K|......|
00103920  50 52 51 e8 3a 00 72 d8  b0 01 e8 54 00 59 5a 58  |PRQ.:.r....T.YZX|
00103930  72 bb 05 01 00 83 d2 00  03 1e 0b 7c e2 e2 8a 2e  |r..........|....|
00103940  15 7c 8a 16 24 7c 8b 1e  49 7c a1 4b 7c ea 00 00  |.|..$|..I|.K|...|
00103950  70 00 ac 0a c0 74 29 b4  0e bb 07 00 cd 10 eb f2  |p....t).........|
00103960  3b 16 18 7c 73 19 f7 36  18 7c fe c2 88 16 4f 7c  |;..|s..6.|....O||
00103970  33 d2 f7 36 1a 7c 88 16  25 7c a3 4d 7c f8 c3 f9  |3..6.|..%|.M|...|
00103980  c3 b4 02 8b 16 4d 7c b1  06 d2 e6 0a 36 4f 7c 8b  |.....M|.....6O|.|
00103990  ca 86 e9 8a 16 24 7c 8a  36 25 7c cd 13 c3 0d 0a  |.....$|.6%|.....|
001039a0  4e 6f 6e 2d 53 79 73 74  65 6d 20 64 69 73 6b 20  |Non-System disk |
001039b0  6f 72 20 64 69 73 6b 20  65 72 72 6f 72 0d 0a 52  |or disk error..R|
001039c0  65 70 6c 61 63 65 20 61  6e 64 20 70 72 65 73 73  |eplace and press|
001039d0  20 61 6e 79 20 6b 65 79  20 77 68 65 6e 20 72 65  | any key when re|
001039e0  61 64 79 0d 0a 00 49 4f  20 20 20 20 20 20 53 59  |ady...IO      SY|
001039f0  53 4d 53 44 4f 53 20 20  20 53 59 53 00 00 55 aa  |SMSDOS   SYS..U.|


> If FDD then you cannot interpret boot sector as MBR. This is wrong.

It's others who interpret it and at least one takes the "fake" partition
table entry by mformat for a reason to early stall its boot process.

I just have to explain users of grub-mkrescue ISOs why they don't work.
The plight of the programmer whose software was the last to touch it.


> > The only thing that was found to not work is a MBR partition entry 1 which
> > starts at LBA 0. Probably it needs to have non-zero block count and non-zero
> > type.

> Again, on what type of image? FDD or HDD?

Made by the mformat run of grub-mkrescue.
Vladimir can probably tell you more about what kind of image he expects.


> First of all look at mformat code

I did before starting this thread.
The bytes in question are intended as "fake" partition table.


> If mkfs.fat images work on Macbooks then I would leave mformat as
> default and add an option to switch between mformat and mkfs.fat.

Why that ? Either mformat's result is ok or it is not.
Offering an alternative could start a new branch of cargo cult. Explaining
the differences will quickly raise the question why staying with the
unusual block0 bytes from mformat at all.

I understand that GRUB wants to use a GNU program, and i am careful not
to spoil anything that works. Thus my proposal as it is.


I will not be overly sad if the proposal is rejected. After all it is
quite easy to override the ideas of grub-mkrescue before the ISO gets
packed up. In practice, it's preference for GPT makes more problems than
its preference for mformat.


Have a nice day :)

Thomas




reply via email to

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