Boot EFI stopped working in a removable external HDD on Mac mini

Hello,

One KDE designer said me the icon rendering bug was caused by multiple desktop environments and I decided to run sudo -Rscn gnome, and I have noticed that the icon rendering bug has been ended, but the nightmare came when I ran sudo pacman -Syyu which has stopped working, I went to solve running sudo pacman-mirrors -f 10, but it also failed.

I have decided to reinstall Manjaro. I only have replaced the partition (ext and root) as Manjaro Installer has suggested, maintaining the original GPT, EFI and swap partitions.

After having finished the installation, I booted and grub fail appeared saying it does not find /boot/grub/x86-64.efi/normal.mod.

I followed the instructions from Cannot mount boot/efi after forced shutdown with manual power off and I ran the command:

sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck --removable /dev/sdc

But the errors said:

Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: error: embedding is not possible, but this is required for cross-disk install.

grub-install: error: failed to get canonical path of `/boot/efi'.
  • test -d /sys/firmware/efi && echo uefi || echo bios /dev/sdc:
bios /dev/sdc
  • findmnt:
TARGET                                SOURCE      FSTYPE    OPTIONS
/                                     /dev/sdb1   ext4      rw,noatime,data=ordered
β”œβ”€/proc                               proc        proc      rw,nosuid,nodev,noexec,relatime
β”‚ └─/proc/sys/fs/binfmt_misc          systemd-1   autofs    rw,relatime,fd=33,pgrp=1,timeout=0,minproto
β”‚   └─/proc/sys/fs/binfmt_misc        binfmt_misc binfmt_mi rw,relatime
β”œβ”€/sys                                sys         sysfs     rw,nosuid,nodev,noexec,relatime
β”‚ β”œβ”€/sys/kernel/security              securityfs  securityf rw,nosuid,nodev,noexec,relatime
β”‚ β”œβ”€/sys/fs/cgroup                    tmpfs       tmpfs     ro,nosuid,nodev,noexec,mode=755
β”‚ β”‚ β”œβ”€/sys/fs/cgroup/unified          cgroup2     cgroup2   rw,nosuid,nodev,noexec,relatime,nsdelegate
β”‚ β”‚ β”œβ”€/sys/fs/cgroup/systemd          cgroup      cgroup    rw,nosuid,nodev,noexec,relatime,xattr,name=
β”‚ β”‚ β”œβ”€/sys/fs/cgroup/blkio            cgroup      cgroup    rw,nosuid,nodev,noexec,relatime,blkio
β”‚ β”‚ β”œβ”€/sys/fs/cgroup/perf_event       cgroup      cgroup    rw,nosuid,nodev,noexec,relatime,perf_event
β”‚ β”‚ β”œβ”€/sys/fs/cgroup/net_cls,net_prio cgroup      cgroup    rw,nosuid,nodev,noexec,relatime,net_cls,net
β”‚ β”‚ β”œβ”€/sys/fs/cgroup/cpu,cpuacct      cgroup      cgroup    rw,nosuid,nodev,noexec,relatime,cpu,cpuacct
β”‚ β”‚ β”œβ”€/sys/fs/cgroup/pids             cgroup      cgroup    rw,nosuid,nodev,noexec,relatime,pids
β”‚ β”‚ β”œβ”€/sys/fs/cgroup/freezer          cgroup      cgroup    rw,nosuid,nodev,noexec,relatime,freezer
β”‚ β”‚ β”œβ”€/sys/fs/cgroup/memory           cgroup      cgroup    rw,nosuid,nodev,noexec,relatime,memory
β”‚ β”‚ β”œβ”€/sys/fs/cgroup/devices          cgroup      cgroup    rw,nosuid,nodev,noexec,relatime,devices
β”‚ β”‚ β”œβ”€/sys/fs/cgroup/cpuset           cgroup      cgroup    rw,nosuid,nodev,noexec,relatime,cpuset
β”‚ β”‚ └─/sys/fs/cgroup/rdma             cgroup      cgroup    rw,nosuid,nodev,noexec,relatime,rdma
β”‚ β”œβ”€/sys/fs/pstore                    pstore      pstore    rw,nosuid,nodev,noexec,relatime
β”‚ β”œβ”€/sys/fs/bpf                       bpf         bpf       rw,nosuid,nodev,noexec,relatime,mode=700
β”‚ β”œβ”€/sys/kernel/debug                 debugfs     debugfs   rw,relatime
β”‚ β”œβ”€/sys/kernel/config                configfs    configfs  rw,relatime
β”‚ └─/sys/fs/fuse/connections          fusectl     fusectl   rw,relatime
β”œβ”€/dev                                dev         devtmpfs  rw,nosuid,relatime,size=4032776k,nr_inodes=
β”‚ β”œβ”€/dev/shm                          tmpfs       tmpfs     rw,nosuid,nodev
β”‚ β”œβ”€/dev/pts                          devpts      devpts    rw,nosuid,noexec,relatime,gid=5,mode=620,pt
β”‚ β”œβ”€/dev/hugepages                    hugetlbfs   hugetlbfs rw,relatime,pagesize=2M
β”‚ └─/dev/mqueue                       mqueue      mqueue    rw,relatime
β”œβ”€/run                                run         tmpfs     rw,nosuid,nodev,relatime,mode=755
β”‚ β”œβ”€/run/media/gusbemacbe/4d7c5e3e-66b1-4be8-b3bc-919137c788ff
β”‚ β”‚                                   /dev/sdc3   ext4      rw,nosuid,nodev,relatime,data=ordered
β”‚ └─/run/user/1000                    tmpfs       tmpfs     rw,nosuid,nodev,relatime,size=807948k,mode=
β”‚   └─/run/user/1000/gvfs             gvfsd-fuse  fuse.gvfs rw,nosuid,nodev,relatime,user_id=1000,group
β”œβ”€/tmp                                tmpfs       tmpfs     rw,noatime
└─/data/Gustavo                       /dev/sda1   ext4      rw,noatime,data=ordered
  • sudo parted -l:
odel:  Mass Storage Device (scsi)
Disk /dev/sdc: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name  Flags
 1      17.4kB  316MB   316MB   fat32                 msftdata
 2      316MB   8316MB  8001MB  linux-swap(v1)
 3      8316MB  500GB   492GB   ext4
  • fsck.vfat /dev/sdc1:
/dev/sdc1: 117 files, 411/76895 clusters
  • blkid:
/dev/sdc: PTUUID="b0216af2-380c-4464-9a2e-29cf0687185d" PTTYPE="gpt"
/dev/sdc1: UUID="8235-0EA7" TYPE="vfat" PARTUUID="0e5c0064-9992-445e-84c5-f60b97e00315"
/dev/sdc2: LABEL="Swap" UUID="8cc42c67-e60e-4375-90cf-f2d9e218961f" TYPE="swap" PARTUUID="7d0f8dc1-0bc1-46ab-b792-a5da9be1169c"
/dev/sdc3: UUID="4d7c5e3e-66b1-4be8-b3bc-919137c788ff" TYPE="ext4" PARTUUID="87cb012f-45b9-4b67-a2ec-8d49adab1f11"

I mounted /dev/sdc1 (boot/efi) to new directory sdc1/boot/efi, I ran also:

sudo grub-install --target=x86_64-efi --efi-directory=sdc1/boot/efi --bootloader-id=manjaro --recheck --removable /dev/sdc
Installing for x86_64-efi platform.
Installation finished. No error reported.

I tested on my Mac mini and it did not work, the same error insists.

how many disks are you using ?
fdisk -l ( or parted -l ) do not show all disks

is there any EFI + os X ?

If you have not a typo error, it looks like on your reinstallation, you installed on MSDOS mode, not UEFI.
Also the last command for installing grub on mounted partition looks suspicious, not necessarily wrong.

1 Like

It is wrong. Should not be " --efi-directory=sdc1/boot/efi"
Always mount partition and then inssue command. Like

mount /dev/sdc1 /boot/efi
then command as " --efi-directory=/boot/efi"

ps : fstab needs to be amended to include sdc1 as /boot/efi as well
ps: don't have info on other disks. msdos or gpt?
And other OS's - uefi or bios-legacy?
Incomplete data.

1 Like

Only two disks:

  • 1st HD with three partitions:
    • macOS High Sierra
    • Recovery Mode
    • EFI
  • 2nd HDD with three partitions:
    • boot (EFI) (tree boot/efi)
    • linux-swap
    • Manjaro Linux (format ext and tree root)

I did not include all disks, because I am on my laptop instead of Mac mini because my laptop has Manajro and I could use Manjaro of my laptop to repair my external HDD.

If you want to know all disks when on Mac mini, let me link you to my topic I am stuck in the rootfs console and the commands for /sbin/init do not work:

You can see the screenshot from the linked topic:

During the Manjaro Installer, did the reinstallation remove UEFI mode and replace for MSDOS mode?!

It is UEFI. My HDD used to be UEFI before the reinstallation.

There is an error:

$ sudo mount /dev/sdc1 /boot/efi
[sudo] password for gusbemacbe: 
mount: /boot/efi: mount point does not exist.

sudo mkdir /boot/efi
sudo mount /dev/sdc1 /boot/efi

But now we see it is already in your fstab (just provided)
So it is already mounted?
Getting bits of info required here and there leaves confusion and uncertainty.
So now, either we start all over again or we try luck with what we have.
What's findmnt /boot/efi? is it sdc1?
Then continue with your correct grub-install command again together with..
parted /dev/sdc set 1 boot on

That should do it, if we get what you have.

But now we see /boot/efi as mounted in sdb1. Why?
And what is parted -l for sdb? Is it htere somewhwre?
Help us find which post it is listed.

According to my laptop, it is sdc1, but on my Mac mini, it is sdb1.

$ findmnt /boot/efi
TARGET    SOURCE    FSTYPE OPTIONS
/boot/efi /dev/sdc1 vfat   rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro
$sudo parted /dev/sdc set 1 boot on
Information: You may need to update /etc/fstab.

Can we handle just your laptop? Is it working in your laptop?
Then we move to your mac, on which I have no experience except long time ago on the Mac classic (ibm processor), Pre-OS-X and which I have no other system except for Mac only.

And that's why I did not partiticipate except to mention techically the correct grub-install command which is not " --efi-directory=sdc1/boot/efi"

If it works on the laptop, and work again on the laptop after rebooting without the external. I am satisfied it is set up correctly. But I cannot contribute to Mac mini as I do not have experience on it.
So just make sure it works first on the laptop, that it boots, rebooted without it and boots again with it.
Is that okay? Or is that already working?

Yes, because my laptop has Manjaro, what is ideal to repair my external HD. On my Mac mini, I have to use US drive with Manjaro ISO. But on my laptop, it works after and mounting /dev/sdc1 to /boot/efi and running sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck --removable.

In spite of it, I rebooted the external HDD in both laptop and Mac Mini, and the grub failed, saying it did not find the HDD whose UUID is 642981a5-725a-49bb-8e3a-5f2b48a7a7d7 and also said it is an unkwnon filesystem.

$ cat /run/media/gusbemacbe/4d7c5e3e-66b1-4be8-b3bc-919137c788ff/etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=8cc42c67-e60e-4375-90cf-f2d9e218961f swap           swap    defaults,noatime 0 2
UUID=4d7c5e3e-66b1-4be8-b3bc-919137c788ff /              ext4    defaults,noatime 0 1

It seems the boot and the UUID 642981a5-725a-49bb-8e3a-5f2b48a7a7d7 are not listed in this fstab.

To avoid misunderstanding, the installation needs to be UEFI, not the disk. The disk should be GPT.
Even if the disk is GPT, the installation may be MSDOS. As the error says, it looks for msdos something. AFAIK it shouldn't in a UEFI installation.

Sorry for my confusion! My HDD used to be GPT before the reinstallation. But checking by sudo parted -l, it is still GPT. Maybe MSDOS must have been broken.

Still misunderstanding.
For UEFI install, disk needs to be gpt, not msdos, so it's fine. You have to confirm your installed Manjaro for 2nd time was again UEFI.

Good!

Now, as said, I'm going to ignore Mac Mini first. Let's get one problem sorted, (I also think the mac mini will sort itself, barring graphic compatibilities, but never mind, we'll ignore mac mini, at least for my sake, thanks).

Now do this (remember just at the labtop only), and please do all the verification steps.

When booted up to Manjaro at the external....
WAIT!!
What?? What are....
4d7c5e3e-66b1-4be8-b3bc-919137c788ff
642981a5-725a-49bb-8e3a-5f2b48a7a7d7

I think they are not external disk manjaro partitions!
And your fstab is that of other internal OS fstab.

Where are they what are they ??
Where are they listed in your blikd?
Which post?

And if so, I see another unrelated problem with your internal OS fstab. It list swap of the external. How to boot this if external is cnot connected?

And to help confirm petsam uefi booting, at external Mnjaro OS, type efibootmgr.

Its very late here and I had a full day outside. But we should solve one problem at a time.

But I have to sleep now.

2 Likes

It is the UUID name of my external HDD.

See in the end.

On my Mac mini, you can see the list in partedand blkid from other topic:

On my laptop:

  • sudo parted -l:
Model: ATA Hitachi HTS72323 (scsi)
Disk /dev/sda: 320GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  320GB  320GB  primary  ext4


Model: ATA Samsung SSD 860 (scsi)
Disk /dev/sdb: 250GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End    Size    Type     File system     Flags
 1      1049kB  241GB  241GB   primary  ext4            boot
 2      241GB   250GB  9449MB  primary  linux-swap(v1)


Model:  Mass Storage Device (scsi)
Disk /dev/sdc: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name  Flags
 1      17.4kB  316MB   316MB   fat32                 boot, esp
 2      316MB   8316MB  8001MB  linux-swap(v1)
 3      8316MB  500GB   492GB   ext4

And the /etc/fstab of my laptop:

UUID=642981a5-725a-49bb-8e3a-5f2b48a7a7d7        /                               ext4    defaults,noatime 0 1
UUID=974e8eac-e079-4c5d-9070-ba700e92031b       swap                             swap    defaults,noatime 0 2
tmpfs                                           /tmp                             tmpfs   defaults,noatime,mode=1777 0 0
UUID=9c23cf11-86c3-4819-b351-a7058b0eac0d       /data/Gustavo                    ext4    defaults,noatime 0 2

It seems that 642981a5-725a-49bb-8e3a-5f2b48a7a7d7 belongs my laptop's SSD. It is why my external HDD does not recognise my laptop's SSD on my Mac mini. I have to remove this UUID from my external HDD, but I do not know how.

I think I have to copy the old fstab from other topic to my external HDD's fstab

  • efibootmgr
sudo efibootmgr
[sudo] password for gusbemacbe: 
EFI variables are not supported on this system.

Typing from bed now.
But petsam is right all along.
And since he's a polite person, I'll say for him :grinning:
It's quite messed up.
You have gpt with bios-legacy on your external and miss-mashing up everything.

You just cannot grub-install with any commands without remessing it up again.

Suggest you reinstall.
And petsam can take you through it.
He doesn't need sleep.:grin:

But again, remind you I will stay out on Mac mini.
Sorry about that.

Good luck.

1 Like

OK, thank you for your help and your patience!

Good sleep!

1 Like

It worked now. I had to reinstall from Mac mini and not from laptop or from virtual machine, so it would set correctly the fstab, recognising the Mac mini and the Mac mini's EFI.

Hello @gohlip and chaΓ­rete @AgentS ,

Last week I installed from Mac mini and it worked everything and perfectly until today that I updated and it broke the fstab and does not recognise anymore two devices.

I do not want to reinstall or format, because I have formatted Linux 7 times.

After avoiding all those dangerous commands, I will avoid updating and upgrading.

Here is the original fstab that I have backed up. The new fstab is still the same:

UUID=8AA6-986B                              /boot/efi      vfat    defaults,noatime 0 2
UUID=1a9ae34a-453b-40ba-843a-201a7911cc49   swap           swap    defaults,noatime 0 2
UUID=d3b51cb0-3d23-4827-8074-930b75264081   /              ext4    defaults,noatime 0 1

The last two UUIDs are not anymore recognised and I am stucked in the rootfs. It is the Mass Generic Storage, a removable HDD.

If you want to see full error, here is:

ERROR: resume: hibernation device 'UUID=1a9ae34a-453b-40ba-843a-201a7911cc49' not found
ERROR: device 'UUID=d3b51cb0-3d23-4827-8074-930b75264081' not found. SKipping fsck. 
mount: /new_root: can't find UUID=d3b51cb0-3d23-4827-8074-930b75264081.

Forum kindly sponsored by