note: C'est une question que j'ai posée sur SuperUser il y a un moment. Je le republie ici parce que je pense qu'il appartient ici.
Par défaut, Mac OS X stocke ses fichiers d'échange dans /private/var/vm/
. Je voudrais placer les fichiers d'échange dans un emplacement différent. Comment ceci peut être fait?
/private/var/vm/sleepimage
dans Super User: Dois-je créer un lien symbolique entre mon répertoire / private / var / vm et un autre volume dans OS X Lion? (2011-09-20) - il y a une réponse qui recommande de ne pas utiliser le même volume séparé pour les fichiers d'échange externes et sleepimage.Réponses:
note: copié depuis SuperUser:
Pour les anciennes versions d'OSX, consultez ce fil sur forums.macosxhints.com.
Le crédit va à dblu pour expliquer l'utilisation de
plutil
, ZILjr pour introduire lawait4path
commande, et ekl pour simplifier le tout en éliminant la nécessité d'un script shell intermédiaire.Solution complète:
1. Ouvrez Terminal et faites une copie de sauvegarde du fichier dynamic_pager.plist par défaut d'Apple:
2. Convertissez le plist de binaire en XML simple:
3. Ouvrez le plist converti avec l'éditeur de texte de votre choix. (J'utilise
pico
, voir la réponse de dblu pour un exemple d'utilisationvim
):Il devrait ressembler à ceci:
4. Modifiez le tableau ProgramArguments (lignes 13 à 18) pour utiliser la
wait4path
commande shell avant de lancer dynamic_pager. Voir la note # 1 pour plus de détails sur la raison pour laquelle cela est nécessaire. Dans l'exemple suivant, ma partition est appeléeSwap
et j'ai choisi de placer les fichiers d'échange dans un répertoire caché sur cette partition, appelé.vm
assurez-vous que le répertoire que vous spécifiez existe réellement . Le XML doit ressembler à ceci:5. Enregistrez le plist et revenez à l'invite du terminal. En utilisant
pico
, les commandes seraient:6. Convertissez le plist modifié en binaire:
7. Redémarrez votre Mac. Si vous rencontrez des problèmes, passez en mode de démarrage détaillé en maintenant la commande-v enfoncée immédiatement après le carillon de démarrage. Cela vous permettra de voir tous les messages de démarrage qui apparaissent lors du démarrage. Si vous rencontrez des problèmes encore plus graves (c'est-à-dire que vous ne voyez jamais l'écran de connexion), maintenez enfoncée la touche Command-s à la place. Cela démarrera l'ordinateur en mode mono-utilisateur (pas d'interface graphique, juste une invite de commande) et vous permettra de restaurer la copie de sauvegarde de com.apple.dynamic_pager.plist que vous avez créée à l'étape 1.
8. Une fois l'ordinateur démarré, lancez Terminal et vérifiez que les fichiers d'échange ont bien été déplacés:
Vous devriez voir quelque chose comme ceci:
9. Supprimez les anciens fichiers d'échange:
10. Profit!
Note 1
Modifier les arguments de dynamic_pager dans le plist sans utiliser
wait4path
ne fonctionne pas toujours, et lorsqu'il échoue, il le fait de manière spectaculairement silencieuse. Le problème vient du fait que dynamic_pager est lancé très tôt dans le processus de démarrage. Si votre partition de swap n'a pas encore été montée lors du premier chargement de dynamic_pager (d'après mon expérience, cela se produit 99% du temps), alors le système truquera son chemin. Il créera un lien symbolique dans votre répertoire / Volumes qui porte le même nom que votre partition de swap, mais renvoie à l'emplacement par défaut du fichier de swap (/ private / var / vm). Ensuite, lorsque votre partition d'échange réelle sera montée, elle recevra le nomSwap 1
(ouYourDriveName 1
). Vous pouvez voir le problème en ouvrant Terminal et en listant le contenu de votre répertoire / Volumes:Vous verrez quelque chose comme ceci:
Notez que cet échec peut être très difficile à repérer. Si vous deviez vérifier les fichiers d'échange comme je le montre à l'étape 12, vous les verriez toujours ! Le lien symbolique donnerait l'impression que vos fichiers d'échange ont été déplacés, même s'ils étaient en fait stockés à l'emplacement par défaut.
Note 2
À l'origine, je n'ai pas pu faire fonctionner cela dans Snow Leopard car com.apple.dynamic_pager.plist était stocké au format binaire. J'ai fait une copie du fichier d'origine et l'ai ouvert avec l'éditeur de liste de propriétés d'Apple (disponible avec Xcode) afin d'apporter des modifications, mais ce processus a ajouté des attributs étendus au fichier plist, ce qui a amené le système à l'ignorer et à utiliser simplement les valeurs par défaut . Comme l'a souligné dblu, utiliser
plutil
pour convertir le fichier en XML brut fonctionne comme un charme.Note 3
Vous pouvez vérifier l'application Console pour voir tous les messages qui font écho à dynamic_pager_init à l'écran. Si vous voyez les lignes suivantes répétées encore et encore, il y a un problème avec la configuration. J'ai rencontré ces messages car j'ai oublié de créer le répertoire '.vm' que j'ai spécifié dans dynamic_pager_init.
Lorsque tout fonctionne correctement, vous pouvez voir le message ci-dessus plusieurs fois seulement, puis plus de messages "Throttling respawn". Cela signifie que le système a dû attendre le chargement de la partition, mais finalement il a réussi.
Exclure le chemin d'accès de Time Machine
Dans OS X 10.7 et versions ultérieures, vous pouvez le faire avec tmutil . Exemple:
sudo tmutil addexclusion -p /Volumes/Swap/.vm
Pour cet exemple, pour revoir le résultat:
tmutil isexcluded /Volumes/Swap && tmutil isexcluded /Volumes/Swap/.vm
Si le volume utilisé pour l'échange n'a pas besoin d'être indexé
Utilisez mdutil . Exemple, pour éteindre puis effacer la boutique:
sudo mdutil -i off /Volumes/Swap && sudo mdutil -E /Volumes/Swap
la source
;)
Je n'ai pas pu établir de solution de démarrage système permanente, car 10.10 n'utilise plus /etc/.rc au démarrage et la méthode com.apple.dynamic_pager.plist a échoué .... cependant ...
ne change le préfixe stocké comme indiqué par
pour la durée de la session, et il survit au redémarrage.
cela pourrait être encapsulé comme une commande unix dans un fichier texte:
et exécutez à la connexion.
la source
Solution simple:
http://www.macupdate.com/app/mac/10771/swap-relocator
SwapRelocator 1.1.2 fonctionne très bien sur Maverick!
Utilisez (par exemple) Tinker Tool System pour laisser les volumes monter avant la connexion, ce qui résout le seul problème que j'ai rencontré.
(Merci Filippo, je peux enfin déplacer le swap du volume de démarrage en miroir vers un volume de cache rayé (tous les SSD))
la source