Skip to content

FyshOS/Ferry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ferry

A friendly USB creator for FyshOS. Ferry downloads the latest FyshOS image and writes it to a USB stick, verifying the result and confirming output.

Ferry choosing an image

Features

  • Fetches the latest release directly from the FyshOS GitHub releases, matched to your architecture (amd64, arm64 or i386).
  • Reuses what you already downloaded — images are cached, so a second stick costs no bandwidth.
  • Writes any ISO, not just FyshOS, if you already have one on disk.
  • Verifies after writing. Ferry reads the device back and compares its SHA-256 against the source image, so a bad stick is reported rather than discovered at boot.

Installing

Ferry is a Go application built with Fyne.

go install fyne.io/tools/cmd/fyne@latest
fyne install github.com/fyshos/ferry@latest

Or build from a checkout:

git clone https://github.com/fyshos/ferry.git
cd ferry
fyne install

Requirements

Writing to USB media is supported on Linux and macOS. Ferry builds on other platforms but will report that device writing is unsupported.

Ferry shells out to a few standard utilities, all present on a typical desktop install:

Linux macOS
listing removable devices lsblk diskutil, mount
requesting administrator rights pkexec authopen
writing and flushing dd, sync, blockdev done in-process
verifying sha256sum done in-process
finishing up eject or udisksctl diskutil eject

On Linux, pkexec needs a polkit authentication agent running in your desktop session. Most desktops start one automatically; if the authorisation prompt never appears, that agent is the thing to check.

On macOS Ferry works from an ordinary non-administrator account. The privileged step is only the open: /usr/libexec/authopen presents the system authorization dialog for writing.

How it works

Ferry is a four step wizard:

  1. Architecture — pick the CPU the target machine uses. Defaults to your own.
  2. Image — download the latest FyshOS, pick one you already have, or open any .iso.
  3. Device — choose from the removable drives Ferry found.
  4. Confirm & write — a last look before anything is overwritten, then write and verify.

Downloads land in the application cache directory and are written to a .part file that is only renamed into place on success, so an interrupted download never masquerades as a complete image.

On Linux the write runs as a single privileged shell script under pkexec: it unmounts any mounted partitions, dds the image across, flushes the device's buffer cache, reads back exactly as many bytes as the image is long, and compares checksums, streaming progress back to the UI as it goes.

On macOS the same sequence happens in-process. diskutil unmounts the disk (no privileges needed for external media), authopen returns the raw device descriptor, and Ferry copies the image through it in block-aligned chunks — hashing as it streams, so verification costs no second read of the source — then reads the media back and compares. Progress comes straight from the byte counter.

Safety

Writing an image erases the entire target device. Ferry only lists removable, hotpluggable or USB-attached drives — your system disk will not appear — and the confirmation step shows the device's model, path and size. It still cannot know which stick matters to you, so check those details before you continue.

Once writing starts it cannot be cancelled: there is no safe midpoint to stop a half-written device at. Leave the stick plugged in until Ferry says it is done.

About

A bootable USB stick creator for FysOS ISO images

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages