Fixing Installation on Legacy BIOS Systems

Problem

An issue has been identified in certain Synex images (13-u11 and below, Synex Semi-rolling 26.07.17 and below) when installing the system on computers configured to boot using Legacy BIOS.

The problem is caused by a missing component required to install GRUB in BIOS mode. As a result, Calamares may complete almost the entire system installation but fail during the final bootloader installation stage.

The affected images are:

  • Synex Semi-rolling.

  • Synex Stable GNOME.

  • Synex Stable KDE.

  • Synex Stable COSMIC.

  • Synex Stable XFCE.

  • Synex Stable MATE.

The following images are not affected:

  • Synex Openbox.

  • Synex LXDE.

  • Synex IceWM.

The problem has already been identified and corrected for the next Synex image updates.

In the meantime, an installation performed using one of the affected images can be recovered without reinstalling the entire system.

The procedure consists of entering the installed system using synex-chroot, installing the missing component, and reinstalling GRUB for Legacy BIOS.


Recovery Procedure

Important: This procedure is intended for installations performed in Legacy BIOS mode.

If Calamares has just finished with the error and you are still running the Live session, follow all the steps below.

If the system has already been installed and currently does not boot, start the computer again using the Synex installation media, begin from Step 3, and continue through the remaining steps.


Step 1 — Identify the Partitions

Open a terminal and run:

sudo synex-chroot --list

The output will look similar to this:

synex@synex:~$ sudo synex-chroot --list

NAME   TYPE FSTYPE   LABEL    UUID                                  SIZE MOUNTPOINTS
loop0  loop squashfs                                                1,7G /run/live/rootfs/filesystem.squashfs
sr0    rom  iso9660  Synex 13 2026-08-01-03-40-45-00                1,9G /run/live/medium
vda    disk                                                          20G
├─vda1 part ext4     boot     1025b535-52fc-4ce4-948e-b7ed11c4ce3a    1G /tmp/calamares-root-jabkmpt0/boot
└─vda2 part btrfs    rootfs   d28c0df3-1fc2-471f-be89-2acc41c4968f   19G /tmp/calamares-root-jabkmpt0/.snapshots
                                                                        /tmp/calamares-root-jabkmpt0/var/log
                                                                        /tmp/calamares-root-jabkmpt0/home
                                                                        /tmp/calamares-root-jabkmpt0

In this example:

/dev/vda1 = /boot
/dev/vda2 = root filesystem
/dev/vda  = entire disk

On a physical computer, the device names will probably be different, for example:

/dev/sda
/dev/sda1
/dev/sda2

Make sure you correctly identify the root partition and, if present, the partition used for /boot.


Step 2 — Unmount the System Left Mounted by Calamares

If Calamares has just failed during the installation, the target system may still be mounted somewhere under /tmp.

In the previous example, the mount point is:

/tmp/calamares-root-jabkmpt0

Unmount it by running:

sudo umount -R /tmp/calamares-root-jabkmpt0

Replace this path with the one shown on your own system.

You can then check the partitions again:

sudo synex-chroot --list

The output should now show the partitions without the temporary Calamares mount points:

NAME   TYPE FSTYPE   LABEL    UUID                                  SIZE MOUNTPOINTS
loop0  loop squashfs                                                1,7G /run/live/rootfs/filesystem.squashfs
sr0    rom  iso9660  Synex 13 2026-08-01-03-40-45-00                1,9G /run/live/medium
vda    disk                                                          20G
├─vda1 part ext4     boot     1025b535-52fc-4ce4-948e-b7ed11c4ce3a    1G
└─vda2 part btrfs    rootfs   d28c0df3-1fc2-471f-be89-2acc41c4968f   19G

Step 3 — Enter the Installed System

Use synex-chroot, specifying the root partition and, when applicable, the separate /boot partition.

Following the previous example:

sudo synex-chroot /dev/vda2 --boot /dev/vda1

On a system where the partitions are /dev/sda1 and /dev/sda2, the command could be:

sudo synex-chroot /dev/sda2 --boot /dev/sda1

Adjust the devices according to the results previously obtained with:

sudo synex-chroot --list

On a Synex installation using the default Btrfs layout, synex-chroot will automatically detect the @ root subvolume and mount the corresponding additional subvolumes.

A normal output will look similar to this:

synex-chroot: mounting /dev/vda2 on /mnt
synex-chroot: detected Btrfs root subvolume: @
synex-chroot: unmounting /mnt
synex-chroot: mounting /dev/vda2 on /mnt with options: subvol=@
synex-chroot: mounting Btrfs subvolume @home on /mnt/home
synex-chroot: mounting Btrfs subvolume @log on /mnt/var/log
synex-chroot: mounting Btrfs subvolume @snapshots on /mnt/.snapshots
synex-chroot: mounting /dev/vda1 on /mnt/boot
synex-chroot: binding /dev on /mnt/dev
synex-chroot: mounting proc on /mnt/proc
synex-chroot: binding /sys on /mnt/sys
synex-chroot: binding /run on /mnt/run
synex-chroot: copied host DNS resolver configuration into target
synex-chroot: target system is ready under /mnt
synex-chroot: entering chroot; type 'exit' to leave
root@synex:/#

From this point on, the commands will be executed inside the installed Synex system.


Step 4 — Install the Missing GRUB Component

First, update the repository information:

apt update

Then install:

apt install grub-pc-bin

This is the component missing from the affected images and contains the files required to install GRUB on Legacy BIOS systems.


Step 5 — Reinstall GRUB for Legacy BIOS

GRUB must now be installed again on the entire disk.

Following our example:

grub-install --target=i386-pc --recheck /dev/vda

On a physical computer, it will probably be something similar to:

grub-install --target=i386-pc --recheck /dev/sda

Important: Specify the entire disk, for example /dev/sda, and not a partition such as /dev/sda1.

If the operation completes successfully, you should see:

Installing for i386-pc platform.
Installation finished. No error reported.

Step 6 — Regenerate the GRUB Menu

Run:

update-grub

A normal output will look similar to this:

Generating grub configuration file ...
Found theme: /usr/share/grub/themes/Vimix/theme.txt
Found background image: .background_cache.png
Found linux image: /boot/vmlinuz-6.12.100+deb13-amd64
Found initrd image: /boot/initrd.img-6.12.100+deb13-amd64
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Adding boot menu entry for UEFI Firmware Settings ...
done

Step 7 — Remove Components Used Only by the Installer

Because Calamares was unable to complete its final operations due to the bootloader failure, the installer components must be cleaned up manually.

While still inside the chroot, run:

apt autoremove live-boot live-config live-config-systemd calamares-settings-synex calamares synex-chroot synex-lvm-setup partitionmanager

Review the operation proposed by APT and proceed with the removal.


Step 8 — Exit the Chroot

Run:

exit

Synex Chroot will restore the temporary configuration used during the recovery process and automatically unmount the installed system.

A normal output will look similar to this:

root@synex:/# exit
logout
synex-chroot: restored target DNS resolver configuration
synex-chroot: unmounting /mnt/boot
synex-chroot: unmounting /mnt/.snapshots
synex-chroot: unmounting /mnt/var/log
synex-chroot: unmounting /mnt/home
synex-chroot: unmounting /mnt/run
synex-chroot: unmounting /mnt/sys
synex-chroot: unmounting /mnt/proc
synex-chroot: unmounting /mnt/dev
synex-chroot: unmounting /mnt
synex-chroot: done
synex@synex:~$

Step 9 — Reboot

Finally, reboot the computer:

sudo reboot

Remove the Synex installation media when appropriate.

The installed system should now boot normally using GRUB in Legacy BIOS mode.


Command Summary

Once the correct partitions and disk have been identified, the procedure can be summarized as follows:

sudo umount -R /tmp/calamares-root-XXXXXX

sudo synex-chroot /dev/sdX2 --boot /dev/sdX1

Inside the chroot:

apt update
apt install grub-pc-bin

grub-install --target=i386-pc --recheck /dev/sdX
update-grub

apt autoremove live-boot live-config live-config-systemd calamares-settings-synex calamares synex-chroot synex-lvm-setup partitionmanager

exit

Then:

sudo reboot

The device names /dev/sdX, /dev/sdX1, and /dev/sdX2 are examples only. Always use the devices corresponding to your own installation.


Problem Status

The problem was identified following user reports, and the necessary corrective actions have already been applied to the Synex build configuration.

Future Synex images will include the required support for installation on both Legacy BIOS and UEFI systems.

We especially appreciate users who report this kind of issue. Your feedback helps us identify problems, correct them, and continue improving Synex.