Skip to content

asig/odit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

odit - Oberon Disk Image Tool

A command-line tool for working with Native Oberon disk images. odit allows you to list, read, write, and mount Native Oberon file systems on modern operating systems.

Features

  • List files in Oberon disk images
  • Read files from Oberon images to your host file system
  • Write files from your host file system to Oberon images
  • Mount Oberon images as FUSE filesystems for direct file access
  • File information display (size, creation time, disk location)

Installation

Prerequisites

  • Go 1.25.1 or later
  • FUSE libraries (for mount functionality)
    • Linux: libfuse-dev or fuse3-dev
    • macOS: Install macFUSE

Build from Source

git clone https://github.com/asig/odit.git
cd odit
go build

Usage

odit -image <image_file> [flags] {command}

Flags

  • -image <image> - Required: Specifies the Oberon disk image to work on
  • -log-level <level> - Sets the log level (trace, debug, info, warn, error, fatal, panic). Default: error

Commands

List Files

List all files in the image:

odit -image disk.img list

File Information

Show detailed information about a specific file:

odit -image disk.img info System.Tool

Output includes:

  • File name
  • First block address
  • File size in bytes
  • Creation timestamp

Read File

Copy a file from the Oberon image to your host file system:

odit -image disk.img read System.Tool output.txt

Write File

Copy a file from your host file system to the Oberon image:

odit -image disk.img write input.txt NewFile.Tool

Note: File names in Oberon must:

  • Start with a letter
  • Contain only letters, digits, and dots
  • Be 32 characters or less

Mount Filesystem

Mount the Oberon image at a mountpoint using FUSE:

odit -image disk.img mount /mnt/oberon

The filesystem will remain mounted until you unmount it:

# Linux
umount /mnt/oberon

# macOS
diskutil unmount /mnt/oberon

While mounted, you can access files using standard tools (ls, cat, cp, etc.).

Examples

Backup files from an Oberon image

# List all files
odit -image oberon.img list > files.txt

# Read each file
while read filename; do
    odit -image oberon.img read "$filename" "backup/$filename"
done < files.txt

Browse an image with FUSE

# Mount the image
mkdir /tmp/oberon
odit -image oberon.img mount /tmp/oberon

# Browse in another terminal
cd /tmp/oberon
ls -l
cat System.Tool

# Unmount when done
umount /tmp/oberon

Add files to an image

# Write a new file
echo "Hello from modern OS!" > greeting.txt
odit -image oberon.img write greeting.txt Greeting.Text

# Verify it was written
odit -image oberon.img info Greeting.Text

License

Copyright (C) 2025 Andreas Signer asigner@gmail.com

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

See the GNU General Public License for more details.

Links

About

Oberon Disk Image Tool: A command-line tool for working with Native Oberon disk images, allowing you to list, read, write, and mount Native Oberon file systems on modern operating systems.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages