Unable to install Fedora CoreOS on Raspberry Pi 3B+ using arm-image-installer

Bugzilla: 2354980 – Unable to install Fedora CoreOS on Raspberry Pi 3B+ using arm-image-installer

After trying CoreOS in virtual machines I thought I’d put it on my Raspberry Pi 3B+. I expected the installation procedure to be the same, that I could use arm-image-installer to install CoreOS on the MicroSD card. This didn’t work however as I got an error during the installation.

  1. I downloaded the latest Fedora CoreOS release for aarch64: fedora-coreos-41.20250302.3.2-metal.aarch64.raw.xz
  2. I inserted the microSD card and tried to install it using the same command that I’ve used for Fedora Server:
    sudo arm-image-installer --image=/home/mikaeldui/Downloads/fedora-coreos-41.20250302.3.2-metal.aarch64.raw.xz --target=rpi3 --media=/dev/mmcblk0 --addkey=/home/mikaeldui/.ssh/id_ed25519.pub --resizefs
  3. Everything went well until I got this error:
mount: /tmp/fw: wrong fs type, bad option, bad superblock on /dev/mmcblk0p1, missing codepage or helper program, or other error.
       dmesg(1) may have more information after failed mount system call.
Error: mount /dev/mmcblk0p1 /tmp/fw failed

There’s a guide for installing CoreOS on a Raspberry Pi 4, but I have a Raspberry Pi 3B+: Provisioning Fedora CoreOS on the Raspberry Pi 4 :: Fedora Docs

Full log:

=====================================================
= Selected Image:                                 
= /home/mikaeldui/Downloads/fedora-coreos-41.20250302.3.2-metal.aarch64.raw.xz
= Selected Media : /dev/mmcblk0
= U-Boot Target : rpi3
= Root partition will be resized
= SSH Public Key /home/mikaeldui/.ssh/id_ed25519.pub will be added.
= Version: 4.2
=====================================================
 
*****************************************************
*****************************************************
******** WARNING! ALL DATA WILL BE DESTROYED ********
*****************************************************
*****************************************************
 
 Type 'YES' to proceed, anything else to exit now 
 
= Proceed? YES
= Writing: 
= /home/mikaeldui/Downloads/fedora-coreos-41.20250302.3.2-metal.aarch64.raw.xz 
= To: /dev/mmcblk0 ....
2864709632 bytes (2.9 GB, 2.7 GiB) copied, 96 s, 29.8 MB/s2878341120 bytes (2.9 GB, 2.7 GiB) copied, 96.5766 s, 29.8 MB/s

686+1 records in
686+1 records out
2878341120 bytes (2.9 GB, 2.7 GiB) copied, 96.6427 s, 29.8 MB/s
= Writing image complete!
Warning: Not all of the space available to /dev/mmcblk0 appears to be used, you can fix the GPT to use all of the space (an extra 378882048 blocks) or continue with the current setting? 
= Resizing /dev/mmcblk0 ....
GPT PMBR size mismatch (5621759 != 384503807) will be corrected by write.
The backup GPT table is not on the end of the device. This problem will be corrected by write.
Checking that no-one is using this disk right now ... OK

Disk /dev/mmcblk0: 183.35 GiB, 196865949696 bytes, 384503808 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 00000000-0000-4000-A000-000000000001

Old situation:

Device           Start     End Sectors  Size Type
/dev/mmcblk0p1    2048    4095    2048    1M Linux reserved
/dev/mmcblk0p2    4096  264191  260096  127M EFI System
/dev/mmcblk0p3  264192 1050623  786432  384M Linux filesystem
/dev/mmcblk0p4 1050624 5619711 4569088  2.2G Linux filesystem

/dev/mmcblk0p4: 
New situation:
Disklabel type: gpt
Disk identifier: 00000000-0000-4000-A000-000000000001

Device           Start       End   Sectors   Size Type
/dev/mmcblk0p1    2048      4095      2048     1M Linux reserved
/dev/mmcblk0p2    4096    264191    260096   127M EFI System
/dev/mmcblk0p3  264192   1050623    786432   384M Linux filesystem
/dev/mmcblk0p4 1050624 384503774 383453151 182.8G Linux filesystem

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
mount: /tmp/fw: wrong fs type, bad option, bad superblock on /dev/mmcblk0p1, missing codepage or helper program, or other error.
       dmesg(1) may have more information after failed mount system call.
Error: mount /dev/mmcblk0p1 /tmp/fw failed

For comparison, when I install Fedora Server successfully:

=====================================================
**************************************************
= NOTE: This host system uses the same VG name as 
= the AArch64 disk image. To avoid issues, the VG 
= on the image will be renamed to 'fedora-server'.
**************************************************
= Selected Image:                                 
= /home/mikaeldui/Downloads/Fedora-Server-41-1.4.aarch64.raw.xz
= Selected Media : /dev/mmcblk0
= U-Boot Target : rpi3
= Root partition will be resized
= SSH Public Key /home/mikaeldui/.ssh/id_ed25519.pub will be added.
= Version: 4.2
=====================================================
 
*****************************************************
*****************************************************
******** WARNING! ALL DATA WILL BE DESTROYED ********
*****************************************************
*****************************************************
 
 Type 'YES' to proceed, anything else to exit now 
 
= Proceed? YES
= Writing: 
= /home/mikaeldui/Downloads/Fedora-Server-41-1.4.aarch64.raw.xz 
= To: /dev/mmcblk0 ....
7516192768 bytes (7.5 GB, 7.0 GiB) copied, 251 s, 29.9 MB/s
1792+0 records in
1792+0 records out
7516192768 bytes (7.5 GB, 7.0 GiB) copied, 251.063 s, 29.9 MB/s
= Writing image complete!
= Resizing /dev/mmcblk0 ....
  Processing VG fedora because of matching UUID iZ3IQq-3DHr-OwMZ-aeTo-V17u-PyN0-OT1rnU
  Volume group "iZ3IQq-3DHr-OwMZ-aeTo-V17u-PyN0-OT1rnU" successfully renamed to "fedora-server"
Checking that no-one is using this disk right now ... OK

Disk /dev/mmcblk0: 183.35 GiB, 196865949696 bytes, 384503808 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x121bc425

Old situation:

Device         Boot   Start      End  Sectors  Size Id Type
/dev/mmcblk0p1 *       2048  1230847  1228800  600M  6 FAT16
/dev/mmcblk0p2      1230848  3327999  2097152    1G 83 Linux
/dev/mmcblk0p3      3328000 14680063 11352064  5.4G 8e Linux LVM

/dev/mmcblk0p3: 
New situation:
Disklabel type: dos
Disk identifier: 0x121bc425

Device         Boot   Start       End   Sectors   Size Id Type
/dev/mmcblk0p1 *       2048   1230847   1228800   600M  6 FAT16
/dev/mmcblk0p2      1230848   3327999   2097152     1G 83 Linux
/dev/mmcblk0p3      3328000 384503807 381175808 181.8G 8e Linux LVM

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
  Physical volume "/dev/mmcblk0p3" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
  Size of logical volume fedora-server/root changed from 5.41 GiB (1385 extents) to <181.76 GiB (46530 extents).
  Logical volume fedora-server/root successfully resized.
meta-data=/dev/mapper/fedora--server-root isize=512    agcount=4, agsize=354560 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=1
data     =                       bsize=4096   blocks=1418240, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1418240 to 47646720
= Raspberry Pi 3 Uboot is already in place, no changes needed.
= Adding SSH key to authorized keys.

= Installation Complete! Insert into the rpi3 and boot.

From memory, we don’t support using the arm-image-installer to install Fedora CoreOS. You would have to start with the procedure from the docs and adapt things for the Raspberry Pi 3B+ board, i.e. firmware files, etc.