A Theoretical Adjustment For the KOReader Installation Script for Kobo Devices

Published on 2024-5-28

A few months ago, I got antsy with my Kobo Libra 2 and wanted to make some nitpicky adjustments to my settings. Unfortunately, the stock reader software was not as granular as I needed it to be. I decided it was finally time to install KOReader.

I expected that an open-source reader solution like this would be well-supported, and that was exactly what I found as I read documentation. You basically drop some files into your device and run a script. As with any niche community, people are incredibly passionate and there’s a huge amount of information for an expansive variety of different ereaders. With forum support as a backup, the entire thing seemed pretty idiot-proof.

So imagine my surprise when I instantly hit an error when I ran the script:

Couldn't find a Kobo eReader volume! Is one actually mounted?

Perplexed, I checked to see that the device was plugged in and viewable through file explorer (it was). I and turned everything off and back on again, which resulted in no change. Searching for the error online only resulted in a couple other incidents which did not appear to be related or relevant.

So I took a look at the script (for posterity, you can find it HERE) and spotted the issue almost immediately:

$KOBO_MOUNTPOINT=Get-Disk | Where BusType -eq USB | Get-Partition | Get-Volume | Where FileSystemLabel -eq KOBOeReader

The script is looking for a connected device exactly matching the default KOBOeReader name (i.e. “KOBOeReader”), and It would seem that I am the only weirdo who renames all of my USB devices (I guess I’m sentimental?).

I changed the name of my device back to the default and had no further issues with my installation, and lost a few days as I spent more time tinkering with my reading experience than actually reading. Thank you, KOReader team!

But is it possible to adjust the script to allow custom device names?

By using a generic Kobo file to identify a Kobo device instead of the default name, I could still have the opportunity to name my reader something ridiculous:

$KOBO_MOUNTPOINT = Get-Disk | Where-Object BusType -eq 'USB' | Get-Partition | Get-Volume | ForEach-Object {
   if (Test-Path "$($_.DriveLetter):.koboKoboReader.sqlite") {
       return "$($_.DriveLetter):"
}
} | Select-Object -First 1

I haven’t had a chance to test this yet (and I’m not sure it’s enough of a problem to warrant a suggestion to the fantastic creators of the original script) but it was a fun exercise to think about what I’d do to solve my issue.

Mind Dump 2 © 2025