-
Notifications
You must be signed in to change notification settings - Fork 45
Generic ROMs folder
Here's Bob from RetroRGb demonstrating a RetroNAS install, along with the directory symlink features:
RetroNAS intends to be a central storage repository for as many old systems, computers and consoles as possible.
A great challenge that arises from this is that many, many existing systems already exist that define how storage is laid out. And the last thing we want to do is make yet another standard that just adds to the noise.
RetroNAS creates a generic roms
(lower case) folder in the top level of the RetroNAS share. Under this directory are subdirectories of various manufacturers, and below those folders for different systems, consoles and computers.
The magic sauce is a feature of Linux filesystems (and NTFS too) called "symbolic links", or more commonly "symlinks":
These enable a fake directory somewhere else in the system to point to another part of the system. From here, Samba is specifically configured to follow these links (other tools like FTP and HTTP do this natively).
From here, RetroNAS attempts to built specific layouts for specific systems. Whether these are tools like MiSTer FPGA or OpenPS2Loader or other tools, their specific layouts can be generated and linked back to RetroNAS' generic ROM folder.
This allows for quite a lot of flexibility and space saving, as systems don't need to be doubled-up. If one emulation/storage/sharing system refers to the "Sony PlayStation 1" as "psx", another as "PSX", another as "ps1", and another as "playstation", there's no need to copy bulky ISO images in to all three. Placing them in any one of those locations will make them appear immediately in all of the others without any extra copy or spacing wasting required (as well as the generic folder roms/sony/playstation1
that everything symlinks to).
This can get a little confusing, as the symlinks all look like real folders. Also doing things like trying to calculate space usage via Samba (say, from a Windows desktop) will often result in incorrect information as Windows counts every version of the files found without understanding that they're symlinks.
If you want to know the real usage of the actual disk you are using with RetroNAS, one of the easiest methods is installing Cockpit, navigating "Storage" and seeing the disk as a whole there.
Alternatively, SSH or Telnet in to your device, and run the command
df -hT
This will report on all file systems in the system, their mount point (where they exist in the Linux file system tree), total size, used space, free space and file system type, to give you a complete picture of what's going on across the entire system.
Getting started:
Contributing
- Bugs
- Structure
- Testing RetroNAS
- Ideas potential future state stuff
Multi-system protocols:
- ADTPro Apple // era
- EtherDFS MS-DOS/FreeDOS
- ethflop MS-DOS/FreeDOS L2 floppy emulator
- FTP
- HTTP
- Kermit
- NFS
- Netatalk AppleTalk/AFP
- Samba SMB/CIFS
- TNFS Atari 8-bit and ZX Spectrum
- Telnet
- ZeroConf, Bonjour, Avahi
- pyGopherd a HTTP alternative
- zterm Serial Comms Zmodem Transfer
Specific system configurations:
- Supported Clients
- 3DS QR codes Nintendo 3DS and 2DS
- Batocera
- EmuELEC and derivatives
- RecalBox
- EmuDeck
- Analogue Pocket (OpenFPGA)
- FSP Nintendo GameCube
- Fenrir-ODE Webserver Sega Saturn
- MiSTer FPGA
- NABU Internet Adapter
- Netlink Sega Saturn Netlink online play
- OpenPS2Loader PlayStation 2
- XBox360
- dreampi dreampi project for Dreamcast (and others) online
- hb-store-cdn PlayStation 4 Homebrew Store CDN
- ps3netsrv PlayStation 3
- linux-dexdrive Dump/Write PS1 memory card images
- sidecart Atari ST Sidecart
Services:
- WaybackProxy Web Proxy through the Wayback Machine
- WebOne Web Proxy
- macproxy Web Proxy
- wrp Web Proxy
- Cockpit Web management
- Syncthing file synchronization
- ROM import Smokemonsters SMDB
- TCPser software Hayes Modem
- BitTorrent
- aria2 lightweight download utility.
- megatools mega.nz suite
- XLink Kai multi-platform
Tools:
- gogrepo Sync your GOG installers
- SabreTools DAT management tool
- mc Midnight Commander (Norton clone)
- ytree filemanger XTree clone
- far2l far2l filemanager
- Gadgets Linux gadgets (OTG) mode
- affstools
- amitools
Physical Media:
- DiscImageCreator dump redump.org compatible images
- Redumper advance disc dumper
On-Device Management:
- cue2pops BIN/CUE to VCD conversion
- extract-xiso Manage XISOs
- hdl-dump PS2 HDD device management
- nbd-client Network Block Device
- pfsshell PFS shell / PFS fuse
- ucon64 A multi-purpose copier device tool
- xboxmanager An experimental XBOX Manager
- pi1541 setup a pi1541 compatible device
Advanced storage options:
- BtrFS RAID, Snapshots, Compression, Deduplication
- FAT Advanced guide to using FAT loopback mounts for EtherDFS
- TBA
- SMR Shingled Magnetic Recording hard drives (TBA)
- NTFS Advanced guide for NTFS formatted disks
- SMB Loopback Mounting an existing SMB NAS
- NFS Loopback Mounting an existing NFS NAS
- MDRAID (TBA)
- LVM (TBA)
- iSCSI Configuring iSCSI
Other:
- Installation Profiles
- Generic ROMs folder
- Other projects and sites
- laptop-ao
- Local Module
- Docker and why it's not optimal for a network storage system