#StackBounty: #windows-10 #grub #bootloader #veracrypt #ubuntu-20.04 Switch bootloader order MBR: GRUB before VeraCrypt in Legacy dual …

Bounty: 50

Scenario

The following steps were executed:

  1. Installed Windows 10 Pro N on a single disk
  2. Installed dual boot Ubuntu 20.04 on the same disk, which installs GRUB bootloader
  3. Installed VeraCrypt on Windows and performed complete system disk encryption
    • Full disk encryption installs the VeraCrypt bootloader, which is placed in front of the GRUB bootloader on the Master Boot Record (MBR), meaning the GRUB bootloader towards Ubuntu is not available anymore/skipped. In the VeraCrypt bootloader one can either:
      • Press ESC, which does not turn towards GRUB, indicating the Windows 10 install is corrupted since it’s encrypted
      • Enter password correctly, which directly skips the GRUB bootloader, successfully loading Windows 10 and resulting in Ubuntu 20.04 not being accessible/bootable anymore because the GRUB bootloader is skipped

According to this link, one can install something like EasyUEFI to switch the order, placing GRUB in front of VeracCypt, however EasyUEFI does not work on the specified laptop, (acer aspire 7750G) since I was not able to find and enable an UEFI setting option. The device has InsydeH20 setup utility Rev. 3.5 and I assume that only has BIOS (legacy boot), and no UEFI.

Question

How can one switch the order of GRUB to before VeraCrypt in a system with legacy boot such that Ubuntu is accessible again with the full disc encryption?

Attempts

  1. I tried sticking the drive into an UEFI laptop to open it with EasyUEFI to change the MBR, but the program won’t show the disk details, meaning I am not able to shift a bootloader up nor down.
  2. I tried to switch the bootloader to put the Grub loader above Veracrpyt with bcdedit. The command bcedit /enum outputs:
Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=DeviceHarddiskVolume1
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
resumeobject            {f1c50cdb-e01f-11ea-8662-d17332f8934a}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    Windowssystem32winload.exe
description             Windows 10
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {f1c50cdd-e01f-11ea-8662-d17332f8934a}
displaymessageoverride  Recovery
recoveryenabled         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              Windows
resumeobject            {f1c50cdb-e01f-11ea-8662-d17332f8934a}
nx                      OptIn
bootmenupolicy          Standard

I have not yet identified which/whether the grub bootloader is in here. I think current is the VeraCrypt bootloader that points towards the Windows bootloader with: resumeobject {f1c50cdb-e01f-11ea-8662-d17332f8934a}. I would think that if I can find the object ID of the Grub boot loader, I perhaps refer to that from resumeobject, or create a new Grub boot loader entry and add it in front of current. But I have not yet determined how I could make a new entry to add the Grub boot loader to the front with bcdedit.


Get this bounty!!!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.