MacOSX: виртуальный диск в пямяти (RAM drive)


Иногда требуется очень быстрый диск размера (например для работы с временными файлами в каком-либо требовательном к быстродействию приложении или для базы данных). Для этого в Mac OS X, как и во многих других системах, есть возможность создать диск в оперативной памяти (in-memory drive). Такой диск будет не просто быстрым, а очень быстрым, поскольку данные физически хранятся в системной памяти (RAM) и для чтения-записи подсистема и механика жёсткого диска не используется в принципе. Для создания диска можно выбрать один из способов:
По порядку про каждый из способов:


Бесплатное приложение:

Для совсем ленивых бесплатное приложение Make RAM Disk. Скачать, распаковать, перенести в "Программы", кликнуть 2 раза, получить диск в памяти размером 64M. Кликнуть с зажатым Alt(Option), задать размер перед созданием. Быстро, легко и скучно. :-)


Однострочник:

Для начала надо определиться с размером диска, его надо задавать не в [мега-|гига-]байтах, а количеством блоков (секторов) размером по 512 байт: (сектор = 512 байт = 0.5 Kилобайт). Например, если нужен диск размером 100 Мб, надо взять 200000 секторов (это примерное число, если нужен точный размер,- надо считать в степенях двойки, а не в десятичном округлении). $ diskutil erasevolume HFS+ "ramdisk" `hdiutil attach -nomount ram://200000`. Быстро, легко и в консоли. Но есть шансы забыть :-)


Трёхходовка в консоли с музыкальными инструментами:

  1. Создать неформатированный диск необходимого размера, получить <путь к устройству>:
    hdiutil attach -nomount ram://количество секторов
  2. Форматировать диск:
    newfs_hfs -v <имя диска> <путь к устройству>
    Если нужны какие-то дополнительные опции файловой системы man newfs_hfs. Для других файловых систем man newfs_msdos (для FAT12, FAT16, or FAT32) или man newfs_udf, например.
  3. Примонтировать диск:
    diskutil mount <путь к устройству>. Диск будет примонтирован в точке /Volumes/<имя диска>.