Co mogę usunąć z / private / var / vm?

80

Co to jest ten folder? Jest ogromny i mogę skorzystać z dodatkowego pokoju. Przeczytałem obraz snu nie jest konieczny - czy to prawda? Czy powinienem sobie z tym poradzić? Czy folder „prywatny” jest automatycznie opróżniany, czy też muszę to zrobić ręcznie? Jeśli nie jest to przydatne (lub potrzebne), czy istnieje jakiś sposób, aby zapobiec ponownemu pojawianiu się w przyszłości?

wprowadź opis zdjęcia tutaj

Wilk
źródło
1
Czy nadal interesuje Cię pytanie profilaktyczne? To może być lepiej zadane osobno teraz, gdy masz odpowiedź na główne aspekty zapytania.
bmike
Wygląda na to, że Lri opisała to poniżej, ale dziękuję za podpowiedź
Wolf

Odpowiedzi:

79

/var/vm/sleepimagesłuży do przechowywania zawartości pamięci RAM podczas hibernacji , a tryb hibernacji i uśpienia hybrydowego że laptopy Mac domyślnie używać. Jeśli masz 8 GiB pamięci RAM, /var/vm/sleepimagezajmuje około 8 GiB miejsca na dysku. Nie wiem jednak, dlaczego nie jest usuwany po przebudzeniu. Może być konieczne zapewnienie wystarczającej ilości wolnego miejsca na dysku lub, aby nie było ono przechowywane w nieciągłych blokach, jeśli jest mało miejsca na dysku.

Możesz usunąć /var/vm/sleepimagebezpiecznie, ale zostanie on ponownie utworzony po uśpieniu komputera Mac. Jeśli uruchomisz sudo pmset -a hibernatemode 0; sudo rm /var/vm/sleepimage, komputer Mac użyje normalnego trybu uśpienia (domyślnie takiego jak komputery stacjonarne Mac) i nie będzie można go ponownie utworzyć /var/vm/sleepimage.

Od man pmset:

hibernatemode = 0 (binarnie 0000) domyślnie na obsługiwanych komputerach stacjonarnych. System nie utworzy kopii zapasowej pamięci w pamięci trwałej. System musi się obudzić z zawartości pamięci; system straci kontekst w przypadku utraty zasilania. To historycznie zwykły stary sen.

hibernatemode = 3 (binarnie 0011) domyślnie na obsługiwanych urządzeniach przenośnych. System zapisze kopię pamięci w pamięci trwałej (na dysku) i zasila pamięć podczas uśpienia. System obudzi się z pamięci, chyba że utrata zasilania zmusi go do przywrócenia z obrazu dysku.

hibernatemode = 25 (binarny 0001 1001) można ustawić tylko za pomocą pmset. System zapisze kopię pamięci w pamięci trwałej (na dysku) i odłączy zasilanie pamięci. System przywróci obraz dysku. Jeśli chcesz „hibernacji” - wolniej śpi, wolniej budzi się i wydłuża czas pracy baterii, powinieneś użyć tego ustawienia.

  • 0 (tradycyjny tryb uśpienia) umożliwia szybkie wybudzanie i uśpienie, oszczędza miejsce na dysku i ogranicza zapis na dysku.
  • 3 (hybrydowa hibernacja i bezpieczny tryb uśpienia) umożliwia szybkie wybudzanie i uśpienie oraz umożliwia przywrócenie stanu po utracie zasilania.
  • 25 (hibernacja) oszczędza energię i umożliwia przywrócenie stanu po utracie zasilania.

Użyłem hibernatemode 0 z moim MacBookiem Air. Nawet jeśli MacBook Air poszedł spać, gdy bateria była prawie pusta, bateria zwykle nie wyczerpała się całkowicie podczas snu. /var/vm/sleepimagezajęło około 4 GiB miejsca na dysku, a zapisanie go setki lub tysiące razy mogło skrócić żywotność dysku SSD.

Lri
źródło
23

Dodatek: To, co powiedział Dan Barrett o odtworzeniu obrazu snu, jest prawdą. Istnieje jednak sposób na obejście tego i dlatego trwałe zwolnienie miejsca na dysku zajmowanego przez sleepimage.

Całe kroki:

wyłącz tryb hibernacji:

sudo pmset -a hibernatemode 0

delete / private / var / vm / sleepimage:

sudo rm /private/var/vm/sleepimage

utwórz pusty plik i nazwij go „sleepimage”:

sudo touch /private/var/vm/sleepimage

zmień jego flagę na niezmienną:

sudo chflags schg /private/var/vm/sleepimage

W ten sposób system nie może już odtworzyć obrazu uśpienia. Działa to idealnie dla mnie i nie widziałem żadnego problemu na moim komputerze Mac przez 4 miesiące.

Xji
źródło
4

Nie usuwaj / private / var / vm, to pliki wymiany, których system operacyjny stale używa.

Gdy potrzebujesz mniej wymiany lub zrestartujesz system operacyjny zmniejszy liczbę używanych tutaj plików.

użytkownik151019
źródło
Przypomina mi powiedzenie. Jeśli to się nie zepsuło, nie naprawiaj go!
iProgram
4
Usunąłem cały folder VM, myśląc, że system odtworzy się w razie potrzeby, ale tak się nie stało. Gdy system chciał użyć plików wymiany, zawiesił się i uruchomił ponownie. Utworzyłem teraz folder vm i plik wymiany, mając nadzieję, że to rozwiąże problem. Więc NIE usuwaj go!
Rahul Thakur,
2

Jeśli nie zajmuje zbyt dużo miejsca (jak w twoim przypadku), odszedłbym tak, jak jest. Rzeczy w folderze prywatnym nie powinny być pomieszane. Jest to część systemu UNIX, na którym komputer Mac jest zbudowany i nie powinien być widoczny. Dlatego nazywają ten folder prywatnym . Ale oprogramowanie, tak jak kiedyś, sprawiło, że stało się widoczne, co nie jest dobre.

To powiedziawszy, możesz usunąć ten obraz snu bez żadnego problemu, ale nie poleciłbym go. Jeśli naprawdę potrzebujesz tych 4 GB, spróbuj użyć dysku twardego do filmów, muzyki itp. I oszczędzaj miejsce na własnych plikach, a nie na plikach systemowych.

Michiel
źródło
3
Następnym razem, gdy komputer Mac przechodzi w tryb uśpienia, ponownie tworzy obraz uśpienia, więc nie ma sensu go usuwać. @sean: nie zwiększaj pamięci RAM, plik sleepimage będzie tak duży, jak pamięć RAM zainstalowana w twoim systemie.
Dan Barrett
Mam tylko 15 GB na moim laptopie, a / private / var / vm zajmuje około 12 GB, z których mógłbym korzystać. W tej chwili nie jest to natychmiast pilne, ale rozważam to.
user3932000,
2

Dodatkowa uwaga do górnej odpowiedzi:

Ponieważ możesz albo wyłączyć obraz uśpienia, albo go aktywować, ale potem zostać zmuszonym do zachowania go po przebudzeniu, znalazłem brudną sztuczkę dla mojego preferowanego rozwiązania: Zrób zdjęcie uśpienia, ale usuń go po wybudzeniu, aby zwolnić miejsce na dysku. Jeśli jesteś kimś takim jak ja, który stale unosi się na około 2-6 GB wolnego miejsca na małym dysku SSD, może to być twoje rozwiązanie.

Po prostu wskaż obraz snu na swoim .Trashfolderze i opróżnij kosz po przebudzeniu.

sudo pmset -a hibernatefile ~/.Trash/sleepimage

Jest to tylko realne rozwiązanie, jeśli używasz tylko jednego konta na komputerze Mac. Nie będziesz w stanie łatwo usunąć pliku uśpienia z innego konta (Oczywiście możesz, jeśli inne konto ma wystarczające uprawnienia, ale straciłoby to prostotę, ponieważ nie oznaczałoby to tylko kliknięcia kosza na śmieci).

Jeśli z jakiegokolwiek powodu chcesz powrócić do ustawień fabrycznych, po prostu wpisz

sudo pmset -a hibernatefile /var/vm/sleepimage

(Uwaga: używam 10.8, to może się zmienić w innych wersjach, po prostu sprawdź, man pmsetaby się upewnić).

zerweck
źródło
-1
sudo pmset -a hibernatefile /dev/null/sleepimage
Freddy
źródło