我可以从/ private / var / vm中删除什么?


80

这个文件夹是什么?它很大,我可以使用多余的空间。我已经读过sleepimage是没有必要的 -是这样吗?我应该处理吗?是“私人”文件夹是自动清空的,还是我必须手动进行?如果它没有用(或不需要),有什么方法可以防止它将来再次出现?

在此处输入图片说明


1
您是否仍对有问题的预防方法感兴趣?既然您已经对查询的主要方面有了一个答案,那么最好单独问一下。
bmike

貌似LRI覆盖,下面,但感谢小费

Answers:


79

/var/vm/sleepimage用于存储休眠期间的RAM内容,以及Mac笔记本电脑默认使用的混合休眠和睡眠模式。如果您有8 GiB的RAM,/var/vm/sleepimage则大约需要8 GiB的磁盘空间。我不知道为什么从睡眠中醒来后却不删除它。可能是要确保有足够的可用磁盘空间,或者如果磁盘空间不足,则不会将其存储在不连续的块中。

您可以/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)。系统会将内存副本存储到永久性存储(磁盘)中,并在睡眠期间为内存供电。除非断电迫使系统从磁盘映像还原,否则系统将从内存中唤醒。

只能通过pmset设置hibernatemode = 25(二进制0001 1001)。系统会将内存副本存储到永久性存储(磁盘)中,并切断内存电源。系统将从磁盘映像还原。如果要“休眠”-更慢的睡眠,更慢的唤醒和更长的电池寿命,则应使用此设置。

  • 0(传统睡眠模式)可实现快速唤醒和睡眠,节省磁盘空间并减少对驱动器的写入。
  • 3(混合休眠和安全睡眠模式)可实现快速唤醒和睡眠,并在断电后可恢复状态。
  • 25(休眠)可节省能量并在断电后恢复状态。

我在MacBook Air上使用了hibernatemode 0。即使MacBook Air在电池快要耗尽时进入睡眠状态,在睡眠期间电池也通常不会完全耗尽。/var/vm/sleepimage占用了大约4 GiB的磁盘空间,写入数百或数千次可能会缩短SSD的寿命。


23

另外:丹·巴雷特(Dan Barrett)关于重新创建睡眠图像的说法是正确的。但是,有一种解决方法,因此可以永久释放sleepimage占用的磁盘空间。

整个步骤:

禁用休眠模式:

sudo pmset -a hibernatemode 0

删除/ private / 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个月没有出现任何问题了。


4

不要删除/ private / var / vm,它是操作系统经常使用的交换文件。

当您需要较少的交换或重新启动操作系统时,它将减少此处使用的文件数量。


让我想起了这句话。如果它没有损坏,请不要修复!
iProgram

4
我删除了整个vm文件夹,以为系统会在需要时重新创建,但这没有发生。当系统要使用交换文件时,它冻结并重新启动。我现在已经创建了vm文件夹和swapfile,希望可以解决该问题。所以,不要删除它!
拉胡尔·塔库尔

2

如果不占用太多空间(如您的情况),我将保持原样。私有文件夹中的内容不应该被弄乱。它是Mac构建在UNIX系统上的一部分,因此不可见。这就是为什么他们称该文件夹为private。但是,就像您使用的软件一样,使它可见,这不是一件好事。

话虽如此,您可以毫无问题地删除此睡眠图像,但是我不建议您这样做。如果您确实需要4GB,请尝试为电影,音乐等使用硬盘驱动器,并使用您自己的文件而不是系统文件来节省空间。


3
下次Mac进入睡眠状态时,它将重新创建睡眠映像,因此没有必要删除它。@sean:不要增加您的RAM,sleepimage文件将与系统中安装的RAM一样大。
丹·巴雷特

我的笔记本电脑上只剩下15 GB的空间,/ private / var / vm占用了大约12 GB的可用空间。现在还不紧急,但我正在考虑。
user3932000 2015年

2

最佳答案的其他说明:

由于您可以选择禁用睡眠映像,也可以激活它,但是在唤醒后又被迫保留它,因此我找到了我的首选解决方案的小技巧:拥有一个睡眠映像,但在唤醒后将其删除以释放磁盘空间。如果您像我一样不断在小型SSD上徘徊2-6 GB的可用空间,那么这可能就是您的解决方案。

只需将sleepimage指向您的.Trash文件夹,然后在唤醒后清空垃圾桶即可。

sudo pmset -a hibernatefile ~/.Trash/sleepimage

如果您在Mac上仅使用一个帐户,则这只是一个可行的解决方案。您将无法轻松地从另一个帐户中删除sleepfile(当然,如果另一个帐户具有足够的权限,您也可以这样做,但这会失去它的简单性,因为这不仅意味着单击垃圾箱)。

如果出于任何原因要返回到出厂设置,只需键入

sudo pmset -a hibernatefile /var/vm/sleepimage

(注意:我使用的是10.8,在其他版本中可能会发生变化,请检查man pmset以确保安全。)


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.