2 votos

Use APFS VM Volume desde otro disco

Debido al triste fallecimiento de mi máquina principal, estoy iniciando un tanto menos capaces sistema desde una unidad externa para mantener a mí mismo mientras me esperan un reemplazo. La máquina en sí tiene su propia unidad interna. Tanto la máquina de la propia unidad interna, y mi recuperados (ahora externos), son el formato APF, y ambos tienen el conjunto completo de los volúmenes del sistema (prearranque, recuperación y VM).

El problema es que al arrancar desde la unidad externa, macOS quiere almacenar swapfiles en él, incluso aunque el rendimiento es pobre cuando se hace esto, especialmente desde la emergencia de la instalación tiene mucha menos RAM hacer intercambio mucho más probable.

Lo que me gustaría saber es, ¿puedo decirle a macOS Mojave para montar la unidad interna de la VM el volumen y el uso que de intercambio de archivos, en lugar de usar el disco externo?

Una rareza es que aunque el disco externo tiene su propia máquina virtual de volumen (no es que yo quiero para usarlo), macOS Mojave no está utilizando que, o bien, por el contrario, es el almacenamiento de intercambio de archivos bajo /vm, en lugar de montaje de la máquina virtual de volumen en /private/var/vm como normal.

En caso de que sea más fácil de visualizar, mis unidades de este aspecto, donde disk0 es interno, y disk2 es externo, y fue sacado de mis muertos de la máquina:

diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *320.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         319.9 GB   disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +319.9 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD            34.4 GB    disk1s1
   2:                APFS Volume Preboot                 41.8 MB    disk1s2
   3:                APFS Volume Recovery                507.4 MB   disk1s3
   4:                APFS Volume VM                      20.5 KB    disk1s4

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                 Apple_APFS Container disk3         1000.0 GB  disk2s2

/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +1000.0 GB  disk3
                                 Physical Store disk2s2
   1:                APFS Volume macOS                   102.5 GB   disk3s1
   2:                APFS Volume Preboot                 64.3 MB    disk3s2
   3:                APFS Volume Recovery                1.0 GB     disk3s3
   4:                APFS Volume VM                      20.5 KB    disk3s4
   5:                APFS Volume Users                   321.0 GB   disk3s5

Para aclarar, yo no estoy buscando para desactivar el intercambio completo, pero el uso de la unidad interna como el archivo de intercambio de localización. De hecho, el intercambio es necesario en la máquina más antigua que estoy usando, ya que nunca fue utilizado para mucho más que un medio-centro, y sólo tiene 4 gb de RAM, que se llena rápido!

1voto

Haravikk Puntos 332

Creo que he encontrado una solución a este gracias a una respuesta a una pregunta similar, el proceso que es responsable para el intercambio de archivos es /sbin/dynamic_pager, la cual es provocada por una launchd tarea de encontrar en /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist. Desde este archivo se encuentra en /System significa que esta solución requiere de la Integridad del Sistema de Protección a discapacitados, y de Catalina tendrá que realizar los cambios de su volumen de recuperación.

El primer paso es tomar una copia de seguridad del original plist:

cp /System/Library/com.apple.dynamic_pager.plist /System/Library/com.apple.dynamic_pager.plist.orig

Ahora queremos modificar el comando que se ejecuta. En el original se parecerá a esto:

<?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>EnableTransactions</key>
        <true/>
        <key>Label</key>
        <string>com.apple.dynamic_pager</string>
        <key>KeepAlive</key>
        <dict>
                <key>SuccessfulExit</key>
                <false/>
        </dict>
        <key>POSIXSpawnType</key>
        <string>Interactive</string>
        <key>ProgramArguments</key>
        <array>
                <string>/sbin/dynamic_pager</string>
        </array>
</dict>
</plist>

He modificado mi ProgramArguments sección a la siguiente:

        <key>ProgramArguments</key>
        <array>
                <string>/bin/bash</string>
                <string>-c</string>
                <string>diskutil mount -mountPoint /private/var/vm disk1s4 &amp;&amp; /sbin/dynamic_pager -F /private/var/vm/swapfile</string>
        </array>

Ahora, esto se ejecuta dos comandos, el primero en montar el interior de la VM volumen en /private/var/vm y el segundo es una versión modificada llamada a dynamic_pager a decirle que crear swapfiles en la nueva ubicación.

NOTA: En mi caso la VM volumen disk1s4, y mientras que esto debería ser el caso para la mayoría de los sistemas, usted debe verificar con diskutil list primer y modificar el nuevo comando en consecuencia.

Para activar los cambios, reinicie o, si está seguro de que usted no utiliza un archivo de intercambio en el momento, usted puede descargar y volver a cargar el launchd tarea inmediatamente:

launchctl unload /System/Library/com.apple.dynamic_pager.plist
launchctl load /System/Library/com.apple.dynamic_pager.plist

El nuevo archivo de intercambio de localización deben estar establecidos, y si es necesario, puede eliminar cualquier residuo de archivo de intercambio(s) (en mi caso en /vm).

0voto

Hefewe1zen Puntos 324

¿Has considerado desactivar el intercambio por completo? Es posible a través del comando nvram

 sudo nvram boot-args="vm_compressor=2"
 

Seguido de un reinicio.

( tomado de aquí )

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