Manjaro Bootloader installation error

Hello everyone,
I have an ACER Switch 3 from 2017, which is a tablet/PC device with a touchscreen. Previously Windows was installed on it.
I am trying to install Manjaro Gnome 23.0.4 on it now, with the Manjaro Linux Installer and not the CLI, booted from a USB drive.
The internal harddrive was formatted completely during the installation, as I used the “Erase disk | No Swap” option.

The installation process starts without issues until it exits with the following Error:

The bootloader could not be installed. The installation command <pre>grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Manjaro --force</pre> returned error code 1.

I have read many posts and tried different solution suggestions without success.
To give a little more information:

  • Yes Secure Bootloader is turned off
  • Yes the system is booted in UEFI mode
sudo efibootmgr -v

outputs

Skipping unreadable variable "Boot0000": Input/output error
error trace:
    efivarfs.c:275 efivarfs_get_variable(): read failed: Input/output error
    lib.c:140 efi_get_variable(): ops->get_vairable failed: Input/output error
Skipping unreadable variable "Boot2001": Input/output error
error trace:
    efivarfs.c:275 efivarfs_get_variable(): read failed: Input/output error
    lib.c:140 efi_get_variable(): ops->get_vairable failed: Input/output error
Skipping unreadable variable "Boot2002": Input/output error
error trace:
    efivarfs.c:275 efivarfs_get_variable(): read failed: Input/output error
    lib.c:140 efi_get_variable(): ops->get_vairable failed: Input/output error
Skipping unreadable variable "Boot2003": Input/output error
error trace:
    efivarfs.c:275 efivarfs_get_variable(): read failed: Input/output error
    lib.c:140 efi_get_variable(): ops->get_vairable failed: Input/output error
show_order(): Input/output error
inxi -Fxza

outputs

System:
  Kernel: 6.5.5-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
    clocksource: tsc available: hpet,acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-x86_64 lang=en_US keytable=de tz=UTC
    misobasedir=manjaro misolabel=MANJARO_GNOME_2304 quiet
    systemd.show_status=1 splash driver=free nouveau.modeset=1 i915.modeset=1
    radeon.modeset=1
  Desktop: GNOME v: 44.5 tk: GTK v: 3.24.38 wm: gnome-shell dm: GDM v: 44.1
    Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Detachable System: Acer product: Switch SW312-31 v: V1.08
    serial: <superuser required> Chassis: type: 32 serial: <superuser required>
  Mobo: APL model: Tahiti v: V1.08 serial: <superuser required> UEFI: Insyde
    v: 1.08 date: 08/10/2017
Battery:
  ID-1: BAT0 charge: 31.8 Wh (100.0%) condition: 31.8/36.0 Wh (88.4%)
    volts: 8.7 min: 7.7 model: PANASONIC AP16L5J type: Li-ion serial: <filter>
    status: full cycles: 24832
  Device-1: hid-0018:04F3:24FE.0004-battery model: 04F3224A:00 04F3:24FE
    serial: N/A charge: N/A status: N/A
CPU:
  Info: model: Intel Pentium N4200 bits: 64 type: MCP arch: Goldmont level: v2
    built: 2016 process: Intel 14nm family: 6 model-id: 0x5C (92) stepping: 9
    microcode: 0x26
  Topology: cpus: 1x cores: 4 smt: <unsupported> cache: L1: 224 KiB
    desc: d-4x24 KiB; i-4x32 KiB L2: 2 MiB desc: 2x1024 KiB
  Speed (MHz): avg: 1023 high: 1600 min/max: 800/2500 scaling:
    driver: intel_cpufreq governor: schedutil cores: 1: 895 2: 1600 3: 800
    4: 800 bogomips: 8756
  Flags: ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass status: Vulnerable
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines, STIBP: disabled, RSB filling,
    PBRSB-eIBRS: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel Apollo Lake [HD Graphics 505] driver: i915 v: kernel
    arch: Gen-9 process: Intel 14n built: 2015-16 ports: active: eDP-1
    empty: DP-1,HDMI-A-1,HDMI-A-2 bus-ID: 00:02.0 chip-ID: 8086:5a84
    class-ID: 0300
  Display: wayland server: X.org v: 1.21.1.8 with: Xwayland v: 23.2.1
    compositor: gnome-shell driver: gpu: i915 display-ID: 0
  Monitor-1: eDP-1 model: InfoVision Optronics/Kunshan 0x03f4 built: 2017
    res: 1920x1200 dpi: 185 gamma: 1.2 size: 263x164mm (10.35x6.46")
    diag: 310mm (12.2") ratio: 16:10 modes: 1920x1200
  API: EGL v: 1.5 hw: drv: intel iris platforms: device: 0 drv: iris
    device: 1 drv: swrast surfaceless: drv: iris wayland: drv: iris x11:
    drv: iris inactive: gbm
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 23.1.9-manjaro1.1
    glx-v: 1.4 direct-render: yes renderer: Mesa Intel HD Graphics 505 (APL 3)
    device-ID: 8086:5a84 memory: 3.58 GiB unified: yes display-ID: :0.0
Audio:
  Device-1: Intel Celeron N3350/Pentium N4200/Atom E3900 Series Imaging Unit
    driver: N/A bus-ID: 00:03.0 chip-ID: 8086:5a88 class-ID: 0480
  Device-2: Intel Celeron N3350/Pentium N4200/Atom E3900 Series Audio
    Cluster vendor: Acer Incorporated ALI driver: snd_hda_intel v: kernel
    alternate: snd_soc_skl, snd_soc_avs, snd_sof_pci_intel_apl bus-ID: 00:0e.0
    chip-ID: 8086:5a98 class-ID: 0403
  API: ALSA v: k6.5.5-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 0.3.81 status: off tools: pw-cli
  Server-3: PulseAudio v: 16.1 status: active with: pulseaudio-alsa
    type: plugin tools: pacat,pactl
Network:
  Device-1: Intel Wireless 7265 driver: iwlwifi v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 bus-ID: 01:00.0 chip-ID: 8086:095a class-ID: 0280
  IF: wlp1s0 state: up mac: <filter>
Bluetooth:
  Device-1: Intel Bluetooth wireless interface driver: btusb v: 0.8 type: USB
    rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-7:4 chip-ID: 8087:0a2a
    class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 2 state: up address: see --recommends
Drives:
  Local Storage: total: 65.7 GiB used: 7.51 GiB (11.4%)
  ID-1: /dev/mmcblk1 maj-min: 179:0 vendor: SK Hynix model: HCG4a2
    size: 58.24 GiB block-size: physical: 512 B logical: 512 B tech: SSD
    serial: <filter> fw-rev: 0x8 scheme: GPT
  SMART Message: Unknown smartctl error. Unable to generate data.
  ID-2: /dev/sda maj-min: 8:0 vendor: SanDisk model: Cruzer Edge
    size: 7.45 GiB block-size: physical: 512 B logical: 512 B type: USB rev: 2.0
    spd: 480 Mb/s lanes: 1 mode: 2.0 tech: N/A serial: <filter> fw-rev: 1.20
    scheme: GPT
  SMART Message: Unknown USB bridge. Flash drive/Unsupported enclosure?
Partition:
  Message: No partition data found.
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 45.0 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Processes: 223 Uptime: 13m wakeups: 3 Memory: total: 4 GiB
  available: 3.67 GiB used: 2.78 GiB (75.8%) Init: systemd v: 254
  default: graphical tool: systemctl Compilers: gcc: 13.2.1 clang: 16.0.6
  Packages: pm: pacman pkgs: 1253 libs: 318 tools: gnome-software,pamac
  pm: flatpak pkgs: 0 Shell: Zsh v: 5.9 running-in: gnome-terminal
  inxi: 3.3.30
parted -l

outputs

Model: SanDisk Cruzer Edge (scsi)
Disk /dev/sda: 8004MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  7971MB  7970MB               Ventoy   msftdata
 2      7971MB  8004MB  33.6MB  fat16        VTOYEFI  hidden, msftdata, no_automount


Error: /dev/mmcblk1boot0: unrecognised disk label
Model: Generic SD/MMC Storage Card (sd/mmc)                              
Disk /dev/mmcblk1boot0: 4194kB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

Error: /dev/mmcblk1boot1: unrecognised disk label
Model: Generic SD/MMC Storage Card (sd/mmc)                              
Disk /dev/mmcblk1boot1: 4194kB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

Model: MMC HCG4a2 (sd/mmc)
Disk /dev/mmcblk1: 62.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      2097kB  317MB   315MB   fat32              boot, esp
 2      317MB   62.5GB  62.2GB  ext4         root

I have also tried following the GRUB/Restore the GRUB Bootloader guide.
Using

manjaro-chroot -a

and then

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck 

which result in the following output:

Installing for x86_64-efi platform.
show_order(): Input/output error
Skipping unreadable variable "Boot0000": Input/output error
Skipping unreadable variable "Boot2001": Input/output error
Skipping unreadable variable "Boot2002": Input/output error
Skipping unreadable variable "Boot2003": Input/output error
Could not prepare Boot variable: Input/output error
grub-install: error: efibootmgr failed to register the boot entry: Input/output error.

Does anyone have an idea what might be the problem?

Thank you in advance.

There was similar topic not long ago. No real solution because the OP did not follow instructions very well, but in the process of debugging a pair of suspects were identified: such hybrid devices are not classical laptops and can have different flash/partition/boot layout, and very different UEFI.

Specifically, the UEFI there was 32 bit. That might explain why grub cannot write the 64 bit loader of efivar cannot read the uefi. Try the 32 bit install (–target=i386-pc)

To the title issue:

Please review this:

Particularly the bits about checking existing boot entries.

It would appear you have not formatted the existing ESP. Could it be that it is in 32-bit or encrypted?

chroot is for accessing an already installed system from the live media.
If there is no manjaro install on the disk, I’m not sure how that would work …

On to some other things…

This likely will not work well. Calamares itself may struggle with such low memory.

(I would also very much warn you to use some form of SWAP on the resulting installation … as well as ask you to reconsider GNOME on such low memory)

If I am not mistaken this may be able to be remedied by creating some temporary SWAP for the live system to use during installation.

(or you can try an ISO with swap or zram already configured)

Thank you for the fast response. :slight_smile:

I saw that topic and the issues there seem to be very similar to mine, but as you pointed out the OP didn’t cooperate very well and there seems to be no solution that worked for him or that he marked as a solution.

I did however follow most of the suggestions that were posted there.

I used cat /sys/firmware/efi/fw_platform_size to check for the platform size and the return value was 64, so I assumed x86_64-efi was the correct target.

But I will try to use --target=i386-pc and see if that may solve the issue.

I have tried the grub install using --target=i386-pc while in manjaro-chroot -a and this is the result:

grub-install --force --target=i386-pc --recheck --boot-directory=/boot /dev/mmcblk0

output

Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
Installation finished. No error reported.

and then

grub-mkconfig -o /boot/grub/grub.cfg 

output

Generating grub configuration file ...
Found theme: /usr/share/grub/themes/manjaro/theme.txt
Found linux image: /boot/vmlinuz-6.5-x86_64
Found initrd image: /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-6.5-x86_64.img
Found initrd fallback image: /boot/initramfs-6.5-x86_64-fallback.img
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.
ERROR: mkdir /var/lock/dmraid
Adding boot menu entry for UEFI Firmware Settings ...
Root filesystem isn't btrfs
If you think an error has occurred, please file a bug report at "https://github.com/Antynea/grub-btrfs"
Found memtest86+ image: /boot/memtest86+/memtest.bin
/usr/bin/grub-probe: warning: unknown device type mmcblk0.
Found memtest86+ EFI image: /boot/memtest86+/memtest.efi
/usr/bin/grub-probe: warning: unknown device type mmcblk0.
done

Unfortulately that didnt seem to work as when I reboot my device, I can only boot into my USB drive and not to my harddrive.

Thank you for your input.

I did check that topic. It may be possible that i did not format the existing ESP. Unfortunately using efibootmgr does not yield any valuable information as the output from it is

Skipping unreadable variable "Boot0000": Input/output error
error trace:
    efivarfs.c:275 efivarfs_get_variable(): read failed: Input/output error
    lib.c:140 efi_get_variable(): ops->get_vairable failed: Input/output error
...

as mentioned above.

I don’t know how far the installation was completed or how the installation process operates. Maybe Manjaro is installed first and then the bootloader. I dont know.
The installation process copies all data onto the created partitions and executes other commands too (which I cant remember right now), before throwing that Bootloader installation error.

Nevertheless…
manjaro-chroot -a does work when being executed in the cli and doesn’t exit with an error.
Given the following explanation from here

Manjaro deploys a script called manjaro-chroot takes an optional argument which will search the visible devices - scan the partitions for signs of an operating system. If more than one Linux operating system is found you will get a choice of which system to chroot otherwise the file /etc/fstab from the system is used to mount the partitions and chroot into this system.This script is only available in live iso by default but you can get it in an installed system by installing manjaro-tools-base package.

I would assume that a valid operating system was found to chroot into and Manjaro was installed correctly.
So this doesn’t seem to be an issue.

After many many hours of trying a lot of different things and solution attempts I finally did find a solution to the problem and Manjaro is now booting without any issues.

The issues are caused by Acer doing things differently.
So when the bootloader is being installed the NRAM is being written to, which crashes the installation process. And Acer also uses different boot file locations and names.

For anyone running into the same issue here is the link to the Acer forum post that I used to fix it:
Forum Post (the guide is a reply made by linyerleo, about half way down)

TL:DR grub has to be manually installed with the --no-nvram flag and for the BIOS to recognize Manjaro the manjaro folder and the .efi file have to be manually copied into specific paths

2 Likes

This topic was automatically closed 3 hours after the last reply. New replies are no longer allowed.