No, that's wrong, and here's the evidence. I installed bookwork-RC1
onto my 2004-vintage laptop into partition four, but with the BIOS
Boot Partition (sda1) concealed from the Grub installer.
Command (? for help): p
Disk /dev/sda: 117210240 sectors, 55.9 GiB
Model: IC25N060ATMR04-0
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 9B25D407-FA9E-4A0B-8701-6532B26FAE90
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 117210206
Partitions will be aligned on 2048-sector boundaries
Total free space is 5181 sectors (2.5 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 8191 3.0 MiB 0C01 Microsoft reserved
2 8192 2047999 996.0 MiB 8200 noah02
3 2048000 41943039 19.0 GiB 8300 Linux filesystem
4 41943040 117207039 35.9 GiB 8300 Linux filesystem
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.
# reboot
The reboot was successful, and was just to check that sda1 is
undamaged (as it shouldn't be).
Here's the output from the partitioner during the installation,
showing no BIOS Boot Partition, and the intended 38.5GB root
filesystem:
│ │
│ SCSI1 (0,0,0) (sda) - 60.0 GB ATA IC25N060ATMR04-0 │
│ > 1.0 MB FREE SPACE │
│ > #1 3.1 MB Microsoft re │
│ > #2 1.0 GB ext2 noah02 │
│ > #3 20.4 GB ext4 Linux filesy │
│ > #4 38.5 GB F ext4 Linux filesy / │
│ > 1.6 MB FREE SPACE │
│ SCSI3 (0,0,0) (sdb) - 2.0 GB Generic Flash Disk │
│ │
… from the Grub installer:
┌─────────────────┤ [!] Install the GRUB boot loader ├──────────────────┐
│ │
│ The following other operating systems have been detected on this │
│ computer: Debian GNU/Linux 11 (bullseye) │
│ │
│ If all of your operating systems are listed above, then it should be │
│ safe to install the boot loader to your primary drive (UEFI │
│ partition/boot record). When your computer boots, you will be able to │
│ choose to load one of these operating systems or the newly installed │
│ Debian system │
│ │
│ Install the GRUB boot loader to your primary drive? [Yes]
┌──────────────────┤ [!] Install the GRUB boot loader ├───────────────────┐
│ │
│ You need to make the newly installed system bootable, by installing │
│ the GRUB boot loader on a bootable device. The usual way to do this │
│ is to install GRUB to your primary drive (UEFI partition/boot │
│ record). You may instead install GRUB to a different drive (or │
│ partition), or to removable media. │
│ │
│ Device for boot loader installation: │
│ │
│ Enter device manually │
│ /dev/sda (ata-IC25N060ATMR04-0_MRG308K3K7VGYH) │
│ /dev/sdb (usb-Generic_Flash_Disk_58F99DC1-0:0) │
│ [sda]
And the log is just like yours:
grub-installer: info: Installing grub on '/dev/sda'
grub-installer: info: grub-install does not support --no-floppy
grub-installer: info: Running chroot /target grub-install --force "/dev/sda"
grub-installer: Installing for i386-pc platform.
grub-installer: grub-install: warning:
grub-installer:
grub-installer: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible
grub-installer: .
grub-installer: grub-install: warning:
grub-installer:
grub-installer: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged.
grub-installer: .
grub-installer: Installation finished. No error reported.
grub-installer: info: grub-install ran successfully
/bin/in-target: warning: /target/etc/mtab won't be updated since it is a symlink.
At the end of the installation, I rebooted, and the new system was
displayed in the Grub menu as expected, and ran without fuss.
One might opine that the use of blocklists should have been reported,
but the "bug" is on the part of the operator in this case: wrong
partitioning.
Here's what boot-init-script reports:
Boot Info Script 0.78 [09 October 2019]
============================= Boot Info Summary: ===============================
=> Grub2 (v2.00) is installed in the MBR of /dev/sda and looks at sector
46412680 of the same hard drive for core.img. core.img is at this location
and looks for (,gpt4)/boot/grub. It also embeds following components:
modules
---------------------------------------------------------------------------
fshelp ext2 part_gpt biosdisk
---------------------------------------------------------------------------
I don't know how to find the sector number of the start of a file on
ext4, so I'll use a crude technique of listing the head of the file,
and then the code at sector 46412680:
$ hexdump -C /acer/boot/grub/i386-pc/core.img | head -n 25
00000000 52 56 be 1b 81 e8 39 01 5e bf f4 81 66 8b 2d 83 |RV....9.^...f.-.|
00000010 7d 08 00 0f 84 e2 00 80 7c ff 00 74 46 66 8b 1d |}.......|..tFf..|
00000020 66 8b 4d 04 66 31 c0 b0 7f 39 45 08 7f 03 8b 45 |f.M.f1...9E....E|
00000030 08 29 45 08 66 01 05 66 83 55 04 00 c7 04 10 00 |.)E.f..f.U......|
00000040 89 44 02 66 89 5c 08 66 89 4c 0c c7 44 06 00 70 |.D.f.\.f.L..D..p|
00000050 50 c7 44 04 00 00 b4 42 cd 13 0f 82 af 00 bb 00 |P.D....B........|
00000060 70 eb 66 66 8b 45 04 66 09 c0 0f 85 97 00 66 8b |p.ff.E.f......f.|
00000070 05 66 31 d2 66 f7 34 88 54 0a 66 31 d2 66 f7 74 |.f1.f.4.T.f1.f.t|
00000080 04 88 54 0b 89 44 0c 3b 44 08 7d 79 8b 04 2a 44 |..T..D.;D.}y..*D|
00000090 0a 39 45 08 7f 03 8b 45 08 29 45 08 66 01 05 66 |.9E....E.)E.f..f|
000000a0 83 55 04 00 8a 54 0d c0 e2 06 8a 4c 0a fe c1 08 |.U...T.....L....|
000000b0 d1 8a 6c 0c 5a 52 8a 74 0b 50 bb 00 70 8e c3 31 |..l.ZR.t.P..p..1|
000000c0 db b4 02 cd 13 72 46 8c c3 8e 45 0a 58 c1 e0 05 |.....rF...E.X...|
000000d0 01 45 0a 60 1e c1 e0 03 89 c1 31 ff 31 f6 8e db |.E.`......1.1...|
000000e0 fc f3 a5 1f be 23 81 e8 57 00 61 83 7d 08 00 0f |.....#..W.a.}...|
000000f0 85 24 ff 83 ef 0c e9 16 ff be 25 81 e8 42 00 5a |.$........%..B.Z|
00000100 ea 00 82 00 00 be 28 81 e8 36 00 eb 06 be 2d 81 |......(..6....-.|
00000110 e8 2e 00 be 32 81 e8 28 00 eb fe 6c 6f 61 64 69 |....2..(...loadi|
00000120 6e 67 00 2e 00 0d 0a 00 47 65 6f 6d 00 52 65 61 |ng......Geom.Rea|
00000130 64 00 20 45 72 72 6f 72 00 bb 01 00 b4 0e cd 10 |d. Error........|
00000140 46 8a 04 3c 00 75 f2 c3 00 00 00 00 00 00 00 00 |F..<.u..........|
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001f0 00 00 00 00 89 33 c4 02 00 00 00 00 37 00 20 08 |.....3......7. .|
00000200 ea 1c 82 00 00 00 00 00 02 5b 00 00 a4 b1 00 00 |.........[......|
$
# dd bs=512 if=/dev/sda of=/dev/stdout skip=46412680 count=1 | hexdump -C
1+0 records in
1+0 records out
512 bytes copied, 0.00235733 s, 217 kB/s
00000000 52 56 be 1b 81 e8 39 01 5e bf f4 81 66 8b 2d 83 |RV....9.^...f.-.|
00000010 7d 08 00 0f 84 e2 00 80 7c ff 00 74 46 66 8b 1d |}.......|..tFf..|
00000020 66 8b 4d 04 66 31 c0 b0 7f 39 45 08 7f 03 8b 45 |f.M.f1...9E....E|
00000030 08 29 45 08 66 01 05 66 83 55 04 00 c7 04 10 00 |.)E.f..f.U......|
00000040 89 44 02 66 89 5c 08 66 89 4c 0c c7 44 06 00 70 |.D.f.\.f.L..D..p|
00000050 50 c7 44 04 00 00 b4 42 cd 13 0f 82 af 00 bb 00 |P.D....B........|
00000060 70 eb 66 66 8b 45 04 66 09 c0 0f 85 97 00 66 8b |p.ff.E.f......f.|
00000070 05 66 31 d2 66 f7 34 88 54 0a 66 31 d2 66 f7 74 |.f1.f.4.T.f1.f.t|
00000080 04 88 54 0b 89 44 0c 3b 44 08 7d 79 8b 04 2a 44 |..T..D.;D.}y..*D|
00000090 0a 39 45 08 7f 03 8b 45 08 29 45 08 66 01 05 66 |.9E....E.)E.f..f|
000000a0 83 55 04 00 8a 54 0d c0 e2 06 8a 4c 0a fe c1 08 |.U...T.....L....|
000000b0 d1 8a 6c 0c 5a 52 8a 74 0b 50 bb 00 70 8e c3 31 |..l.ZR.t.P..p..1|
000000c0 db b4 02 cd 13 72 46 8c c3 8e 45 0a 58 c1 e0 05 |.....rF...E.X...|
000000d0 01 45 0a 60 1e c1 e0 03 89 c1 31 ff 31 f6 8e db |.E.`......1.1...|
000000e0 fc f3 a5 1f be 23 81 e8 57 00 61 83 7d 08 00 0f |.....#..W.a.}...|
000000f0 85 24 ff 83 ef 0c e9 16 ff be 25 81 e8 42 00 5a |.$........%..B.Z|
00000100 ea 00 82 00 00 be 28 81 e8 36 00 eb 06 be 2d 81 |......(..6....-.|
00000110 e8 2e 00 be 32 81 e8 28 00 eb fe 6c 6f 61 64 69 |....2..(...loadi|
00000120 6e 67 00 2e 00 0d 0a 00 47 65 6f 6d 00 52 65 61 |ng......Geom.Rea|
00000130 64 00 20 45 72 72 6f 72 00 bb 01 00 b4 0e cd 10 |d. Error........|
00000140 46 8a 04 3c 00 75 f2 c3 00 00 00 00 00 00 00 00 |F..<.u..........|
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001f0 00 00 00 00 89 33 c4 02 00 00 00 00 37 00 20 08 |.....3......7. .|
00000200
#
I think that confirms that boot-init-script is correct in its
assertion.
> I believe it does not use MBR
> *
> *
The Grub installer certainly doesn't use the MBR if you refuse it.
But the only way you can avoid using this MBR to boot the machine
is by using that MBR, where "this" and "that" are defined by
selections made in the CMOS settings. Most machines will boot from
a floppy/optical drive/USB stick/primary hard drive. Some allow
swapping primary/secondary drives. But one way or another, you
need to use an MBR, and you can chain to another boot record too.
> > > SO: where do I report this Bug/Anomaly?
> > > I assume it should go to the debian-boot list
> > I would say it's rather premature as a bug report, but more
> > experienced eyes might help with what's going wrong where.
> I did CC this thread to the debian-boot list.
> hopefully they can parse and understand what is going on and make it
> more user friendly before Bookworm is final.
> >
> > > > You could install and run boot-info-script, which provides details of
> > > > how the system boots, particularly where the MBR code looks for the
> > > > BIOS boot partition (ie core.img). BTW do any other disks in this
> > > > machine have BIOS boot partitions? (I've one on all my internal disks.)
> > > thanks for that thought
> > > > But as far as we're concerned, I think more information is needed,
> > > > like what disks there are on the system, which disk the BIOS is
> > > > reading the MBR from, the final listing from the partitioner,
> > > > particularly any BIOS boot partitions, and so on. Without all that
> > > > in the narrative, there's no telling whether it's a bug or not.
> >
> David: thanks for your response and assistance.
>
> long story short:
> GRUB install fails with the debian-live-bkworm-DI-rc1-amd64-mate.iso
> installer as described I (poorly) described above.
>
> the debian-bookworm-DI-rc1-amd64-netinst.iso does work as expected.
With the information above, you can easily see why saying No to
writing the MBR will fail.
The installation above wrote an MBR (ie Yes) that pointed to sector
46412680, where it had written Grub's core.img. Booting succeeds.
Now reinstall, but say No to writing the MBR. The d-i will have
written an entirely new filesystem, including all of the contents of
/boot. All the files will have slightly different inodes and sector
positions because the order they were written has a random element.
However, your unrefreshed MBR will still believe that core.img is in
sector 46412680, not knowing that ext2.mod is there instead, and so
booting will fail.
Cheers,
David.