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 [email protected]

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

1 star

Watchers

0 watching

Forks

Contributors

Languages