0 votes

Est-il possible d'ajouter l'option de montage noatime à /System/Volumes/Data ?

Je gère une ferme de serveurs Mac Minis. Pour des raisons de performance et de longévité du SSD, j'ai (Mojave) partitionné le SSD en APFS et monté la nouvelle partition avec l'option noatime et limiter les constructions à cette partition. Maintenant que Catalina et les versions ultérieures ont l'option /System/Volumes/Data dans le cadre du système d'exploitation, je me demande s'il existe un moyen d'activer le système d'exploitation. noatime pour cette partition sans avoir à se pencher sur les /etc/fstab c'est-à-dire d'une manière approuvée par Apple.

2voto

agostonbarna Points 36

Oui, je pourrais ajouter le noatime à l'option de montage du /System/Volumes/Data de manière persistante à l'aide d'un démon launchd. Cela a fonctionné pour moi sur MacOS Catalina, Big Sur et Monterey.

J'ai créé un fichier /Library/LaunchDaemons/local.noatime.plist avec ce contenu :

<?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>

Vous pouvez choisir n'importe quel nom de LaunchDaemon à la place de local.noatime qui n'existe pas encore, mais je pense que le Label dans la configuration et le nom du fichier (sans l'extension .plist) doivent être les mêmes.

Normalement, ce LaunchDaemon démarre à chaque démarrage, il ajoute donc le paramètre noatime après un redémarrage.

Mais je vois que vous avez une ferme de serveurs et je suppose qu'un redémarrage de toutes ces machines n'est pas idéal, vous pourriez donc déclencher manuellement le démon sans redémarrage :

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

Si vous vérifiez le fichier journal, vous devriez voir quelque chose comme ceci :

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 première ligne contient les options de montage originales et la deuxième ligne les nouvelles. Je pense que c'est une bonne idée de conserver les options de montage originales au cas où Apple ajouterait d'autres options par défaut. nobrowse (les autres options sont ajoutées automatiquement à partir de la table du système de fichiers) car je n'ai pas trouvé de moyen d'ajouter le paramètre noatime sans supprimer les options de montage précédentes. Ceci étant dit, utilisez cette option à vos risques et périls.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X