시작시 RAM 디스크 마운트하지만 자동으로 마운트 해제 된 것 같습니다


1

램 디스크를 마운트하는 간단한 스크립트를 작성했습니다.

%> cat /System/Library/LaunchDaemons/ramdisk.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>Ramdisk</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/setup_run_shm</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>UserName</key>
    <string>root</string>
</dict>
</plist>

그러나 로그인하면 디스크가 사라졌습니다. 디스크가 마운트 해제 된 것 같습니다. 왜 그런지 잘 모르겠습니다. 에 따르면 /tmp/log.1오류가 없습니다.

PS는 setup_run_shm 스크립트를 첨부했습니다 :

%> cat /usr/local/bin/setup_run_shm
#!/bin/bash

exec &> /tmp/log.1
date
set -x

size=$(( 1024*1024*8 ))
path=/run/shm/
name="SHM"

if mount | grep -q '/run/shm'; then
    echo RAM disk already exist.
    echo 'Eject the disk and try again. (e.g hdiutil eject /dev/diskX)'
    exit
fi

disk=$(hdiutil attach -nomount ram://"$size")
echo Attached RAM disk $disk

newfs_hfs -v "$name" $disk
echo Formatted RAM disk with name $name

mount -t hfs $disk "$path"
echo Mounted ram disk of size $size to $path

답변:


1

이것이 실제로 귀하의 질문에 대한 답변인지 확실하지 않지만이 Applescript는 나를 위해 작동합니다. 앱으로 실행하십시오.

set RAMDisk to "RAM_Disk" as text
tell application "Finder"
    if not {exists disk RAMDisk} then
        set VolumeName to RAMDisk
        set SizeInMB to 1024
        set NumSectors to ((2 * 1024 * SizeInMB))
        set DeviceName to do shell script "hdid -nomount ram://" & NumSectors
        do shell script "diskutil eraseVolume 'HFS+' '" & VolumeName & "' " & DeviceName
        do shell script "SetFile -a V /Volumes/" & VolumeName       
    end if  
end tell

실행하려면 개발자 명령 줄 도구가 설치되어 있어야하지만없는 경우 자동 설치를 묻습니다.


부팅시 시작해야합니다. 내 스크립트는 작동하지만 왜 되돌려 졌는지 확실하지 않습니다 ....
daisy

아… 로그인 할 때 너무 늦었나요? 죄송 합니다만 아이디어였습니다.
Tetsujin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.