-
-
Save franciscocpg/e929676f28c321692237 to your computer and use it in GitHub Desktop.
Like tmpfs in Mac OSX
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -e | |
curl https://gist.githubusercontent.com/franciscocpg/e929676f28c321692237/raw/mount-ram.sh -o /usr/local/bin/mount-ram | |
chmod +x /usr/local/bin/mount-ram | |
curl https://gist.githubusercontent.com/franciscocpg/e929676f28c321692237/raw/umount-ram.sh -o /usr/local/bin/umount-ram | |
chmod +x /usr/local/bin/umount-ram |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# This program has two feature. | |
# | |
# 1. Create a disk image on RAM. | |
# 2. Mount that disk image. | |
# | |
# Usage: | |
# $0 <dir> <size> | |
# | |
# size: | |
# The `size' is a size of disk image (MB). | |
# | |
# dir: | |
# The `dir' is a directory, the dir is used to mount the disk image. | |
# | |
# See also: | |
# - hdid(8) | |
# | |
mount_point=${1} | |
size=${2:-64} | |
echo "Mounting at $mount_point with size ${size}M" | |
mkdir -p $mount_point | |
if [ $? -ne 0 ]; then | |
echo "The mount point didn't available." >&2 | |
exit $? | |
fi | |
sector=$(expr $size \* 1024 \* 1024 / 512) | |
device_name=$(hdid -nomount "ram://${sector}" | awk '{print $1}') | |
if [ $? -ne 0 ]; then | |
echo "Could not create disk image." >&2 | |
exit $? | |
fi | |
newfs_hfs $device_name > /dev/null | |
if [ $? -ne 0 ]; then | |
echo "Could not format disk image." >&2 | |
exit $? | |
fi | |
mount -t hfs $device_name $mount_point | |
if [ $? -ne 0 ]; then | |
echo "Could not mount disk image." >&2 | |
exit $? | |
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# This program has two features. | |
# | |
# 1. Unmount a disk image. | |
# 2. Detach the disk image from RAM. | |
# | |
# Usage: | |
# $0 <dir> | |
# | |
# dir: | |
# The `dir' is a directory, the dir is mounting a disk image. | |
# | |
# See also: | |
# - hdid(8) | |
# | |
mount_point=$1 | |
if [ ! -d "${mount_point}" ]; then | |
echo "The mount point didn't available." >&2 | |
exit 1 | |
fi | |
mount_point=$(cd $mount_point && pwd) | |
device_name=$(df "${mount_point}" 2>/dev/null | tail -1 | grep "${mount_point}" | cut -d' ' -f1) | |
if [ -z "${device_name}" ]; then | |
echo "The mount point didn't mount disk image." >&2 | |
exit 1 | |
fi | |
umount "${mount_point}" | |
if [ $? -ne 0 ]; then | |
echo "Could not unmount." >&2 | |
exit $? | |
fi | |
hdiutil detach -quiet $device_name |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Install
bash <(curl -s https://gist.githubusercontent.com/franciscocpg/e929676f28c321692237/raw/install.sh)
Usage Example
Mount with 512M
mount-ram /usr/local/var/ram 512
Is mounted?
Umount
umount-ram /usr/local/var/ram