Utiliser udisksctl pour monter un fichier image ISO (sans utiliser root)

De Le Wiki de debian-fr.xyz
Aller à : navigation, rechercher

Monter un fichier image ISO…

…en utilisant un simple compte utilisateur non privilégié (=> pas besoin du compte root)
si vous êtes dans la liste des utilisateurs du groupe disk
et avec seulement 3 petites lignes de commande.

Si besoin, mettez votre compte utilisateur dans la liste des utilisateurs du groupe disk

su -c "adduser ${USER} disk"

ou bien, si vous utilisez sudo :

sudo adduser ${USER} disk

Pour faire prendre en compte la modification précédente,
Déconnectez et reconnectez-vous à votre compte utilisateur.

Dans mon répertoire personnel, j'ai un fichier image ISO nommé mini.iso

$ udisksctl loop-setup --file mini.iso --read-only
Mapped file mini.iso as /dev/loop0.

Ok! Il a créé un fichier de périphérique loop que je vais pouvoir utiliser pour pouvoir accéder au contenu du système de fichiers de ce fichier image ISO :


NOTE : Ce fichier image ISO est un peu spécial car il n'est pas partitionné, sinon, un point de mountage aurait été créé et utilisé.
S'il avait été partitionné, il m'aurait fallu d'abord lister les fichiers de périphérique associés à des partitions contenues avec ls /dev/loop0p*
ce qui aurait donné : /dev/loop0p1 /dev/loop0p2 etc. (le p indiquant qu'il s'agit d'une partition)
et pour chacun des fichiers de périphérique trouvés, j'aurai fait ce qui suit :

$ udisksctl mount --block-device /dev/loop0
Mounted /dev/loop0 at /media/michel/CDROM.

Et voilà un extrait de la liste des fichiers contenus :

$ ls -l /media/michel/CDROM
total 43781
-r--r--r-- 1 michel michel      340 avril 20 16:01 adtxt.cfg
dr-xr-xr-x 3 michel michel     2048 avril 20 16:01 boot
…
-r--r--r-- 1 michel michel      319 avril 20 16:01 txt.cfg
-r--r--r-- 1 michel michel    26724 avril 20 16:01 vesamenu.c32

Veuillez laisser ce système de fichiers aussi propre que vous l'avez trouvé.

Je démonte le fichier de périphérique loop :

$ udisksctl unmount --block-device /dev/loop0
Unmounted /dev/loop0.

Le système de fichiers de cette image iso a été démonté, et udev a ensuite automatiquement détruit le fichier de périphérique loop et le point de montage qui avait été automatiquement créé.


NOTE : Si des partitions avaient été trouvées, utilisées puis démontées, il faudra aussi penser à libérer le loop device avec :

$ udisksctl loop-delete --block-device /dev/loop0

Si la commande ne retourne rien, c'est que tout s'est bien passé => Les fichiers de périphérique associés aux partitions auront été supprimés.