User Tools

Site Tools


ubuntu:disk:ramdisk:persisting_ramdisk_data

Ubuntu - Disk - Ramdisk - Persisting Ramdisk Data

A Ramdisk is a temporary storage device.

When the computer is shutdown all the data within the Ramdisk is erased.

To ensure this data is retained, the approach taken here is:

  • Save Ramdisk data to hard drive on system shutdown.
  • Load data from hard drive to Ramdisk on system boot.

NOTE: The syncing from the Ramdisk to the hard disk and vice-versa will be slow, but at least the data will be stored permanently.

  • In essence, the Ramdisk acts here as a cache.

Create backup directory

Create a directory where the Ramdisk data will be saved on system shutdown:

sudo mkdir /mnt/ramdisk_backup

Create a system service file

vi /lib/systemd/system/ramdisk-sync.service

and populate with:

/lib/systemd/system/ramdisk-sync.service
[Unit]
Before=umount.target
 
[Service]
Type=oneshot
User=root
ExecStartPre=/bin/chown -Rf peter /mnt/ramdisk/
ExecStart=/usr/bin/rsync -ar /mnt/ramdisk_backup/ /mnt/ramdisk/
ExecStop=/usr/bin/rsync -ar /mnt/ramdisk/ /mnt/ramdisk_backup/
ExecStopPost=/bin/chown -Rf peter /mnt/ramdisk_backup
RemainAfterExit=yes
 
[Install]
WantedBy=multi-user.target

NOTE: The directory where the Ramdisk is mounted and where the backup data will be saved must have the same file permissions.


Enable the ramdisk-sync service

sudo systemctl enable ramdisk-sync.service

NOTE: The ramdisk-sync service will start automatically on system boot.


Reboot

sudo reboot

Check whether the ramdisk-sync service is running

sudo systemctl status ramdisk-sync

Check the contents of the /mnt/ramdisk and /mnt/ramdisk_backup directories

ls /mnt/ramdisk{,_backup}

NOTE: Both should be empty.


Test

Copy some files to the Ramdisk /mnt/ramdisk.

Reboot again.

Check again the contents of both the /mnt/ramdisk and /mnt/ramdisk_backup directories.

  • They should be the same!

ubuntu/disk/ramdisk/persisting_ramdisk_data.txt · Last modified: 2021/06/22 11:18 by peter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki