Damien Clauzel - Mot-clé - hdiutil2024-03-27T11:37:53+01:00Damien Clauzelurn:md5:6728c0058bb2c4b2870d8dbd71b50f9eDotclearUtiliser Steam sur MacOS en 2016 avec un système de fichiers sensible à la casseurn:md5:b45a95a9662bb4c428c92279ea402c862016-09-04T18:24:00+02:002017-09-21T14:32:17+02:00Damien ClauzelInformatiqueCLIhdiutilHFSMacOSproblèmeSteamValve <p>En 2016 , le <a href="http://store.steampowered.com/browse/mac" hreflang="fr">client Steam sur Mac</a> a beaucoup changé par rapport à ce qu’il était en 2010. Enfin, pas tant que ça… Il est toujours en 32 bits, exige toujours un système de fichiers non sensible à la casse, son overlay est toujours aussi problématique, et sa gestion des manettes de jeu toujours aussi erratique.</p>
<p>Bref, il convient d’adapter la <a href="https://damien.clauzel.eu/post/2010/05/14/Utiliser-Steam-sur-MacOS-avec-un-syst%C3%A8me-de-fichiers-sensible-%C3%A0-la-casse" hreflang="fr">procédure que nous avions mis en place</a> en 2010. Le principe reste le même : on mets tous les éléments dans une image disque, et on crée des liens.</p>
<h3>Ouvrir un terminal</h3>
<p>Nous allons travailler principalement en ligne de commande. Eh, jouer se mérite un peu ;)
On pourrait faire la même chose en utilisant des outils graphiques, mais cela serait plus long à expliquer.</p>
<h3>Créer l’image disque qui accueillera Steam</h3>
<p>L’image disque peut être rangée n’importe où : /Applications, $HOME, etc. Nous la mettrons dans $HOME/Applications/Jeux</p>
<pre class="brush: bash">mkdir -p ~/Applications/Jeux
cd ~/Applications/Jeux
hdiutil create -size 50g -type SPARSEBUNDLE -fs HFS+J -volname Steam Steam
created: /Users/USER/Applications/Jeux/Steam.sparsebundle</pre>
<p>Pour d’informations, on se tournera vers le billet sur <a href="https://damien.clauzel.eu/post/2008/09/08/Manipuler-les-volumes-reseaux-et-images-disques-de-MacOS-en-ligne-de-commande">la manipulation des images disques</a>.</p>
<h3>Mettre en place l’application Steam</h3>
<p>Ouvrir notre image disque pour Steam et y copier l’application Steam fournie par Valve.</p>
<pre class="brush: bash">hdiutil attach Steam.sparsebundle
/dev/disk4 GUID_partition_scheme
/dev/disk4s1 EFI
/dev/disk4s2 Apple_HFS /Volumes/Steam</pre>
<p>On constate ici que notre image disque a été montée dans /Volumes/Steam; elle apparait d’ailleurs sur le bureau. Il suffit maintenant d’y copier l’application Steam de Valve directement depuis l’image d’installation.</p>
<h3>Adapter le compte utilisateur pour faire fonctionner Steam</h3>
<p>Le principe est de stocker dans notre image disque tout ce qui a trait à Steam, et d’utiliser des liens pour maintenir les chemins d’accès.</p>
<pre class="brush: bash">mkdir -p /Volumes/Steam/Library
# copiez dans /Volumes/Steam/Library votre dossier applicatif « Steam » existant; ou vous pouvez simplement laisser Steam le recréer… et retélécharger tous vos jeux.
ln -s /Volumes/Steam/Library/Steam ~/Library/Application\ Support/Steam</pre>
<p>Il ne reste plus qu’à synchroniser le tout et à refermer.</p>
<pre class="brush: bash">sync
hdiutil detach /Volumes/Steam
"disk4" unmounted.
"disk4" ejected.</pre>
<h3>Jouer !</h3>
<p>Pour utiliser Steam, il suffit de monter l'image disque (en double cliquant dessus, par exemple), puis de lancer l'application.</p>https://damien.clauzel.eu/post/2016/09/04/Utiliser-Steam-sur-MacOS-en-2016-avec-un-syst%C3%A8me-de-fichiers-sensible-%C3%A0-la-casse#comment-formhttps://damien.clauzel.eu/feed/atom/comments/129Utiliser Steam sur MacOS avec un système de fichiers sensible à la casseurn:md5:eeb45140637f1df8b4fe5afe99ec11c32010-05-14T11:40:00+02:002021-08-04T11:11:44+02:00Damien ClauzelInformatiqueCLIhdiutilHFSMacOSPortalproblèmeSteamValve <p>Tout joyeux, vous avez téléchargé la <a href="http://store.steampowered.com/browse/mac" hreflang="fr">version MacOS de Steam</a> pour <a href="http://store.steampowered.com/freeportal/" hreflang="fr">profiter gratuitement de Portal</a>. Vous avez bien raison, c'est un excellent jeu. Mais une fois lancé, Steam s'arrête en affichant le message suivant :</p>
<p><q>Steam requieres that /Users/USER/Téléchargements/Steam.app/Contents/MacOS be created on a case insensitive filesystem, with read-write access.</q></p>
<p><strong>Le problème</strong> : pour être installé sur MacOS, Steam exige un système de fichiers insensible à la casse. Et ce aussi bien pour l'application elle-même que ses données (<code>~/Library/Application\ Support/Steam</code> et <code>~/Documents/Steam\ Content</code>).</p>
<p><strong>La solution</strong> : utiliser la technique habituelle, à savoir passer par une image disque pour regrouper les fichiers sur un volume personnalisé.</p>
<h3>Ouvrir un terminal</h3>
<p>Nous allons travailler principalement en ligne de commande. Eh, jouer se mérite un peu ;)
On pourrait faire la même chose en utilisant des outils graphiques, mais cela serait plus long à expliquer.</p>
<h3>Créer l'image disque qui accueillera Steam</h3>
<p>L'image disque peut être rangée n'importe où : /Applications, $HOME, etc. Nous la mettrons dans $HOME/Applications</p>
<pre class="brush: bash">$ mkdir -p ~/Applications
$ cd ~/Applications
$ hdiutil create -size 50g -type SPARSEBUNDLE -fs HFS+J -volname Steam Steam
created: /Users/USER/Applications/Steam.sparsebundle</pre>
<p>Pour d'informations, on se tournera vers le billet sur <a href="https://damien.clauzel.eu/post/2008/09/08/Manipuler-les-volumes-reseaux-et-images-disques-de-MacOS-en-ligne-de-commande">la manipulation des images disques</a>.</p>
<h3>Mettre en place l'application Steam</h3>
<p>Ouvrir notre image disque pour Steam et y copier l'application Steam fournie par Valve.</p>
<pre class="brush: bash">$ hdiutil attach Steam.sparsebundle
/dev/disk4 GUID_partition_scheme
/dev/disk4s1 EFI
/dev/disk4s2 Apple_HFS /Volumes/Steam</pre>
<p>On constate ici que notre image disque a été montée dans /Volumes/Steam; elle apparait d'ailleurs sur le bureau. Il suffit maintenant de copier l'application Steam de Valve dans cette image disque.</p>
<h3>Adapter le compte utilisateur pour faire fonctionner Steam</h3>
<p>Le principe est de stocker dans notre image disque tout ce qui a trait à Steam, et d'utiliser des liens pour maintenir les chemins d'accès.</p>
<pre class="brush: bash">$ mkdir /Volumes/Steam/Application\ Support
$ mkdir /Volumes/Steam/Steam\ Content
$ ln -s /Volumes/Steam/Application\ Support ~/Library/Application\ Support/Steam
$ ln -s /Volumes/Steam/Steam\ Content ~/Documents/Steam\ Content</pre>
<p>Il ne reste plus qu'à synchroniser le tout et à refermer.</p>
<pre class="brush: bash">$ sync
$ hdiutil detach /Volumes/Steam
"disk4" unmounted.
"disk4" ejected.</pre>
<h3>Jouer !</h3>
<p>Pour utiliser Steam, il suffit de monter l'image disque (en double cliquant dessus, par exemple), puis de lancer l'application.</p>https://damien.clauzel.eu/post/2010/05/14/Utiliser-Steam-sur-MacOS-avec-un-syst%C3%A8me-de-fichiers-sensible-%C3%A0-la-casse#comment-formhttps://damien.clauzel.eu/feed/atom/comments/57Manipuler les images disques de MacOS en ligne de commandeurn:md5:c0aad2df970cb26f94bd5d795e6ea8a02008-09-08T16:55:00+02:002016-01-06T18:16:09+01:00Damien ClauzelInformatiquehdiutilimage disqueligne de commandeMacOSsysadmintutoriel <h3>Avant-propos</h3>
<p>Pour les utilisateurs venant du monde UNIX, il est indispensable de savoir manipuler en ligne de commande les images disques d'Apple. Il en existe de deux sortes : les traditionnelles (avec leur variations : chiffrées, compressées, etc) et les grossissantes.</p>
<p>Les images disques grossissantes sont des images disques ayant une taille maximale définie à la création. Toutefois, uniquement l'espace utilisé est écrit sur le disque, ce qui permet de limiter l'espace occupé.</p>
<p>Concrètement, une telle image se présente sous la forme d'un répertoire <code>IMAGE.sparsebundle</code> contenant une collection de <em>bandes</em>, un index des données et un fichier de métadonnées sur l'image. Il va de soit qu'il est <strong>extrêmement</strong> déconseillé d'aller trifouiller au petit bonheur la chance à l'intérieur de ces fichiers.</p>
<p>Il est important de se pencher sur la façon dont les volumes et disques sont attachés sous MacOS. Sans entrer dans les détails, on admettra que les disques physiques sont directement (c'est à dire, sans tampon ou couche tierce) accessibles par les nœuds <code>/dev/rdisk*</code>; ils ont leur contrepartie logique sous la forme <code>/dev/disk*</code>.</p>
<p>Une image disque, étant un volume logique, sera attachée sous la forme <code>/dev/diskXsY</code>, comme si elle était un disque dur. <code>X</code> est alors un identifiant du disque, et chaque partition est associée à un identifiant <code>Y</code>. Chaque partition du disque logique peut alors être montée; le point de montage par défaut étant <code>/Volumes/</code>. Il est bien sur possible d'attacher une image disque sans la monter, afin d'utiliser par exemple des outils travaillant sur les blocs.</p>
<p>Également, MacOS associe à chaque image disque une somme de contrôle permettant de tester son intégrité. Par défaut, des tests (parfois longs) sont effectués. À vous de décider si vous voulez les valider ou bien les ignorer.</p>
<p>La syntaxe des exemples suivants est valable pour MacOS Léopard, et peut-être des versions ultérieures (Jaguar, Panthère et Tigre ont connu des évolutions dans la gestion des images disques; sans parler de Puma et Guépard).</p>
<h3>Attacher une image disque</h3>
<p>Attache le disque en un nœud <code>/dev/disk*</code> et monte le volume dans <code>/Volumes/</code>. Il est possible d'attacher une image disque sans monter son volume en utilisant l'option <code>-nomount</code>. D'autres options comme <code>-nobrowse</code> ou <code>-private</code> marqueront le volume comme n'étant pas utilisable par les applications (ainsi, le Finder ne l'affichera pas) ou ne notifieront pas le système de l'ajout du disque (pas d'indexation SpotLight).</p>
<pre class="brush: bash">hdiutil attach IMAGE</pre>
<h3>Démonter une image disque</h3>
<p>Démonte un système de fichiers d'une image disque sans libérer ce dernier. Le nœud <code>/dev/disk*</code> est toujours présent mais le système de fichiers n'est plus monté.</p>
<pre class="brush: bash">hdiutil umount /Volumes/IMAGE</pre>
<h3>Démonter et détacher une image disque</h3>
<p>Démonter le système de fichiers; le nœud du disque logique est supprimé de <code>/dev/disk*</code>,</p>
<pre class="brush: bash">hdiutil detach /Volumes/IMAGE</pre>
<h3>Créer une image disque grossissante</h3>
<p>Créer une image disque de taille maximale 500 Go, avec un système de fichier en HFS+ journalisé et sensible à la casse :</p>
<ul>
<li>-size 500G : taille maximale de l'image</li>
<li>-fs HFSX : système de fichiers HFS+ sensible à la casse</li>
<li>-J : utilisation d'un journal pour le système de fichiers</li>
<li>-type SPARSEBUNDLE : le type d'image disque</li>
<li>-volname "Sauvegardes" : le nom du volume de l'image disque; il sera utilisé comme nom de point de montage par défaut dans <code>/Volumes/</code></li>
</ul>
<pre class="brush: bash">hdiutil create -size 500G -fs HFSX -fsargs -J -type SPARSEBUNDLE -volname "Sauvegardes" Sauvegardes.sparsebundle</pre>
<h3>Optimiser la taille de l'image disque</h3>
<p>Pour une image disque grossissante, il est possible de demander la récupération de l'espace non-utilisé dans les bandes, pour faire ramener sa taille à celle du volume des données qu'elle contient.</p>
<pre class="brush: bash">hdiutil compact IMAGE</pre>
<h3>Formater un volume en HFS</h3>
<p>Il est tout à fait possible de formater un volume d'une image disque existante. Il suffit d'attacher l'image disque, et de travailler sur les partitions. On peut utiliser les options suivantes :</p>
<ul>
<li>-J : utilisation d'un journal pour le système de fichiers</li>
<li>-s : le système de fichier sera sensible à la casse</li>
<li>-v Données" : le nom du volume</li>
</ul>
<pre class="brush: bash">newfs_hfs -J -s -v "Données" /dev/diskXXXXX</pre>
<h3>Connaître les opérations possibles sur les images disques</h3>
<p>La commande <code>hdiutil</code> ne se limite pas aux simples opérations de montage et démontage de volumes. Elle permet également de convertir, graver, segmenter et d'une façon générale d'effectuer toutes les opérations possibles sur les images disques. La commande en elle-même intègre une documentation extensive, et son manuel contient des exemples concrets.</p>
<p><code>hdiutil help</code> et plus précisément <code>hdiutil help COMMAND</code>.</p>
<h3>Références</h3>
<ul>
<li><a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/hdiutil.1.html" hreflang="en">man hdiutil</a></li>
</ul>https://damien.clauzel.eu/post/2008/09/08/Manipuler-les-volumes-reseaux-et-images-disques-de-MacOS-en-ligne-de-commande#comment-formhttps://damien.clauzel.eu/feed/atom/comments/27