W niekrytycznych systemach Linux często przenoszę rzeczy takie jak / tmp i / var / log do tmpfs, aby zaoszczędzić na zapisie na dysku. Robię to od około roku i jeśli kiedykolwiek będę potrzebować dzienników podczas ponownego uruchamiania, po prostu komentuję wiersz w / etc / fstab, a następnie zaczynam debugować.
W każdym razie chciałbym zrobić to samo na OS X. Widziałem posty na temat tworzenia ramdysku dla OS X, ale szukam bardziej trwałego rozwiązania, które działałoby przy każdym uruchomieniu. Zawsze chcę / tmp i / var / log zamontowane na ramdysku, z możliwością wyłączenia go przy pomocy edycji wiersza poleceń w vi, jeśli muszę.
Odpowiedzi:
Oto skrypt do tworzenia ramdysków w OS X. Przepraszamy, nie odpowiada na twoje pytanie. Możesz użyć tego, aby zbudować coś, co uruchamia się podczas rozruchu, a następnie montuje / tmp i / var / log.
From @salvatore http://pastie.textmate.org/pastes/1417478/text?key=igcxuzqqvlmlbavxooj2uw
źródło
EDYCJA: Po prostu zaakceptuję własną odpowiedź, ponieważ rozwiązała dla mnie jedną część problemu. Jeśli ktoś opublikuje coś podobnego - w Linuksie, zaakceptuję tę odpowiedź.
Aby uzyskać więcej odpowiedzi, zacznę odpowiadać na własne pytanie tym, czego się dowiedziałem.
Krok 1 polega na zamontowaniu ramdysku przy każdym uruchomieniu. Aby to zrobić, tworzę skrypt bash, a następnie uruchamiany wpis, aby wywoływać skrypt bash podczas rozruchu.
Napisz skrypt bash w następujący sposób:
Następnie wywołaj go przy uruchamianiu, dodając go do uruchomienia, tworząc plik o nazwie /Library/LaunchDaemons/com.my.ramdisk.plist o następującej treści:
Utknąłem w sposób umożliwiający dowiązanie symboliczne lub zamontowanie katalogów wewnątrz ramdysku w / tmp, / var / log i / var / tmp. Te trzy katalogi są symlinkowane w moim systemie z / private / tmp, / private / var / log i / private / var / tmp. Kiedy zmieniłem dowiązania symboliczne na / Volumes / ramdisk / ..., system nie chce się uruchomić. Spodziewam się, że dzieje się tak, ponieważ w czasie uruchamiania coś chce / tmp i / var / log PRZED moim skryptem com.my.ramdisk montuje ramdysk. Potrzebuję sposobu na zamontowanie ramdysku zaraz po zamontowaniu roota, zanim cokolwiek innego się uruchomi.
Uwaga: Jeśli zamontujesz / var / log (jądro, demon i inne krytyczne dzienniki przestrzeni użytkownika) w przestrzeni tymczasowej, utracisz jego zawartość przy następnym ponownym uruchomieniu. Może to ograniczać Twoją zdolność do diagnozowania.
źródło
hdik -drivekey system-image=yes -nomount ram://262144
dysku RAM o pojemności 128 MB, a następnienewfs_hfs
sformatować go, a następnie użyćmount -o union,nobrowse,noatime
do zamontowania woluminu/tmp
. W ten sposób istniejące pliki/tmp
pozostaną nietknięte, ale nowe pliki trafią na dysk RAM.tmpfs
użyje swap, jeśli to konieczne, dysk RAM nie, więc stracisz część aktywnej pamięci RAM, co oznacza, że będziesz chciał utrzymać ją małą, jednak niektóre zadania/tmp
mogą wymagać więcej pamięci i się nie powiedzie, więc bądź uważaj na to, co uruchamiasz, na wypadek gdyby potrzebowało więcej miejsca niż przeznaczasz.