Accéder au contenu.
Menu Sympa

linux-31 - [Linux-31] kpartx, loop et partitions d'une image (was: Copier la table des partitions)

Objet : Discussions sur le logiciel libre

Archives de la liste

[Linux-31] kpartx, loop et partitions d'une image (was: Copier la table des partitions)


Chronologique Discussions 
  • From: Pascal Hambourg <pascal AT plouf.fr.eu.org>
  • To: linux-31 AT culte.org
  • Subject: [Linux-31] kpartx, loop et partitions d'une image (was: Copier la table des partitions)
  • Date: Sun, 22 Jul 2018 21:09:35 +0200
  • Organization: Plouf !

Le 22/07/2018 à 16:44, Jean-Marc Mongrelet (via linux-31 Mailing List) a écrit :

J'ai utilisé kpartx pour créer des périphériques loop à partir de l'image créé:
$ sudo kpartx -a -v image.img

On va dire que je pinaille, mais les périphériques créés par kpartx pour les partitions ne sont pas des périphériques "loop". Seul le périphérique représentant l'image entière, ici /dev/loop0, est un périphérique loop. Les partitions sont des périphériques du "device-mapper" (aussi utilisé par les volumes logiques LVM et les volumes chiffrés dm-crypt) comme on peut le voir dans le chemin de leur pseudo-fichier : /dev/mapper/loop0p1, qui est en fait un lien symbolique pointant vers un périphérique /dev/dm-N.

J'ai donc pu scanner les partitions contenues dans l'image ainsi créé:
$ fsck -yfv -C0 /dev/mapper/loop0p1

Aussi le noyau ne considère pas les périphériques /dev/mapper/loop0pN comme des partitions de /dev/loop0 comme il le fait par exemple avec les partitions /dev/sdaN du disque /dev/sda, car c'est kpartx qui lit la table de partition et non le noyau.

Il existe deux autres méthodes pour créer des périphériques pour les partitions d'une image disque, toutes deux basées sur les périphériques loop créés par losetup sans le device mapper :

- Utiliser l'option --partscan (-P) de losetup.
- Utiliser le paramètre max_part=N du module loop.

La différence entre les deux méthodes est l'allocation des numéros majeurs et mineurs de périphériques des partitions. Mais dans les deux cas les périphériques des partitions sont nommés /dev/loopXpY et sont vus par le noyau comme les partitions du périphérique /dev/loopX car c'est lui qui lit la table de partition.



Archives gérées par MHonArc 2.6.19+.

Haut de le page