You are not logged in.
Hello,
I know the subject is a bit tangential to Arch Linux, but I still think the community here can benefit from discussing this topic, as I could not find any other blog/post related to what I am trying to do.
So, I have been trying to boot Arch Linux from an SD card on a Surface Pro 7+, using rEFInd, with little success.
Here is the explanation:
As W10 will reach EOL in October this year, I wanted to use my SP as a Dual Boot machine. As the SSD of the device is (almost) full, my only option was to install it in another drive.
The problem is that:
1. My surface does not have a second SSD.
2. The UEFI firmware does not list the MicroSD card slot as a bootable device. (there is only WinBootMgr, Internal Storage, USB, or PXE)
For this, I did some research and found that rEFInd is an easy to implement option that (supposedly) lets you boot from any drive.
So, I did the manual installation (following this blogpost), which involves hiding the Windows Boot Manager, and tricking the UEFI firmware to open rEFind instead of the fallback bootloader. Of course, Secure Boot must be disabled for this to work.
Then, using a USB drive, I installed Arch on the SD card, following the regular installation instructions of the Wiki. Everything went smoothly.
But when I reboot and arrive to the rEFInd menu, and select Arch, the following error appears
Secure Boot validation failure loading vmlinuz-linux!I remind you that Secure Boot is already off (and I'm sure of that because of the big red banner with a broken lock that now appears in POST after I disabled it).
Signing the kernel and initramfs seems to be a complex operation that I may or may not do in the future, but for the moment I want to avoid it.
So, I just wanted to put this here to see if anyone has had any similar experiences or has recommendations on other ways I can make this setup work, maybe with another bootloader like GRUB2.
Thanks!
Offline
So, quick update for anyone interested in the topic:
- I solved the problem using a very basic system-boot configuration. The procedure is basically the same as with rEFInd, in which you hide the bootwmgr.efi Windows Boot Manager EFI (or, after booting is completed and your UEFI boot sequence is updated with the entry, you can just put it lower in the list), replace the fallback BOOTX64.EFI with systemd-boot.
- This setup requires adding an entry with options root=PARTUUID=xxxx, and putting the vmlinuz-linux kernel and initramfs in the default windows EFI partition (don't worry about the size, 260MB is enough for both of them).
- You also need to chainload the WBM EFI by adding an entry to systemd-boot.
- Finally, you need to write some pacman hooks (in the /etc/pacman.d/hooks dir, and dont forget to uncomment the HooksDir line in pacman.conf) so that everytime you update (remove or install) the kernel or microcode, or rebuild the initramfs, you copy those files to the EFI partition.
- As you know, all of the suggestions in the wiki article for dual-booting Arch and Windows apply.
I haven't gone around to testing and benchmarking the setup yet, but will do so in the future.
![]()
Offline