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.