0 votos

¿Es posible añadir la opción de montaje noatime a /System/Volumes/Data?

Dirijo una granja de servidores de Mac minis. Por razones de rendimiento y longevidad del SSD, he ( Mojave) particionado el SSD en APFS y montado la nueva partición con el noatime y limitar las construcciones a esa partición. Ahora que Catalina y más allá tienen la opción /System/Volumes/Data partición como parte del sistema operativo, me pregunto si hay una manera de habilitar el noatime opción para esa partición sin indagar en /etc/fstab es decir, de una manera sancionada por Apple.

2voto

ola Puntos 31

Sí, podría añadir el noatime a la opción de montaje /System/Volumes/Data partición de forma persistente con un demonio launchd. Esto me funcionó en MacOS Catalina, Big Sur y Monterey.

He creado un archivo /Library/LaunchDaemons/local.noatime.plist con este contenido:

<?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">
<!-- Install: copy to /Library/LaunchDaemons/, chown root:wheel and chmod 644 -->
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>local.noatime</string>
    <key>ProgramArguments</key>
    <array>
      <string>/bin/bash</string>
      <string>-c</string>
      <!-- first get the current mount options to see if there are any default options that we missed to provide here -->
      <!-- as mount overwrites the default options except the ones it reads out from the filesystem table -->
      <string>mnt=/System/Volumes/Data; mount | grep -F " $mnt "; mount -vuwo nobrowse,noatime "$mnt"</string>
    </array>
    <!-- launchd appends the output to the log file so write it to /tmp that is removed on each reboot -->
    <key>StandardOutPath</key>
    <string>/tmp/noatime.log</string>
    <key>StandardErrorPath</key>
    <string>/tmp/noatime.log</string>
    <key>RunAtLoad</key>
    <true/>
    <key>LaunchOnlyOnce</key>
    <true/>
    <key>KeepAlive</key>
    <false/>
  </dict>
</plist>

Puede elegir cualquier nombre de LaunchDaemon que desee en lugar de local.noatime que aún no existe, pero creo que la etiqueta en el config y el nombre del archivo (sin la extensión .plist) deben ser los mismos.

Normalmente, este LaunchDaemon se iniciará en cada arranque por lo que añadirá el noatime después de un reinicio.

Pero veo que tienes una granja de servidores y supongo que un reinicio para todas esas máquinas no es lo ideal, así que podrías activar manualmente el demonio sin reiniciar:

sudo launchctl bootstrap system /Library/LaunchDaemons/local.noatime.plist

Si compruebas el archivo de registro deberías ver algo como esto:

cat /tmp/noatime.log

/dev/disk3s1 on /System/Volumes/Data (apfs, local, journaled, nobrowse)
/dev/disk3s1 on /System/Volumes/Data (apfs, local, journaled, noatime, nobrowse)

La primera línea contiene las opciones de montaje originales y la segunda las nuevas. Creo que es una buena idea para mantener alrededor de las opciones de montaje originales en caso de que Apple añade algunas otras opciones por defecto al lado de nobrowse (las otras opciones se añaden automáticamente desde la tabla del sistema de archivos) ya que no encontré la forma de añadir el noatime sin eliminar las opciones de montaje anteriores. Con esto dicho, use esto bajo su propio riesgo.

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