Contribute
Register

Help booting systemd Arch EFI with clover

Status
Not open for further replies.
I just installed Pop_OS which uses systemd. I know a solution that is quite simple: in the EFI folder change the name of "systemd" folder to "debian", then in that folder change the name of "systemd-bootx64.efi" file to "grubx64.efi". I did this and can confirm it works.
I found this post as I was searching if there are other ways to boot systemd with Clover, but I am surprised at all the complex solutions in this post. Is there a disadvantage to changing the file names, could it cause problems when I update Linux in the future?
I just signed in to say thanks a million! It worked like a charm. :clap::clap:
 
Having wasted quite a bit of time with trying to dual boot Arch Linux and macOS with Clover, here are a few remarks that might be helpful for others. Most crucially, it turns out I had to disable "Legacy boot" in the BIOS on my intel NUC. Once this is done, things are reasonably straight forward. Make sure to mount the EFI partition on /mnt/boot before pacstraping Arch into /mnt. After the pacstrap the root directory of the EFI partition should (still) contain the EFI directory, the newly created kernel file vmlinuz-linux and the relevant images files (for the precise structure, see the Arch Wiki entry for Clover). Once this is done the following Custom clover entry does the trick:

Code:
<key>Custom</key>
    <dict>
      <key>Entries</key>
              <array>
            <dict>
          <key>Arguments</key>
          <string>initrd=\initramfs-linux.img root=LABEL=ARCH rw add_efi_memmap</string>
          <key>Path</key>
          <string>\vmlinuz-linux</string>
          <key>Title</key>
          <string>Arch Linux</string>
          <key>Type</key>
          <string>Linux</string>
          <key>Volume</key>
          <string>EFI</string>
          <key>VolumeType</key>
          <string>Internal</string>
        </dict>
               </array>
    </dict>

I have assigned the label "ARCH" to the root partition of my Arch installation. Alternatively, use UUID or PARTUUID (not the same thing!).

In this way Clover directly boots Arch, without invoking systemd-boot. If I understand things correctly, this method does not require messing around with EFISTUB entries using efibootmgr or similar tools (as some of the previous posts suggest).

Alternatively, it is possible to chainload systemd-boot. This requires using bootctl to create a systemd-bootx64.efi in a subdirectory of the EFI folder and also to create a loader directory as described in the Arch Wiki for systemd-boot. Once this is done, the system can be booted with the following entry

Code:
key>Custom</key>
    <dict>
      <key>Entries</key>
              <array>
                <dict>
                    <key>Volume</key>
                    <string>EFI</string>
                    <key>Path</key>
                    <string>\EFI\systemd\systemd-bootx64.efi</string>
                    <key>Title</key>
                    <string>Arch Linux</string>
                    <key>Type</key>
                    <string>Linux</string>
                </dict>
               </array>
    </dict>
[\CODE]
 
Last edited:
Status
Not open for further replies.
Back
Top