Zicroram's Official Shareware Github.
RULES FOR IDENTATION AND COMMENTS IN .ZICRORAM FILES
RESTORING DATA FROM POWER BLACKOUTS, SYSTEM CRASHES OR FREEZES
ADDING PROGRAM/DATA TO RAM ON SYSTEM STARTUP
OPERATING SYSTEM SUPPORT || SYSTEM REQUIREMENTS
Zicroram is a C/C++ Ramdisk Command-Line Tool for Linux TMPFS/RAMFS that adds further ramdrive capabilities:
1 - Adding(Synchronously and Assynchronously) Data to RAM(--add or --addc)
2 - Checking Status (--usage or --usagel)
3 - Removing Data from RAM(--remove-all or --remove)
4 - Restoring Data from DISK Back into RAM (--restore)
5 - Backing up data from RAM Into disk (--mmbackup and --mtbackup)
6 - Copying programs on system bootup (--boots or --bootsc)
7 - More instructions & commands (--help, --help-setup, --help-program, --help-info)
8 - Troubleshoot (--troubleshoot)
The program also includes a man page, you can read it once the program is installed on the system:
$ man zicroram
The use of the shareware version here available is limited to 15GB of RAM. You can keep using this program indefinitely, by simply removing programs and freeing up space. Full version features no limitations, however full version isn't yet available to public use.
The shareware limitation is only imposed on the tool(zicroram) side; which means no limitation is ever set on the Linux Operating System nor on the TMPFS/RAMFS Kernel Modules and none of it's configuration files.
-
For those who are under Security-Enhanced Linux (SELinux), you can still normally use the program, however if you(or the system) ever makes any changes to SELinux metadata features for a given specific data, those changes can't be detected as of yet and therefore not backed up from ram to disk on user request when using '--mmbackup', '--mtbackup', '--checks', '--mmremove'. Any other types of changes will be detected and backed up normally.
-
Reflink file support is non-existent; currently, neither TMPFS nor RAMFS supports CoW/Reflink data; in other words as of this date it'd be impossible to give it support today. However, this is only a problem when doing DATA BACKUPS using '--mmbackup', '--mtbackup', '--mmremove' after changing/editing/updating the reflinked file in RAM. If no editing of reflinked files takes place, then doing DATA BACKUPS isn't a problem and should be fine.
About Current Limitation on REFLINK: There's zero support on TMPFS/RAMFS, so there's literally nothing that can currently be done.
Workaround for SELinux: If you really need to work with SELinux filesystem features, you can still use this program and either write/code or use alternative backup tool(s) for your specific data.
At the far right side of the screen - at the top of this page - you'll find a 'RELEASE' section and once you click in it, you'll then be taken to a page describing the version and changes made to the program on that version. At the 'Assets' section of that page, you can download the program under the name " zicroram.x86-64.glibc.tar.gz "; the '.tar.gz' is a tar compressed file and after downloading it, it'll need to be uncompressed using the 'tar' tool:
Extracting into current directory:
$ tar xvf ./zicroram.tar.gz;
or, extracting in a new directory:
$ mkdir ./new_dir;
$ tar xvf ./zicroram.tar.gz -C ./new_dir;
Installation can be realized through it's commandline interface(CLI) through any terminal emulator installed on your linux distribution :
$ ./zicroram --install-wizard
The program will automatically request root authorization for the user if necessary.
Uninstallation can only be done once after the program is fully installed :
$ zicroram --uninstall
If you go through problems during uninstallation, make sure you close any programs that you might be running after adding them to RAM using zicroram.
Program can easily be updated whenever a new version exists server-side:
$ zicroram --update
The program works by creating and mounting a TMPFS device called /zicroram/ and allowing the user to add any data through a simple command, like for example:
$ zicroram --add ~/Pictures ~/Music ~/Downloads
After this the program will symlink the real path where the data was located to the newly created TMPFS mounted device allowing the user to call on his data as if it were still on the disk. The real data will be renamed to keep it safe from power blackouts and system crashes until either a --remove or --restore command is used.
In case of system crash or power blackout, once your system reboots, data can be easily restored to real data path using
$ zicroram --restore
The above command will put the original files back in place where the symlinks were created.
Many more commands can be found by typing:
$ zicroram --help
The --help command will list and thoroughly explain each of the commands.
A file with a .zicroram extension can be optionally created to make it easy adding programs and/or group of programs into ram in such a way the user doesn't have to worry about creating a shell(bash/zsh) script.
To do this, simply create a file with an extension called '.zicroram', then make sure each line corresponds to a directory or file of your choice; you can then add as much data(ex.: pictures, songs, etc..) as you want in this single file. example:
[file: ~/my_programs.zicroram]
#GIMP - Image Editor:
/usr/share/gimp
#GVIM - Text Editor:
/usr/share/gvim
#Personal Files/Documents:
~/Music
~/Pictures #My Pictures
~/Documents #My Documents
[/file]
Note that you SHOULD NOT have to use the notation for file that is located between brackets: '[' and ']'. The brackets are only meant so that the user understands those are the pertaining contents of a given file.
Now you can add all data using a single command:
$ ./zicroram --add ~/my_programs.zicroram
As you have seen in the example above, you can add comments to lines, create comment lines and make use of text-ident for better readability and maintainability of the .zicroram files; for doing this you need to follow these simple rules below.
1 - You can create text identation using Tabulation(Tab) Key or white(blank) space key.
2 - For creating a comment line, you can add '#' character at the start of a line.
3 - To create a comment line at the same line as an existing data, you can use Tabulation(Tab) Key and '#' character.
The previous topic above provides a full example: CREATING ZICRORAM FILES
With the --restore instruction it's possible to recover previously existing data that is still located on the disk; however, it's important to understand that changes that might have been made while data was into ram is now permanently lost at this point:
$ zicroram --restore
Restore is only possible, because zicroram renames the original data before creating a symlink and copying the desired program(or data) into ram; the --restore instruction will simply remove the symlink(s) that have been created then it'll move and rename the original data back to where it originally was.
because of this, do not forget to use --mmbackup or --mtbackup if you need to.
Adding programs into ram in this specific case can be achieved by adding 'zicroram --boots ..' inside your .bash_profile( for bash users ) or .zprofile ( for zsh users ) file:
for ZSH users:
-
system wide configuration file:
[file: /etc/zsh/zprofile] zicroram --boots ~/my_programs.zicroram [/file]
-
user configuration file:
[file: ~/.zprofile] zicroram --boots ~/my_programs.zicroram [/file]
for BASH users:
-
system wide configuration file:
[file: /etc/profile] zicroram --boots ~/my_programs.zicroram [/file]
-
user configuration file:
[file: ~/.bash_profile] zicroram --boots ~/my_programs.zicroram [/file]
Note that you do not have to use the notation for file that is located between brackets: '[' and ']'. The brackets are only meant here so that the user understands this is the contents of a file.
The --boots instruction outputs to screen a copy-to-ram progress and makes the user wait for the whole process to finish, however depending on the program and/or how fast your hard drive is, it's possible to bypass this step and avoid all the 'waiting' during system startup; if such is the case, then use --bootsc instead of --boots - However, currently it's not possible to check copy progress after bypassing it with such option.
Check the manual after installing for more information on --boots and --bootsc:
$ man zicroram
or
$ zicroram --help-program
If you use something other than 'bash' and 'zsh', like 'tcsh' you'll have to search for it's system/user configuration file(s) and do the same described here.
Upon program installation using zicroram --install-wizard the user must agree with the displayed use license; if the user doesn't agree with one or more terms the installation will be cancelled and the user should give up installation of the program at once.
The sole developer doesn't take any lyability for the mistakes that may arise from using a RamDisk(or RamDrive) software; since RAM Storage isn't a persistent type of storage, important data may be permanently lost forever with no means of recover.
If you don't agree with the USE LICENSE of this program, do not use it! You've been warned.
Zicroram should work on all GNU Linux Distributions out-of-box as long as they support:
1 - GLIBC 2.34 or greater version
2 - TMPFS Enabled kernel.
Zicroram runs as an administrative tool on your system, so administrator/root access will be required.
It's advisable not to run this program under Windows' WSL; last time I checked WSL didn't support real TMPFS Filesystem and instead uses the Hard Drive as TMPFS device instead of the Ram Memory thus making the program developed in here pointless.
The program in here was sole developed by a single dev,
get in contact with him on the email provided in the binary release of this program and also the one in here:
Email: srmfsrmf@hotmail.com
If you've found a bug, you're welcome to open an issue and report it in this github. DO NOT SEND bugs or problems over email, they'll be automatically ignored and treated as junk.
The binary program offers a quickhand page on troubleshooting that you can read regardless if the program is installed on the system:
$ ./zicroram --troubleshoot
This command is important as it describes most of the common issues users may have to deal with and how to either solve or avoid those problems.