Компьютерра PDA N170 (21.04.2012-27.04.2012) | страница 4
http://blog.philippklaus.de> |
# | |
# | Originally by Ricardo Gameiro <http://blogs.nullvision.com/?p=357> |
# | Changes by Daniel Jenkins |
# | <http://blogs.nullvision.com/?p=357#comment-1140> |
# | |
# +----------------------------------------------------------------------+
cd /System/Library/StartupItems
sudo mkdir RamFS
sudo chown -R root:wheel RamFS
sudo chmod -R u+rwX,g+rX,o+rX RamFS
cat << «EOF» | sudo tee RamFS/RamFS > /dev/null
#!/bin/sh
# Create a RAM disk with same perms as mountpoint
RAMDisk(){
mntpt=$1
rdsize=$(($2*1024*1024/512))
echo «Creating RamFS for $mntpt»
# Create the RAM disk.
dev=`hdik -drivekey system-image=yes -nomount ram://$rdsize`
# Successfull creation...
if[$? -eq 0 ] ; then
# Create HFS on the RAM volume.
newfs_hfs $dev
# Store permissions from old mount point.
eval `/usr/bin/stat -s $mntpt`
# Mount the RAM disk to the target mount point.
mount -t hfs -o union -o nobrowse $dev $mntpt
# Restore permissions like they were on old volume.
chown $st_uid:$st_gid $mntpt
chmod $st_mode $mntpt
fi
}
# Test for arguments.
if[ -z $1 ]; then
echo «Usage: $0 [start|stop|restart] «
exit 1
fi
# Source the common setup functions for startup scripts
test -r /etc/rc.common ||exit 1
. /etc/rc.common
StartService (){
ConsoleMessage «Starting RamFS disks...»
RAMDisk /private/tmp 256
RAMDisk /var/run 64
#RAMDisk /var/db 1024
#mkdir -m 1777 /var/db/mds
}
StopService (){
ConsoleMessage «Stopping RamFS disks, nothing will be done here...»
# diskutil unmount /private/tmp /private/var/run
# diskutil unmount /private/var/run
}
RestartService (){
ConsoleMessage «Restarting RamFS disks, nothing will be done here...»
}
RunService «$1»
EOF
sudo chmod u+x,g+x,o+x RamFS/RamFS
cat << EOF | sudo tee RamFS/StartupParameters.plist > /dev/null
file://localhost/System/Library/DTDs/PropertyList.dtd»>
EOF
Запускаете этот файл из командной строки Терминала:
chmod 755 ~/MoveTempFoldersToRamDisk.sh
~/MoveTempFoldersToRamDisk.sh
В результате при каждой загрузке компьютера будут создаваться два RAM диска. Один на 256 мегабайт для /private/tmp, другой на 64 мегабайта для /var/run. Если почему-то пожелаете удалить диски, даете команду: