Что я могу удалить из / private / var / vm?

80

Что это за папка? Это огромный, и я могу использовать дополнительную комнату. Я читал, что сони-образы не нужны - это правда? Должен ли я просто справиться с этим? «Личная» папка очищается автоматически, или мне придется делать это вручную? Если это бесполезно (или необходимо), есть ли способ предотвратить его появление в будущем?

введите описание изображения здесь

волк
источник
1
Вы все еще заинтересованы в профилактике? Это может быть лучше спросить отдельно теперь, когда у вас есть ответ на основные аспекты вашего запроса.
bmike
Похоже, Лри рассказала об этом ниже, но спасибо за подсказку
Wolf

Ответы:

79

/var/vm/sleepimageиспользуется для хранения содержимого оперативной памяти во время гибернации , а также гибридного гибернации и спящего режима, которые используются по умолчанию в ноутбуках Mac. Если у вас 8 ГБ ОЗУ, /var/vm/sleepimageзанимает около 8 ГБ дискового пространства. Я не знаю, почему он не удаляется после пробуждения из сна. Это может быть связано с тем, что для этого достаточно свободного дискового пространства, чтобы оно не сохранялось в несмежных блоках, если места на диске мало.

Вы можете /var/vm/sleepimageбезопасно удалить , но он будет воссоздан, когда вы переведите Mac в режим сна. Если вы запустите sudo pmset -a hibernatemode 0; sudo rm /var/vm/sleepimage, Mac будет использовать обычный режим сна (например, настольный Mac по умолчанию) и не будет воссоздан /var/vm/sleepimage.

От man pmset:

hibernatemode = 0 (двоичный 0000) по умолчанию на поддерживаемых рабочих столах. Система не будет резервировать память в постоянное хранилище. Система должна просыпаться от содержимого памяти; система потеряет контекст при потере мощности. Это исторически простой старый сон.

hibernatemode = 3 (двоичный код 0011) по умолчанию на поддерживаемых переносных устройствах. Система сохранит копию памяти в постоянном хранилище (на диске) и запитает память во время сна. Система будет пробуждаться из памяти, если только отключение питания не заставит ее восстановиться с образа диска.

hibernatemode = 25 (двоичный код 0001 1001) устанавливается только через pmset. Система сохранит копию памяти в постоянном хранилище (на диске) и отключит питание памяти. Система восстановится с образа диска. Если вы хотите «спящий режим» - более медленный сон, более медленные пробуждения и лучшее время автономной работы, вам следует использовать этот параметр.

  • 0 (традиционный спящий режим) обеспечивает быстрое пробуждение и спящий режим, экономит место на диске и уменьшает объем записи на диск.
  • 3 (гибридный режим гибернации и безопасный режим сна) обеспечивает быстрое пробуждение и режим сна и восстановление состояния после потери питания.
  • 25 (режим гибернации) экономит энергию и позволяет восстановить состояние после потери питания.

Я использовал режим гибернации 0 с моим MacBook Air. Даже если MacBook Air перешел в спящий режим, когда батарея была почти разряжена, батарея обычно полностью не разряжалась во время сна. /var/vm/sleepimageзаняло около 4 ГБ дискового пространства, и его запись в сотни или тысячи раз могла бы сократить срок службы SSD.

LRI
источник
23

Дополнение: То, что Дэн Барретт сказал о воссоздании сонной картинки, верно. Однако есть способ обойти это и, следовательно, навсегда освободить дисковое пространство, занимаемое образом сна.

Целые шаги:

отключить режим гибернации:

sudo pmset -a hibernatemode 0

удалить / личное / var / vm / sleepimage:

sudo rm /private/var/vm/sleepimage

создайте пустой файл и назовите его «sleepimage»:

sudo touch /private/var/vm/sleepimage

измените его флаг на неизменяемый:

sudo chflags schg /private/var/vm/sleepimage

Таким образом, система больше не может воссоздавать образ сна. Это отлично сработало для меня, и я не видел никаких проблем на моем Mac в течение 4 месяцев.

xji
источник
4

Не удаляйте / private / var / vm - это ваши файлы подкачки, которые постоянно использует ОС.

Когда вам нужно меньше подкачки или вы перезагружаетесь, ОС уменьшит количество используемых здесь файлов.

user151019
источник
Напоминает мне о поговорке. Если это не сломалось, не исправить это!
iProgram
4
Я удалил всю папку vm, думая, что система будет воссоздана, когда это необходимо, но этого не произошло. Когда система захотела использовать файлы подкачки, она зависла и перезапустилась. Теперь я создал папку vm и файл подкачки, надеясь, что это решит проблему. Так что не удаляйте его!
Рахул Тхакур
2

Если бы это не занимало слишком много места (как в вашем случае), я бы оставил все как есть. Вещи в личной папке не должны быть испорчены. Это часть системы UNIX, на которой построен ваш Mac, и она не должна быть видна. Вот почему они называют папку приватной . Но программное обеспечение, как вы использовали, сделало его видимым, что не очень хорошая вещь.

При этом вы можете без проблем удалить это изображение сна, но я бы не стал его рекомендовать. Если вам действительно нужны эти 4 ГБ, попробуйте использовать жесткий диск для своих фильмов, музыки или чего-то подобного и сэкономьте место своими файлами, а не файлами системы.

Михель
источник
3
В следующий раз, когда ваш Mac перейдет в спящий режим, он заново создаст образ сна, поэтому нет смысла его удалять. @sean: не увеличивайте свою RAM, файл sleepimage будет таким же большим, как RAM, установленный в вашей системе.
Дэн Барретт
У меня на ноутбуке осталось всего 15 ГБ, а / private / var / vm занимает около 12 ГБ, которые я мог бы использовать. Сейчас это не срочно, но я обдумываю это.
user3932000
2

Дополнительное примечание к верхнему ответу:

Так как вы можете либо отключить образ сна, либо активировать его, но затем заставить его остаться после пробуждения, я обнаружил небольшую хитрость для моего предпочтительного решения: имейте образ сна, но удалите его после пробуждения, чтобы освободить место на диске. Если вы такой же, как я, который постоянно зависает на 2-6 ГБ свободного места на вашем маленьком SSD, это может быть вашим решением.

Просто наведите спящий образ на вашу .Trashпапку и очистите корзину после пробуждения.

sudo pmset -a hibernatefile ~/.Trash/sleepimage

Это только жизнеспособное решение, если вы используете только одну учетную запись на вашем Mac. Вы не сможете легко удалить файл сна из другой учетной записи (конечно, вы могли бы, если бы у другой учетной записи были достаточные права, но она потеряла бы свою простоту, потому что это не означало бы просто щелкнуть мусорное ведро).

Если по какой-либо причине вы хотите вернуться к заводским настройкам, просто наберите

sudo pmset -a hibernatefile /var/vm/sleepimage

(Примечание: я использую 10.8, это может измениться в других версиях, просто проверьте, man pmsetчтобы быть уверенным.)

zerweck
источник
-1
sudo pmset -a hibernatefile /dev/null/sleepimage
Фредди
источник