"warning: File system `ext2' doesn't support embedding." but my system isn't embedded either, why is grub trying?

Most people coming to this from a search engine are probably wondering, "why do I get this error?":

warning: File system `ext2' doesn't support embedding. 
warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their  use is discouraged.. 
error: will not proceed with blocklists.

Because you did, e.g.:

grub-install /dev/sda1

instead of

grub-install /dev/sda

I.e. tried to install to a partition instead of the MBR.


You are getting the warning because you are installing grub to a partition instead of the MBR. This means grub can not be embedded in the unused space between the MBR and the first partition. Instead it has to have the list of blocks that /boot/grub/core.img resides in placed into the MBR. This setup is subject to being broken by things like defrag and so is not recommended, hence the warning. Since it is only a warning, you can ignore it.


I quote from Grub2's info pages:

MBR
====

The partition table format traditionally used on PC BIOS platforms is
called the Master Boot Record (MBR) format; this is the format that
allows up to four primary partitions and additional logical partitions.
With this partition table format, there are two ways to install GRUB:
it can be embedded in the area between the MBR and the first partition
(called by various names, such as the "boot track", "MBR gap", or
"embedding area", and which is usually at least 31 KiB), or the core
image can be installed in a file system and a list of the blocks that
make it up can be stored in the first sector of that partition.

Each of these has different problems. There is no way to reserve
space in the embedding area with complete safety, and some proprietary
software is known to use it to make it difficult for users to work
around licensing restrictions; and systems are sometimes partitioned
without leaving enough space before the first partition. On the other
hand, installing to a filesystem means that GRUB is vulnerable to its
blocks being moved around by filesystem features such as tail packing,
or even by aggressive fsck implementations, so this approach is quite
fragile; and this approach can only be used if the `/boot' filesystem
is on the same disk that the BIOS boots from, so that GRUB does not
have to rely on guessing BIOS drive numbers.

The GRUB development team generally recommends embedding GRUB before
the first partition, unless you have special requirements. You must
ensure that the first partition starts at least 31 KiB (63 sectors)
from the start of the disk; on modern disks, it is often a performance
advantage to align partitions on larger boundaries anyway, so the first
partition might start 1 MiB from the start of the disk.

That means to me that ext2 is not related to embedding in any way because it's either embedding or a filesystem involved.

The question arises what you have done to produce this error message (or rather: warning). I assume this can happen if Grub2 is told to install itself into a partition instead of onto the drive itself (MBR or extended partition).

Tags:

Grub2