5 votos

Discos RAM: ¿Puedo usar APFS y/o compresión?

Utilizo un disco RAM de 200 MB para escribir algunos archivos temporales que uso repetidamente pero puedo olvidar de una ejecución a otra y no me importa perder en un apagado. Sin embargo, a menudo me quedo sin espacio y tengo que hacer limpieza.

Esto proviene de una recomendación típica para montar un disco RAM en Macos:

  • ¿Puedo usar APFS en su lugar? ¿Habrá mucho beneficio en un disco RAM? ¿Se comprimiría?

  • ¿Puedo activar la compresión por defecto? Estoy eliminando un montón de archivos HTML de diagnóstico temporales que ocuparían mucho menos espacio si hubiera compresión transparente del sistema de archivos como se puede hacer en NTFS.

                  lo antiguo, ¿qué pasa con APFS?

    diskutil erasevolume HFS+ 'RAMDisk' hdiutil attach -nomount ram://409600

En realidad, Diskutil no ayuda mucho:

No una sola mención de APFS.

$ diskutil erasevolume -h

Uso:  diskutil eraseVolume formato nombre PuntoDeMontaje|IdentificadorDeDisco|NodoDeDispositivo
Borra una única partición de disco o entera, estableciendo un nuevo volumen del sistema de archivos que estará vacío de archivos. El formato es el nombre específico de la personalidad del sistema de archivos del nuevo volumen, por ejemplo, "HFS+ con registro" o un alias común, por ejemplo, "jhfs+". El nombre es el nuevo nombre del volumen (sujeto a las restricciones de nombres de sistema de archivos) o puede especificarse como %noformat% para omitir la inicialización (para omitir el formato nuevo). No puedes borrar el volumen de arranque. Un pseudofomato de "libre" o "Espacio libre" eliminará la partición por completo, dejando un espacio libre en el mapa de particiones. Se requiere la propiedad del disco afectado.
Ejemplos: diskutil eraseVolume JHFS+ SinTítuloHFS /Volúmenes/AlgunDisco
          diskutil eraseVolume "HFS+ con registro" FooTodoVolEjRaid disco7
          diskutil eraseVolume ms-dos FOO disco0s5
          diskutil eraseVolume free free disco0s5

No hay mucha documentación de parte de Apple - es cosa de terminal.

Al consultar la página del manual todavía solo tenemos sistemas de archivos antiguos.

Esto es lo que muestra la interfaz gráfica:

ingrese la descripción de la imagen aquí

Imágenes de disco comprimidas. ¿Qué es eso?

También he visto el término imagen de disco comprimida con respecto a macOS. ¿Tiene alguna relevancia aquí?

Probar no ayudó mucho:

Montar un 50 MB

diskutil erasevolume APFS 'ram2'hdiutil attach -nomount ram://102400``

resultado: No hay un error claro, pero tampoco se muestra el disco:

Iniciando borrado en disco2
Desmontando disco
Borrando
Montando disco
No se pudo montar disco2 después del borrado  no es bueno
Borrado finalizado en disco2

ls /Volumes no muestra un disco ram2

total 0
drwxr-xr-x+  4 root  wheel  128 26 feb 16:03 .
drwxr-xr-x  28 root  wheel  896 30 sep 13:10 ..
lrwxr-xr-x   1 root  wheel    1  8 feb 12:51 MacHD -> /
drwxrwxr-x   8 jluc  staff  340 14 feb 23:01 RAMDisk  ya existente

1 votos

diskutil partitionDisk $(hdiutil attach -nomount ram://SIZE) 1 GPTFormat APFS 'RAMDisk' '100%'. SIZE=número de bloques de 512 bytes (es decir, 200 MiB = 409600 bloques)

0 votos

¿Dónde estás cerrando el paréntesis $(? '100%') ? ¿O, después de SIZE?

1 votos

Después de SIZE: hdiutil attach -nomount ram://SIZE simplemente crea un nuevo nodo de dispositivo (por ejemplo, /dev/disk2) que se particiona con el comando diskutil ...

2voto

John Puntos 16

@klanomath tiene el comando correcto en los comentarios de arriba.

diskutil partitionDisk $(hdiutil attach -nomount ram://SIZE) 1 GPTFormat APFS 'RAMDisk' '100%'

Mis resultados:

$ diskutil partitionDisk $(hdiutil attach -nomount ram://12128430) 1 GPTFormat APFS 'RAMDisk' '100%'
Started partitioning on disk15
Unmounting disk
Creating the partition map
Waiting for partitions to activate
Formatting disk15s2 as APFS with name RAMDisk
Mounting disk
Finished partitioning on disk15
/dev/disk15 (disco de imagen):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +6.2 GB     disk15
   1:                        EFI EFI                     209.7 MB   disk15s1
   2:                 Apple_APFS Container disk16        6.0 GB     disk15s2

Introducir descripción de la imagen aquí

1 votos

Estás mezclando el tamaño del disco y el tamaño de la partición. Si deseas un tamaño final de 6 GB para el contenedor APFS, tendrías que dividir 6 GB entre 512 (= 11718750 bloques), agregar 2 x 40 bloques para la 1ª y 2ª tabla de particiones (y algo de espacio libre) y 409600 bloques para la EFI: ¡12128430 bloques!

0 votos

@klanomath Tienes absolutamente razón. Estoy editando "mi" respuesta para eliminar la confusión. ¿Podrías por favor explicar cómo encontraste qué tamaño necesitaban las tablas de partición, y cómo predijiste el tamaño de la EFI? Además, ¿por qué muestra como 6.3 GB Disponible (318.1 MB purgables)?

1 votos

Los bloques de 512 bytes están alineados con los bloques físicos de 4k: La primera tabla de particiones contiene 1 bloque de MBR + 1 bloque de encabezado de GPT + 32 bloques de tabla GPT + 6 bloques vacíos (para cumplir con el límite de 4k). La segunda tabla de particiones: 7 bloques vacíos (para cumplir con el límite de 4k) + 32 bloques de tabla GPT + 1 bloque de encabezado de GPT. El estándar Apple EFI de un dispositivo emulado de 512 bytes / 4k (¡incluso RAM!) tiene un tamaño de 409600 bloques.

2voto

Curious Puntos 1

La respuesta de @klanomath funcionará, pero es innecesariamente complicada. No es necesario que un disco RAM tenga particiones, o una tabla de particiones, o una partición de arranque EFI. (Adelante, intenta arrancar desde un disco RAM! ¡Te esperaré.)

Todo lo que se necesita aquí es una imagen de disco sin particiones, formateada en APFS y que consista en un único contenedor de APFS, que encierre un único volumen de APFS. Eso es fácil con el verbo "diskutil apfs create". Además, deberíamos agregar un ajuste para evitar que macOS desperdicie ciclos intentando indexar ese volumen con Spotlight. Al juntar esas dos cosas, obtenemos el siguiente comando de una sola línea (nota que estoy usando "SIZE" como un marcador de posición):

 diskutil apfs create $(hdiutil attach -nomount ram://SIZE) RAMDisk && touch /Volumes/RAMDisk/.metadata_never_index

Eso es todo. El "SIZE" será el número entero de bloques de 512 bytes que deseas que comprenda el disco RAM. Por ejemplo, un disco RAM de 1GiB (1,073,741,824 bytes) se especificaría con el número "2097152" (sin las comillas).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X