I dont know who needs this, but I have found many places and forums where the question has been asked but not satisfactory answered.

How to correctly reformat a Compact Flash-Card(CF-Card)

for the Psion 5(mx) without windows XP or prior, i.e on Linux.

This will work if you accidentally, reformated it to the wrong file system or renamed it from a computer and not on the Psion it self. Why this is an issue I don’t know, there are other interesting quirks with the psion and the CF-Card filesystem but we will get to that after the guide.

Note:

The CF-Card can be no larger than 2GB. All commands in this guide will be preceded by Command: , and example of the output from that command will be preceded by Output:

You can do this whole operation on a live USB disk, in case you don’t want or have Linux installed.

Open a terminal if you haven’t already, now would be a good time to plug your CF-Card into your computer, through an adapter or directly into your CF-Card reader.

Now we want to identify our CF-Card and make a note of the name it has in /dev.

Type:

Command: lsblk

Output:

NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
			sda           8:0    1   16M  0 disk 
			└─sda1        8:1    1   16M  0 part /media/user/USB-DRIVE
			sdb           8:16   1    0B  0 disk 
			sdc           8:32   1    0B  0 disk 
			nvme0n1     259:0    0  1,9T  0 disk 
			├─nvme0n1p1 259:1    0    1M  0 part 
			├─nvme0n1p2 259:2    0  513M  0 part /boot/efi
			└─nvme0n1p3 259:3    0  1,9T  0 part /

So as long as you know the size of you CF-Card its easy to identify what device it is. In this case it is sda. sda1 is a partition on the device, we will be removing this and or any pre-existing partitions in the comming steps. First we need to unmount any partition on our CF-Card that is, or has been, mounted. We can refer to the output above to identify the partition we need to unmount. Under the column MOUNTPOINTS we can see all mounted partitions on our system and their mountpoints, hence the name of the column. so in this case it is “sda1”, that is under “sda”. because it is mounted at /media/user/USB-DRIVE.

Type:

Command: sudo umount /dev/sda1

You will now be asked to type in your password, do that and press ENTER. Unless you typed the command or password wrong you should just get a new line with:

yourusername@yourcomputer:~$

Next we are going to use “fdisk”. Type:

Command: sudo fdisk /dev/sda

Output:

Welcome to fdisk (util-linux 2.39.3).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help):

we are now “in” the fdisk program and can ask it to do things by giving it commands. for example press “m” followed by ENTER, to see a list of possible commands. First we want to remove any pre existing partitions.

Type:

Command: d

Output:

Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

Command (m for help):

Then we have to create a new empty MBR(DOS) partition table

Type: Command: o

Output:

Command (m for help): o
Created a new DOS (MBR) disklabel with disk identifier 0x9f0e8a9c.


Command (m for help):

And now we are ready to create a new partition that can be read by the Psion.

Type: Command: n

Output:

Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):

Choose primary, ENTER to continue

Output:

Uses the default answer p.
Partition number (1-4, default value 1):

Type: 1 and press enter. this will create the partition sda1

Output:

First sector (2048-XXXXXXXXX, default value 2048):

Press enter to continue, cause we want the partition to start at the first sector.

Output:

Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-XXXXXXXXX, default value XXXXXXXXX):

Now we will choose the size of out partition, unless you want to make more than one partition you can just press ENTER here as well. otherwise you can specify the size my tying + followed by the size and lastly if it is in K(Kilobytes), M(Megabytes), etc. something like this +16M and then ENTER.

Output:

Created a new partition 1 of type "Linux" with size 16 MB.
Partition #1 contains a vfat signature.

Do you want to remove the signature? [Y]es/[N]o:

We are goint to specify that it is a Vfat 16 in the next step so I don’t think the answer to this question really matters, but choose No and press ENTER. But before we do that we need to make it Bootable.

Type:

Command: a

Output:

Command (m for help): a

Selected partition 1
The bootability flag for partition 1 is now enabled.

Command (m for help):

Now its time to make this partition FAT16, wich is what the Psion 5 and Psion 5mx requires.

Type:

Command: t

Output:

Command (m for help): t
Selected partition 1
Hex code or alias (type L to list all):

Type: 4 and press ENTER

Output:

Changed partition type "Linux" to "FAT16 <32M".

Command (m for help):

We can now type p to check that everything looks correct or w(followed by ENTER of course) to write the partition table to the disk. and q to quit fdisk.

You can use lsblk to double check that the CF-Card is not mounted before removing it from computer, but it shouldn’t be. Or why not mount it and copy over PsionDoom(github.com/doomhack/PsionDoom/releases/tag/0.2) and frag some monsters.

Some interesting discoveries: So apparently if you write any changes to the CF-Card from the Psion, like editing and saving a text file or creating a new folder on the Psion. All the files and folders will be “write protected” the next time you mount the CF-Card on your Linux system. But the same issue does not occur if you mount it on WinXP, I don’t know why, yet. but at least now you can move files two your Psion 5mx and use your additional storage space.

Hope you found this guide helpful and easy to follow along with.