Untuk sistem Linux yang tidak kritis, saya sering memindahkan hal-hal seperti / tmp dan / var / log ke tmpfs untuk menghemat beberapa penulisan disk. Saya telah melakukan ini selama satu tahun atau lebih dan jika saya memerlukan log di reboot, saya hanya berkomentar di baris / etc / fstab dan kemudian mulai debugging.
Bagaimanapun, saya ingin melakukan hal yang sama pada OS X. Saya telah melihat posting tentang cara membuat ramdisk untuk OS X, tapi saya mencari solusi yang lebih permanen yang bekerja pada setiap boot. Saya selalu ingin / tmp dan / var / log dipasang di ramdisk, dengan kemampuan untuk mematikannya dengan sedikit pengeditan baris perintah di vi jika saya harus.
Jawaban:
Berikut ini adalah skrip untuk membuat ramdisks pada OS X. Maaf, itu tidak menjawab pertanyaan Anda. Anda bisa menggunakan ini untuk membangun sesuatu yang berjalan saat boot dan kemudian mount / tmp dan / var / log.
From @salvatore http://pastie.textmate.org/pastes/1417478/text?key=igcxuzqqvlmlbavxooj2uw
sumber
EDIT: Saya hanya akan menerima jawaban saya sendiri, karena itu memecahkan satu bagian dari masalah bagi saya. Jika seseorang memposting sesuatu yang lebih mirip --bind di Linux, saya akan menerima jawaban itu.
Dalam upaya memacu lebih banyak jawaban, saya akan mulai menjawab pertanyaan saya sendiri dengan apa yang saya temukan.
Langkah 1 adalah memasang ramdisk saat boot setiap kali. Untuk melakukan ini, saya membuat skrip bash dan kemudian entri launchd untuk memanggil skrip bash saat boot.
Tulis skrip bash seperti ini:
Kemudian minta dipanggil saat boot dengan menambahkannya ke launchd dengan membuat file bernama /Library/LaunchDaemons/com.my.ramdisk.plist dengan konten berikut:
Di mana saya terjebak adalah cara untuk symlink atau me-mount direktori di dalam ramdisk di / tmp, / var / log, dan / var / tmp. Ketiga direktori ini semuanya terhubung pada sistem saya ke / private / tmp, / private / var / log dan / private / var / tmp. Ketika saya mengubah symlink untuk menunjuk ke / Volume / ramdisk / ..., sistem tidak mau boot. Saya berharap ini karena pada saat boot, sesuatu ingin / tmp dan / var / log SEBELUM skrip com.my.ramdisk saya me-mount ramdisk. Saya perlu cara untuk memasang ramdisk setelah root di-mount, sebelum hal lain berjalan.
Catatan Jika Anda me-mount / var / log (kernel, daemon, dan log ruang pengguna kritis lainnya) di ruang sementara, Anda akan kehilangan kontennya di reboot berikutnya. Ini mungkin menghambat kemampuan Anda untuk mendiagnosis.
sumber
hdik -drivekey system-image=yes -nomount ram://262144
untuk membuat ram-disk 128MB, kemudiannewfs_hfs
memformatnya, lalu gunakanmount -o union,nobrowse,noatime
untuk memasang volume lebih/tmp
. Dengan cara ini, file yang ada di dalam/tmp
tidak tersentuh, tetapi file baru masuk ke ram disk Anda.tmpfs
akan menggunakan swap jika perlu, disk RAM tidak akan, jadi Anda akan kehilangan sepotong RAM aktif, ini berarti Anda ingin tetap kecil, namun beberapa tugas di/tmp
mungkin memerlukan lebih banyak memori dan akan gagal, jadi hati-hati apa yang Anda jalankan jika perlu lebih banyak ruang daripada yang Anda alokasikan.