Criar montagem em disco ram para uma pasta específica no OSX


11

Estou usando um comando como esse para criar um disco ram:

diskutil erasevolume HFS+ "ram disk" `hdiutil attach -nomount ram://307200`

Isso funciona com êxito e recebo um disco / Volumes / ram montado no meu sistema que eu posso usar montado em / dev / disk5 ou em algum outro local.

Eu gostaria de poder controlar onde isso vai, poder montar em / tmp / my_dir ou onde quer que seja. Eu tentei muitas combinações de alteração de parâmetros no hdiutil e diskutil sem sucesso. Qual é a maneira certa de fazer isso?


Use um link simbólico para que ele apareça onde você deseja.
martineau

Eu descobri uma maneira de conseguir este feito, mas eu tinha que fazer isso em mais de uma etapa em um script bash
Derek

Você pode aceitar sua própria resposta aqui (e compartilhar os detalhes com o resto de nós no processo ;-).
27512 martineau

Respostas:


15
#!/bin/sh
ramfs_size_mb=2100
mount_point=/tmp/rdisk

mkramdisk() {
  ramfs_size_sectors=$((${ramfs_size_mb}*1024*1024/512))
  ramdisk_dev=`hdid -nomount ram://${ramfs_size_sectors}`

  newfs_hfs -v 'ram disk' ${ramdisk_dev}
  mkdir -p ${mount_point}
  mount -o noatime -t hfs ${ramdisk_dev} ${mount_point}

  echo "remove with:"
  echo "umount ${mount_point}"
  echo "diskutil eject ${ramdisk_dev}"
}

Para MacOS Sierra não funcionou
Sasho

O trecho de código funciona no Sierra.
Rafa

1
Uma coisa a ter em mente é que hdiutila tecla direita dá espaço à sua saída para um comprimento de 54, portanto, se você citar ${ramdisk_dev}, terá problemas.
zneak
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.