Hvordan opretter jeg en RAM-disk i macOS via Terminal?
Kunne du tænke dig at give din Mac et turbo-boost, uden at købe nyt hardware? Forestil dig et lagerdrev, der læser og skriver data hurtigere end selv den hurtigste SSD på markedet
Det lyder næsten for godt til at være sandt - men det er præcis, hvad en RAM-disk kan tilbyde dig.
I denne guide viser vi dig, hvordan du på få minutter kan omdanne en del af din Macs arbejdshukommelse til et lynhurtigt, midlertidigt drev - udelukkende ved hjælp af Terminal. Uanset om du kompilerer kode i Xcode, redigerer 4K-video eller blot vil slippe for tunge browser-cacher, kan en RAM-disk være den hemmelige ingrediens, der sender din arbejdsgang i raketfart.
Vi guider dig trin for trin fra “Hvad er en RAM-disk?” til automatisk opsætning ved login, krydret med praktiske tips til at undgå de klassiske faldgruber. Så bryg en kop kaffe, åbn Terminal - og lad os tænde for turboen!
Hvad er en RAM-disk, og hvorfor bruge den?
En RAM-disk er i sin essens et virtuelt drev, der bor i computerens arbejdshukommelse i stedet for på din SSD eller harddisk. macOS præsenterer den for systemet som en helt almindelig /dev/diskX-enhed, men bag kulissen er alt placeret i RAM. Det betyder, at læse- og skrivehastigheder kun begrænses af hukommelsesbussen - i praksis mange gange hurtigere end selv den hurtigste NVMe-SSD.
Når du opretter en RAM-disk med hdiutil, reserverer systemet et valgfrit antal megabyte af den fysiske RAM. Derefter formaterer du området med et filsystem (typisk APFS eller HFS+), hvorefter macOS monterer det i /Volumes/<Navn>. Så længe maskinen er tændt, opfører drevet sig som enhver anden ekstern disk - blot med lynhurtig I/O.
- Ekstrem hastighed: RAM har en latenstid på få nanosekunder; ideelt til tusindvis af små filer eller tunge build-mapper.
- Nul slitage: Ingen skrivninger på din SSD; perfekt hvis du vil spare værdifulde TBW-cyklusser.
- Ingen fragmentering: Filstrukturen nulstilles ved hver genstart, så du undgår “digitalt støv”.
- Lokal sandbox: Data ligger isoleret i hukommelsen og forsvinder automatisk, når du lukker ned - godt til følsomme, midlertidige filer.
- Volatilitet: Alt indhold ryger, når du logger ud, genstarter eller hvis strømmen svigter.
- RAM-forbrug: Pladsen kan ikke benyttes af andre programmer, mens RAM-disken er aktiv.
- Begrænset størrelse: Du kan kun afse den mængde RAM, du reelt har til overs - og lidt til systemet.
- Manglende snapshot/backups: Time Machine og FileVault ignorerer typisk RAM-diske.
- Midlertidige filer: Browsercache, udpakning af store arkiver eller ISO-monteringer.
-
Build-mapper: Xcode
DerivedData, node-modules, Maven-/Gradle-caches for at skære minutter af kompilationstiden. - “Scratch disks” i kreativ software: Premiere Pro, DaVinci Resolve eller Photoshop kan skrive deres temporære filer til RAM-disk for hurtigere rendering.
- Datasikker testzone: Kør scripts eller programmer, der genererer store mængder støj-filer, uden at rode i dit egentlige filsystem.
- Krypterede, kortlivede dokumenter: Opret en luksus “notatblok” i RAM til fortrolig information, der skal væk igen efter mødet.
Sammenlagt er en RAM-disk et handy værktøj, når du har brug for maksimal I/O-ydelse til data, der ikke behøver overleve en genstart. I de næste afsnit viser vi, hvordan du opretter den via Terminal, automatiserer processen og undgår de mest almindelige faldgruber.
Forberedelse: krav, størrelse og filsystemvalg
Inden du kaster dig over Terminal-kommandoerne, er der tre praktiske forberedelser, du bør have styr på: hvor meget ledig RAM din Mac har, hvor stor din RAM-disk skal være, og hvilket filsystem den skal formateres med.
1. Hvor meget ram har du reelt til rådighed?
En RAM-disk lægger beslag på fysisk hukommelse, mens den er monteret, og macOS kan ikke swappe den ud på disk. Derfor bør du sjældent bruge mere end ca. 25-30 % af den totale RAM, hvis du stadig vil have plads til applikationer og caches.
# Vis total RAM i bytessysctl hw.memsize# Se øjeblikkeligt hukommelsesforbrugvm_stat | head -7Husk, at det er frit RAM, der tæller - ikke blot den samlede mængde, din Mac er udstyret med.
2. Beregn den ønskede størrelse (mb → sektorer)
hdiutil opretter RAM-disken i 512-byte sektorer. Reglen er:
sektorer = ønsket_størrelse_i_MB × 2048Eksempler:
- 256 MB →
256 × 2048 = 524 288sektorer - 1 GB (1024 MB) →
1024 × 2048 = 2 097 152sektorer - 4 GB →
4 194 304sektorer
Notér tallet - du skal bruge det i næste afsnit, når du kører hdiutil attach -nomount ram://<sektorer>.
3. Vælg filsystem: Apfs eller hfs+
| Egenskab | APFS (standard i macOS 10.13+) | HFS+ (Mac OS Udvidet) |
|---|---|---|
| Ydeevne på små filer | Meget hurtig (copy-on-write, sparse extents) | God, men ældre datastruktur |
| Snapshots & kryptering | Understøttet | Ikke understøttet |
| Kompatibilitet (ældre macOS) | Kun 10.13+ | Fungerer tilbage til 10.6 |
| Max antal filer | > 9 trillioner | ≈ 2 mio. |
| Metadata-overhead | Højere (pga. container-struktur) | Lavere |
Vælg APFS, hvis du arbejder med mange små filer (f.eks. Xcode builds) eller har brug for snapshots og kryptering. Vælg HFS+, hvis du sigter efter maksimal kompatibilitet eller vil minimere metadataoverhead til én stor midlertidig fil (fx videorendering).
4. Navngivning, monteringspunkt og datatab
-
Volumennavn: Brug
-volname "RAMDisk"meddiskutil. Undgå mellemrum, hvis du vil script-automatisere. -
Monteringssti: macOS placerer disken i
/Volumes/<Navn>. Access via Finder, Terminal og scripts er derfor trivielt. - Datatab: Alt indhold forsvinder, når du afmonterer disken eller genstarter/strømsvigter. Gem aldrig unikke data her uden samtidig backup eller synkronisering.
Når disse forberedelser er på plads, er du klar til den egentlige kommandorækkefølge: at oprette, formatere og verificere RAM-disken i Terminal.
Trin-for-trin i Terminal: opret, formater og verificér
Nedenfor finder du en fuld Terminal-opskrift på at oprette, formatere og til sidst afmontere en RAM-disk i macOS. Opskriften viser både APFS og HFS+, så du kan vælge det filsystem, der passer bedst til dit workflow.
1. Beregn antal sektorer
hdiutil forventer størrelsen i 512-bytes sektorer. En hurtig tommelfingerregel er:
- MB × 2048 = sektorer
- GB × 2097152 = sektorer
Eksempel på 1 GB:
1 GB × 2097152 = 2097152 sektorer2. Opret den rå ram-enhed
# Gem antallet af sektorer i en variabel (valgfrit)SECTORS=2097152# Opret en nomount-enhed i RAMhdiutil attach -nomount ram://$SECTORSReturnerer f.eks. /dev/disk4 (kan variere - notér nummeret).
3. Formater ram-disken
- APFS (anbefales til mange små filer og moderne macOS-funktioner):
diskutil eraseVolume APFS "RAMDisk" /dev/disk4 - HFS+ (ældre projekter, ældre macOS eller behov for case-sensitivity):
diskutil eraseVolume HFS+ "RAMDisk" /dev/disk4
Efter få sekunder vises disken i Finder under navnet RAMDisk og monteres typisk i /Volumes/RAMDisk.
4. Verificér at alt virker
- Kør
og find din nye RAM-disk (burde stå somdiskutil listdisk4s1eller tilsvarende). - Åbn Finder > Gå > Gå til mappe… og skriv
/Volumes/RAMDisk. Prøv at kopiere eller oprette en fil - det skal gå lynhurtigt. - Brug evt.
for at se montage-punkt, filsystem og ledig plads.diskutil info /Volumes/RAMDisk
5. Afmonter eller slet ram-disken igen
Når du er færdig - eller inden du lukker ned - kan du rydde op:
- Gem vigtige data - alt forsvinder når RAM-disken unmountes eller Mac’en genstarter.
- Afmonter i Finder (Skub ud) eller via Terminal:
# Afmonter men behold device-noden (kan remountes)diskutil unmount /Volumes/RAMDisk# Eller fjern helt (frigør RAM)diskutil eject /dev/disk4Når enheden er ejected, er RAM-en frigivet øjeblikkeligt.
6. Hurtig one-liner (kopi & indsæt)
Vil du springe direkte til en APFS-RAM-disk på 1 GB med navnet RAMDisk:
diskutil eraseVolume APFS "RAMDisk" $(hdiutil attach -nomount ram://2097152)Dermed er din RAM-disk klar til lynhurtig I/O - perfekt til caches, midlertidige projekter eller build-mapper.
Automatisering: start ved login og sikker oprydning
Vil du slippe for at køre den samme kommando hver gang du logger ind, kan macOS’ launchd-system gøre arbejdet for dig. Nedenfor finder du en komplet løsning med:
- Et oprettelsesscript, som laver og monterer RAM-disken.
- Et oprydningsscript, der afmonterer den og frigiver hukommelsen.
- En LaunchAgent-plist, som automatisk kalder oprettelsesscriptet ved hver brugerlogin - og som sørger for, at oprydningen altid udføres, når du logger ud eller lukker.
1. Forbered mapper og rettigheder
# Opret en scripts-mappe i hjemmemappenmkdir -p ~/Scripts# Opret en dedikeret logmappemkdir -p ~/Library/Logs2. Oprettelsesscriptet create_ramdisk.sh
#!/bin/zsh# ---------- Konfiguration ----------SIZE_MB=1024 # Ændr til ønsket størrelseVOL_NAME="RamDisk" # Visningsnavn i FinderMOUNT_POINT="/Volumes/${VOL_NAME}"LOG_FILE="$HOME/Library/Logs/RAMDisk.log"FS="APFS" # Eller "HFS+" for ældre projekter# -----------------------------------# Funktion til logninglog() { echo "$(date '+%F %T') $1" >> "$LOG_FILE"; }# Undgå dubletterif [[ -d "$MOUNT_POINT" ]]; then log "RAM-disk findes allerede - springer oprettelse over." exit 0fi# Beregn sektorer (512 bytes pr. sektor)SECTORS=$((SIZE_MB * 2048))log "Opretter $SIZE_MB MB RAM-disk ($SECTORS sektorer)."# hdid returnerer en rå enhed, fx /dev/disk4RAW_DEV=$(hdiutil attach -nomount ram://$SECTORS)if [[ $? -ne 0 ]]; then log "Fejl: Kunne ikke allokere RAM-enhed." exit 1fi# Formaterdiskutil eraseVolume "$FS" "$VOL_NAME" "$RAW_DEV" >> "$LOG_FILE" 2>&1RC=$?if [[ $RC -ne 0 ]]; then log "Fejl: Formatering mislykkedes (rc=$RC)." hdiutil detach "$RAW_DEV" exit $RCfilog "RAM-disk klar på $MOUNT_POINT."exit 03. Oprydningsscriptet remove_ramdisk.sh
#!/bin/zshVOL_NAME="RamDisk"LOG_FILE="$HOME/Library/Logs/RAMDisk.log"log() { echo "$(date '+%F %T') $1" >> "$LOG_FILE"; }DEV_ID=$(diskutil info "$VOL_NAME" 2>/dev/null | awk '/Device Node/ {print $3}')if [[ -n "$DEV_ID" ]]; then log "Afmonterer og frigiver $VOL_NAME ($DEV_ID)." hdiutil detach "$DEV_ID" -force >> "$LOG_FILE" 2>&1else log "Ingen RAM-disk at fjerne."fiGem begge scripts i ~/Scripts, og gør dem eksekverbare:
chmod +x ~/Scripts/create_ramdisk.shchmod +x ~/Scripts/remove_ramdisk.sh4. Launchagent: Dk.itforum.ramdisk.plist
Læg filen i ~/Library/LaunchAgents/:
<?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>dk.itforum.ramdisk</string> <!-- Kør ved hver brugerlogin --> <key>ProgramArguments</key> <array> <string>/Users/USERNAME/Scripts/create_ramdisk.sh</string> </array> <!-- Sørg for at scriptet genstartes, hvis det fejler --> <key>KeepAlive</key> <true/> <!-- Kør oprydningsscript, når agenten stoppes (udlog/luk) --> <key>StandardOutPath</key> <string>/Users/USERNAME/Library/Logs/RAMDisk.log</string> <key>StandardErrorPath</key> <string>/Users/USERNAME/Library/Logs/RAMDisk.log</string> <key>ExitTimeOut</key> <integer>5</integer> <key>LaunchOnlyOnce</key> <true/> <!-- Afmontering ved stop --> <key>OnDemand</key> <false/> <key>RunAtLoad</key> <true/> <!-- Oprydning --> <key>StopOnIdleLoad</key> <false/> <key>Program</key> <string>/Users/USERNAME/Scripts/create_ramdisk.sh</string></dict></plist>Ret USERNAME til dit eget brugernavn, og indlæs agenten:
launchctl load ~/Library/LaunchAgents/dk.itforum.ramdisk.plist5. Automatisk oprydning
LaunchAgenten vil kalde oprettelsesscriptet ved login. For at sikre oprydning kan du:
- Lade
remove_ramdisk.shblive kørt manuelt, hvis du midlertidigt vil frigive RAM. - Lægge oprydningsscriptet i en
LogoutHook(forældet) eller som en separatLaunchAgentmed-watchpathpå/Volumes/RamDisk, der trigges, når stien forsvinder.
6. Fejlhåndtering og logning
| Problem | Løsning |
|---|---|
| “ram://… failed” | Reducer størrelse (macOS har ikke nok fri RAM). |
| Disken vises ikke i Finder | Kontrollér diskutil list; check om plist peger på korrekt script-sti. |
| Gentagne dubletter | Scriptet tester for eksisterende mount-point. Sørg for unik VOL_NAME. |
| Logfil vokser | Roter filen via newsyslog eller ryd manuelt. |
Med denne opsætning er RAM-disken 100 % selvkørende: oprettes ved login, opryddes igen - og alting bliver grundigt logget, så du kan finde fejl, hvis noget går galt.
Tips, brugsscenarier og fejlfinding
- Xcode DerivedData
Peg~/Library/Developer/Xcode/DerivedDatamod RAM-disken ved hjælp af et symbolsk link. Det fjerner mange små I/O-operationer fra SSD’en og gør “Clean & Build” mærkbart hurtigere. Husk at flytte mappen tilbage eller rydde op, inden du lukker eller genstarter, så du ikke mister vigtige artefakter. - Browser-cache
Mange Chromium-baserede browsere lader dig angive et startflag som
--disk-cache-dir=/Volumes/RAMDisk/ChromiumCache. En flygtig cache reducerer skrivninger til SSD og fjerner automatisk spor ved genstart. - “Scratch-disk” til video eller audio
I Final Cut Pro, DaVinci Resolve eller Logic kan du pege midlertidige render-/preview-filer mod RAM-disken. Det optimerer afspilning og eksport af korte klip, men vær opmærksom på, at store projekter hurtigt kan fylde al tilgængelig RAM.
Ydelsestips
- Brug APFS til mange små filer (f.eks. Xcode, npm), og HFS+ når du vil spare et par MB overhead eller planlægger at dele RAM-disken med ældre macOS-installationer.
- Indstil
noatimeviadiskutil mountDisk readOnly,noatime …for at undgå unødvendige metadata-skrivninger. - Hold RAM-disken under 30 % af den fysiske hukommelse for ikke at presse sidehukommelsen unødigt. På Apple Silicon med fælles RAM deler GPU’en også puljen.
Sikkerheds- og privatlivstips
- Data forsvinder ved strømsvigt - det er netop pointen. Undgå dog at parkere følsomme filer, som du faktisk skal beholde.
- Når RAM-disken automatisk slettes, efterlades ingen rester på SSD/HDD, hvilket er nyttigt til midlertidige krypteringsnøgler eller builds med proprietær kode.
Håndtering af hukommelsespres
macOS vil swappe inaktive RAM-sider til disk, hvis systemet mangler RAM, selv når de hører til RAM-disken. Så længe du har nok plads på systemdisken, bliver det meste bare til virtuel hukommelse - men ydelsen falder dramatisk:
- Overvåg
Memory Pressurei Aktivitetsmonitor. - Un-mount eller reducer størrelsen på RAM-disken, hvis farverne skifter til gult/rødt.
- Automatisér en advarsel med
vm_statellermemgraphi et cron/LaunchAgent-script.
Fejlfinding
| Problem | Løsning |
|---|---|
| “Operation not permitted” ved oprettelse | Tjek at Terminal har Full Disk Access i Systemindstillinger → Sikkerhed & anonymitet. |
| RAM-disken vises ikke i Finder | Kontroller med diskutil list. Hvis den kun står som diskX uden partition, manglede du diskutil eraseVolume-trinnet. |
| APFS-format fejler med “Resource busy” | Brug diskutil unmountDisk force /dev/diskX og prøv formateringen igen, eller opret en mindre disk; store RAM-diske (>32 GB) kan konflikte med APFS’ metadata-buffer. |
| Tilladelsesfejl ved symbolsk link | Slet eksisterende mappe først: rm -rf ~/Library/Developer/Xcode/DerivedData. Opret derefter linket: ln -s /Volumes/RAMDisk/DerivedData …
|
Husk at rydde op
Hvis du afmonterer RAM-disken midt i en session, kan apps “hænge” på forsvundne stier. Lav derfor et postflight-script, der:
#!/bin/zshif mount | grep -q "/Volumes/RAMDisk"; then diskutil unmount force "/Volumes/RAMDisk"fiTilføj scriptet til Logout Hooks eller en LaunchDaemon, så du altid lukker disk’en pænt og undgår fejl ved næste login.
Indholdsfortegnelse
- Hvad er en RAM-disk, og hvorfor bruge den?
- Forberedelse: krav, størrelse og filsystemvalg
- 1. Hvor meget ram har du reelt til rådighed?
- 2. Beregn den ønskede størrelse (mb → sektorer)
- 3. Vælg filsystem: Apfs eller hfs+
- 4. Navngivning, monteringspunkt og datatab
- Trin-for-trin i Terminal: opret, formater og verificér
- 1. Beregn antal sektorer
- 2. Opret den rå ram-enhed
- 3. Formater ram-disken
- 4. Verificér at alt virker
- 5. Afmonter eller slet ram-disken igen
- 6. Hurtig one-liner (kopi & indsæt)
- Automatisering: start ved login og sikker oprydning
- 1. Forbered mapper og rettigheder
- 2. Oprettelsesscriptet create_ramdisk.sh
- 3. Oprydningsscriptet remove_ramdisk.sh
- 4. Launchagent: Dk.itforum.ramdisk.plist
- 5. Automatisk oprydning
- 6. Fejlhåndtering og logning
- Tips, brugsscenarier og fejlfinding