Monter, démonter et extraire les iso sans root

Salut tout le monde :slightly_smiling:

Bon voilà, j’ai eu du mal à trouver alors je partage au cas où ça intéresserait quelqu’un :

Donc je cherchais comment ouvrir mes images iso simplement avec Thunar sans avoir à taper de mdp.

Commencez par installer le paquet fuseiso.

Ajouter cette action personalisée dans Thunar pour monter :

à utiliser pour autres fichiers *.iso

et celle-ci pour démonter :

pour les répertoires uniquement

Maintenant faites un clic droit sur une image *.iso et choisissez l’action de montage. Cela créer un dossier image si votre image s’appelle image.iso dans le même dossier que l’image avec le contenu de l’image dedans.

Pour fermer le dossier, clic droit dessus et sélectionnez l’action de démontage.

Voici le script d’extraction :

[code]#!/bin/sh

Script permettant d’extraire les image *.iso données en argument.

for var in “$@”; do
TEMP=$(mktemp -d)
DIR=${var%???}
fuseiso -p “$var” “$TEMP” # Montage de l’image
cp -R “$TEMP” “$DIR” # copie du volume
fusermount -u “$TEMP” # Démontage de l’image
chmod u+rw -R “$DIR” # Changement des permissions
done
[/code]

avec dans Thunar /chemin/vers/le/script %F

Flo

Ça peut servir :023

En fait, c’est plus pratique d’en faire un script :

[code]#!/bin/sh

Script permettant d’extraire les image *.iso données en argument.

for var in “$@”; do
fuseiso -p $var .temp # Montage de l’image
cp -R .temp “$(basename $var .iso)/” # copie du contenu du volume
fusermount -u .temp # Démontage de l’image
chmod u+rw -R “$(basename $var .iso)/” # Changement des permissions
done[/code]
(Ne pas oublier de le rendre executable)

Il fonctionne bien, mais quand j’essaie d’en faire une action personnalisée : script %N ou script %F il ne se passe rien.

Flo

Tu es sûr qu’il s’exécute dans le même répertoire que .temp depuis thunar ? Tu peu donner un chemin exclusif avec un ~ pour être sûr qu’il le trouve.

Une solution plus propre c’est de commencer avec (avant la boucle) :

pui d’utiliser $tempdir à la place de .temp et éventuellement à la fin (après la boucle) de faire un

J’ai bidouillé le script pour être sur de ne pas avoir de souci avec les chemins :

[code]#!/bin/sh

Script permettant d’extraire les image *.iso données en argument.

for var in “$@”; do
TEMP="$var"-temp # dossier temporaire
DIR=${var%???} # dossier de destination
fuseiso -p “$var” “$TEMP” # Montage de l’image
cp -R “$TEMP” “$DIR” # copie du volume
fusermount -u “$TEMP” # Démontage de l’image
chmod u+rw -R “$DIR” # Changement des permissions
done
[/code]

Mais ça ne fonctionne toujours pas avec Thunar.

Flo

Problème résolu, en fait, Thunar a besoin du chemin complet du script c’est tout ^^.

Flo

Quand script ne fonctionne pas, c’est la première chose à vérifier.

Petit remarque sur le script.
Quand tu monte l’ISO, ne faudrait il pas le faire dans le répertoire “/mnt” qui est rpévu pour les montages temporaires ? Enfin, juste histoire d’être plus propre :smiley:

Salut,

[quote=“Mimoza”]Petit remarque sur le script.
Quand tu monte l’ISO, ne faudrait il pas le faire dans le répertoire “/mnt” qui est rpévu pour les montages temporaires ? Enfin, juste histoire d’être plus propre :smiley:[/quote]

Je ne pense pas, étant donné que par défaut, un utilisateur n’a pas les droits d’écriture dans /mnt (hum, ce n’est pas plutôt /media qui est utilisé pour les montages temporaires ?), et que le but de FUSE est de justement monter des systèmes de fichiers en espace utilisateur.
Par contre, j’aimerai bien savoir s’il existe un emplacement recommandé (dans $HOME) pour de tels montages. Je crois que GVFS le fait dans un dossier caché… peut-être ~/.local/[…].

Le wiki (voir l’organisation des répertoires)

[quote]/media Points de montage pour les supports amovibles
/mnt Point de montage pour les montages temporaires [/quote]

Et il est vrai que les utilisateurs “normaux” n’ont pas le droit en écriture dans ce répertoire … :whistle:

Vous voyez les limites de POSIX ? :slightly_smiling: C’est du desktop donc c’est pas dans HFS qu’on trouvera notre réponse.
Freedesktop est là pour nous sauver grâce à XDG standards.freedesktop.org/basedi … atest.html
Je pense que le mieux c’est d’utiliser $XDG_RUNTIME_DIR et :

Pas forcément pratique, mais sinon tu peut utiliser $XDG_DATA_HOME (avec $HOME/.local/share si la variable XDG n’est pas définie).

Salut,

Je ne sais pas, je ne trouve pas cela adapté non plus de placer un point de montage dans $XDG_RUNTIME_DIR (qui tient le rôle de /tmp si je comprend bien), étant donné qu’un point de montage est de nature persistant, et subsiste après la fermeture du processus ayant effectué le montage.
Idem pour $XDG_DATA_*, je me pose la question "est-ce qu’il est adapté de monter un système de fichiers dans ~/.local/share:/usr/local/share:/usr/share ? À mon sens il semble que non.
Le plus propre ne serait pas de créer un dossier $HOME/media ou $HOME/mnt (tout comme on crée souvent - enfin je pense - $HOME/bin) ?

PS : pour info, c’est pour le développement d’un petit frontal graphique facilitant l’utilisation de plusieurs utilitaires CLI tel que SSHFS, CurlFTPFS, FuseISO… il est déjà conforme XDG, sauf concernant l’emplacement des points de montage où la question restait entière.

Pourquoi ?

Je peux me tromper, mais c’est adapté pour mettre des icônes, de la documentation, ou tout autres données (fichiers Glade etc) dîtes “statiques” livrées de base avec le programme et variant peu dans le temps (ce qui n’est pas le cas d’un montage FUSE), non ?

EDIT : en regardant le $HOME/.local/share/ de ma machine, j’y vois beaucoup de logs, des plugins téléchargés pour certaines applis, des fichiers *.desktop… Étant sur Ubuntu là, la chose qui se rapprocherait le plus serait UbuntuOne avec son système de fichiers virtuel qui semblerait être géré là dedans, mais n’utilisant pas ce programme je ne peux pas tester pour confirmer.

EDIT2 : et concernant GVFS, il effectue ses montages dans $HOME/.gvfs/. Chacun fait sa tambouille :slightly_smiling: