I am thinking you are mixing efi and mbr - those are like water and oil - they cannot mix.
Technically you have 3 options
- BIOS/MBR (this option writes the loader at the MBR)
- BIOS/GPT (this option requires a small 1MiB unformatted partition
0xEF02 - bios-boot or bios-grub flag)
- EFI/GPT (this option requires a FAT32 formatted partition
0xEF00 - boot flag)
If you system boots in efi mode - you cannot boot from an mbr disk - you may be able to install - but no boot.
Some systems support BIOS / GPT and in such case you need a small unformatted partition of the type 0xEF02 - in the installer referred as the bios-boot flag.
The boot flag in the installer refers to EFI which is 0xEF00 and will therefore require a reasonable sized partition mounted /boot/efi
As you state
This should make it really simple to install - you don’t need to fiddle with manual parrtitioning. Simply select the disk and click install.
But then you add unencrypted boot and encrypted root.
- Manual partitioning
- Create new partition table (MBR or GPT) if you chose GPT make sure your firmware has support for it.
MBR
- Create two partitions
- boot partition - enough size to hold kernels et.al. 512MiB is usually enough use ext4 for filesystem
- root partition - select the rest of disk and select ext4 - then tick the box encrypt - and enter your passphrase
When the partition table is MBR - select the target disk for grub.
GPT
If the system support BIOS/GPT you require 3 partitions
- Create three partitions
- unformatted partition 1MiB to 32MiB (flag
bios-boot or bios-grub)
- boot partition - as above
- root partition - as above
In the dropdown for bootloader select the target disk’s unformatted partition (if possible) otherwise select the target disk
That is all there is to it
EDIT: 2025-11-20T08:38:00Z
For the sake of clarity for myself I decided to test this using a virtual machine.
There is definitely something goofy with the installer in this scenario.
EDIT: 2025-11-20T09:49:00Z
After more digging - and log reading - (https://0x0.st/KOXd.txt) - I found that for a strange reason grub is not installed to /boot/grub nor is it installed to the mbr. The lines 935-943 in the log list
10:19:42 [6]: virtual void Calamares::JobThread::run()
Starting job "grubcfg" ( 31 / 34 )
[PYTHON JOB]: Found gettext "en" in "/usr/share/locale/en"
10:19:43 [6]: virtual void Calamares::JobThread::run()
Starting job "bootloader" ( 32 / 34 )
/usr/lib/calamares/modules/bootloader/main.py:392: SyntaxWarning: invalid escape sequence '\$'
prefix, generator_name = re.match("(.*)\${([^}]*)}$", name).groups()
[PYTHON JOB]: Found gettext "en" in "/usr/share/locale/en"
WARNING: [PYTHON JOB]: "Non-EFI system, and no bootloader is set."
Later the the environment editor fails ( because the folder /boot/grub has not bee created )
.. Running QList("grub-editenv", "-", "set", "menu_auto_hide=1", "boot_success=1")
.. Target cmd: QList("grub-editenv", "-", "set", "menu_auto_hide=1", "boot_success=1") Exit code: 1 output:
grub-editenv: error: failed to get canonical path of `//boot/grub'.
I have yet to figure out why exactly this happens on an bios/mbr as well as bios/gpt systems.
To work around this strange behaviour one has to
- open the luks partition
- mount the
/dev/mapper/<container> on /mnt
- mount the
/dev/sdXy partition on /mnt/boot
- chroot into
mnt
- run
grub-install /dev/sdX