Для некритических систем Linux я часто перемещаю такие вещи, как / tmp и / var / log в tmpfs, чтобы сэкономить на записи на диск. Я делал это в течение года или около того, и если мне когда-нибудь понадобятся логи при перезагрузках, я просто закомментирую строку в / etc / fstab, а затем начну отладку.
В любом случае, я хотел бы сделать то же самое на OS X. Я видел сообщения о создании виртуального диска для OS X, но я ищу более постоянное решение, которое работает при каждой загрузке. Я всегда хочу, чтобы / tmp и / var / log монтировались на виртуальном диске, с возможностью отключить это с помощью небольшого редактирования командной строки в vi, если это необходимо.
Ответы:
Вот скрипт для создания виртуальных дисков на OS X. Извините, он не отвечает на ваш вопрос. Вы можете использовать это для создания чего-то, что запускается при загрузке, а затем монтирует / tmp и / var / log.
От @salvatore http://pastie.textmate.org/pastes/1417478/text?key=igcxuzqqvlmlbavxooj2uw
источник
РЕДАКТИРОВАТЬ: Я просто собираюсь принять свой собственный ответ, так как он решил одну часть проблемы для меня. Если кто-то напишет что-то более похожее на --bind в Linux, я приму этот ответ.
Стремясь побудить больше ответов, я начну отвечать на свой собственный вопрос с тем, что я узнал.
Шаг 1 - каждый раз подключать виртуальный диск при загрузке. Для этого я создаю сценарий bash, а затем запись launchd для вызова сценария bash при загрузке.
Напишите bash-скрипт так:
Затем вызовите его при загрузке, добавив его в launchd, создав файл /Library/LaunchDaemons/com.my.ramdisk.plist со следующим содержимым:
То, где я застрял, - это способ символической ссылки или монтирования каталогов внутри виртуального диска в / tmp, / var / log и / var / tmp. Эти три каталога в моей системе являются символическими ссылками на / private / tmp, / private / var / log и / private / var / tmp. Когда я изменил символические ссылки, чтобы они указывали на / Volumes / ramdisk / ..., система не загружалась. Я ожидаю, что это потому, что во время загрузки что-то хочет / tmp и / var / log ДО сценария my com.my.ramdisk монтирует виртуальный диск. Мне нужен способ монтирования виртуального диска сразу после монтирования root, прежде чем что-либо еще запустится.
Примечание. Если вы смонтируете / var / log (ядро, демон и другие важные журналы пользовательского пространства) во временном пространстве, вы потеряете его содержимое при следующей перезагрузке. Это может помешать вашей способности диагностировать.
источник
hdik -drivekey system-image=yes -nomount ram://262144
для создания ram-диска 128 МБ, затемnewfs_hfs
отформатировать его, а затем использоватьmount -o union,nobrowse,noatime
для монтирования тома/tmp
. Таким образом, существующие файлы/tmp
остаются нетронутыми, но новые файлы попадают на ваш RAM-диск.tmpfs
при необходимости будет использоваться подкачка, диск с ОЗУ не будет, поэтому вы потеряете часть активной ОЗУ, это означает, что вы захотите сохранить ее небольшим, однако для некоторых задач/tmp
может потребоваться больше памяти и произойдет ошибка внимательно следите за тем, что вы выполняете, если вам нужно больше места, чем вы выделяете.