travisg/files11

Files-11 ODS-2 Filesystem Parser

★ 1Forks 0RustGitHub ↗Compare

README

Files-11 ODS-2 Disk Image Parser

A quick and dirty FILES-11 ODS-2 disk image parser.

Opens a disk image, mounts its ODS-2 volume structure, and lets you browse it either through an interactive shell or via one-shot, non-interactive dumps.

Usage

With no options, it drops you into an interactive shell for browsing the volume:

cargo run -- <disk_image>
Volume Name:      VAXVMS2H4055
Structure Name:
Owner Name:

000000.DIR;1> cd PAKS
000000.DIR;1:PAKS.DIR;1> ls
ADA.PAK;1
ARV_LICENSE_CPUA.COM;2
...
LMF011.DIR;1
...
000000.DIR;1:PAKS.DIR;1> cd LMF011.DIR
000000.DIR;1:PAKS.DIR;1:LMF011.DIR;1> cat -x KIT.DIR
...

Shell commands:

  • ls [-l] — list the current directory (-l for detailed metadata)
  • cd [path|..|/] — change directory (.. for parent, / for root, no argument also goes to root); .DIR is appended automatically if omitted
  • pwd — print the current directory
  • cat [-x] NAME — print a file's contents (-x for a hex/ASCII dump)
  • stat NAME — show detailed metadata and extents for a file or directory
  • map — print the volume's physical LBN layout map
  • help — list available commands
  • exit / quit (or Ctrl-D) — leave the shell

For scripting or piping, pass one of the following flags instead to get a one-shot, non-interactive dump and skip the shell:

cargo run -- <disk_image> -v   # verbose recursive directory dump
cargo run -- <disk_image> -l   # terse recursive directory dump
cargo run -- <disk_image> -m   # physical LBN disk layout map

There's lots to do:

  • Open raw devices instead of disk image files
  • Extract file contents to the host filesystem (cat only prints to the terminal today)
  • Modifying files in place
    • Built in editor?
  • Writing and adding new files to the disk image
  • Handling ODS-1 and/or ODS-5 images

Contributors

travisg

Issues