Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

All I can find on the Internet is a one line bash command to activate a ramdisk. It is only 550mb and I would like to be able to create on with more space? Is there a way to configure how big they can be? If not, why are they limited in the first place?

share|improve this question

1 Answer 1

up vote 10 down vote accepted

Here is the one-liner I found to create a ramdisk:

diskutil erasevolume HFS+ "ramdisk" `hdiutil attach -nomount ram://1165430`

It is actually two commands; if you run them individually, you get:

$ hdiutil attach -nomount ram://1165430
/dev/disk4              

$ diskutil erasevolume HFS+ "ramdisk" /dev/disk4
Started erase on disk4
Unmounting disk
Erasing
Initialized /dev/rdisk4 as a 569 MB HFS Plus volume
Mounting disk
Finished erase on disk4 ramdisk

The first command creates a block storage device in RAM, and the second command formats it with the standard OS X filesystem.

If you run df to see how much free space is on your disks, you'll get:

$ df
Filesystem                        512-blocks      Used Available Capacity  Mounted on
/dev/disk0s2                       974509344 435640768 538356576    45%    /
....
/dev/disk4                           1165424     27376   1138048     3%    /Volumes/ramdisk

Note how it shows that the RAM Disk is using 1165424 '512-blocks' (which, if you run df -h, for human readable output, you'll see is '569 Mi').

So, the answer is, change the number you specify in the first command, which specified how large the disk is in 512 byte blocks. If you want 1.5 GB (or, perhaps I should say 'GiB', go as follows:

           1024 MiB   1024 KiB   1024 bytes    1 block  
 1.5 GiB * -------- * -------- * ---------- * ---------   = 3145728 blocks                                                                 
             GiB        MiB         KiB       512 bytes                                         

To verify, I'll run the following commands:

$ hdiutil eject /Volumes/ramdisk/

$ diskutil erasevolume HFS+ "ramdisk" `hdiutil attach -nomount ram://3145728`
Started erase on disk4
Unmounting disk
Erasing
Initialized /dev/rdisk4 as a 2 GB HFS Plus volume
Mounting disk
Finished erase on disk4 ramdisk

$ df
Filesystem                        512-blocks      Used Available Capacity  Mounted on
/dev/disk0s2                       974509344 435460472 538536872    45%    /
...
/dev/disk4                           3145728     24696   3121032     1%    /Volumes/ramdisk

$ df -h 
Filesystem                          Size   Used  Avail Capacity  Mounted on
/dev/disk4                         1.5Gi   12Mi  1.5Gi     1%    /Volumes/ramdisk

It sounds like previously you could only create a RAM disk up to 2.1 GiB, but that is not the case in Snow Leopard and newer.

Also, there are tools to help create RAM disks without calculating blocks yourself. I haven't used them, but here are three: TmpDisk, Make Ram Disk, and crd.

share|improve this answer
1  
Oh my gosh! What a thorough answer! Thank you. This is perfect and helps a ton. I really appreciate people like you. :) –  Zizma Jul 7 '12 at 17:47
    
@Zizma - You are welcome. It just so happened that only a couple of weeks ago I was looking into RAM disks and had to figure out how to create them. –  Clinton Blackmore Jul 7 '12 at 17:55

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.