Pour les systèmes Linux non critiques, je déplace souvent des choses comme / tmp et / var / log vers tmpfs pour économiser sur certaines écritures sur disque. Je fais cela depuis un an environ et si jamais j'ai besoin des journaux lors des redémarrages, je commente simplement une ligne dans / etc / fstab, puis je commence le débogage.
Dans tous les cas, je voudrais faire la même chose sur OS X. J'ai vu des articles sur la création d'un disque virtuel pour OS X, mais je cherche une solution plus permanente qui fonctionne à chaque démarrage. Je veux toujours que / tmp et / var / log soient montés sur un disque virtuel, avec la possibilité de désactiver cela avec un peu d'édition en ligne de commande dans vi si je le dois.
Réponses:
Voici un script pour créer des disques virtuels sur OS X. Désolé, il ne répond pas à votre question. Vous pouvez l'utiliser pour créer quelque chose qui s'exécute au démarrage, puis monte / tmp et / var / log.
De @salvatore http://pastie.textmate.org/pastes/1417478/text?key=igcxuzqqvlmlbavxooj2uw
la source
EDIT: Je vais juste accepter ma propre réponse, car elle a résolu une partie du problème pour moi. Si quelqu'un publie quelque chose de plus comme --bind sous Linux, j'accepterai cette réponse.
Afin d'encourager plus de réponses, je vais commencer à répondre à ma propre question avec ce que j'ai découvert.
L'étape 1 consiste à obtenir un disque virtuel monté au démarrage à chaque fois. Pour ce faire, je crée un script bash puis une entrée launchd pour appeler le script bash au démarrage.
Écrivez un script bash comme ceci:
Ensuite, faites-le appeler au démarrage en l'ajoutant à launchd en créant un fichier appelé /Library/LaunchDaemons/com.my.ramdisk.plist avec le contenu suivant:
Où je suis bloqué est un moyen de créer un lien symbolique ou de monter des répertoires dans le ramdisk dans / tmp, / var / log et / var / tmp. Ces trois répertoires sont tous liés par des liens symboliques sur mon système vers / private / tmp, / private / var / log et / private / var / tmp. Lorsque j'ai changé les liens symboliques pour pointer vers / Volumes / ramdisk / ..., le système ne démarre pas. Je pense que c'est parce qu'au démarrage, quelque chose veut / tmp et / var / log AVANT que le script my com.my.ramdisk monte le ramdisk. J'ai besoin d'un moyen de monter le ramdisk juste après le montage de root, avant toute autre chose.
Remarque Si vous montez / var / log (noyau, démon et autres journaux critiques de l'espace utilisateur) dans un espace temporaire, vous perdrez son contenu au prochain redémarrage. Cela pourrait nuire à votre capacité de diagnostic.
la source
hdik -drivekey system-image=yes -nomount ram://262144
pour créer un disque RAM de 128 Mo, puisnewfs_hfs
le formater, puis utilisermount -o union,nobrowse,noatime
pour monter le volume/tmp
. De cette façon, les fichiers existants dans/tmp
sont intacts, mais les nouveaux fichiers vont sur votre disque RAM.tmpfs
le swap sera utilisé si nécessaire, un disque RAM ne le fera pas, donc vous perdrez un morceau de RAM active, cela signifie que vous voudrez le garder petit, mais certaines tâches/tmp
peuvent nécessiter plus de mémoire et échoueront, alors soyez faites attention à ce que vous exécutez au cas où il aurait besoin de plus d'espace que vous n'en allouez.