Question Accéder aux partitions sur un volume LVM


Supposons que vous ayez un volume LVM / dev / vg0 / mylv. Vous avez présenté cela comme un disque virtuel à un système invité virtualisé ou émulé. Pendant l'installation, le système invité le voit comme / dev / sda et le partitionne en / dev / sda {1,2,5,6} et termine l'installation. À un moment donné, vous devez maintenant accéder à ces systèmes de fichiers à partir du système hôte, sans exécuter le système invité. fdisk voit ces partitions très bien:

# fdisk -l /dev/vg0/mylv
           Device Boot      Start         End      Blocks   Id  System
/dev/vg0/mylv1            2048      684031      340992   83  Linux
/dev/vg0/mylv2          686078    20969471    10141697    5  Extended
/dev/vg0/mylv5          686080     8290303     3802112   83  Linux
/dev/vg0/mylv6         8292352    11980799     1844224   83  Linux

Cependant, les périphériques tels que / dev / vg0 / mylv1 n'existent pas. J'imagine que, parce qu'ils se trouvent dans une LV, le système d'exploitation ne reconnaît pas ce type d'imbrication par défaut. Est-il possible que je produise Linux de manière à ce que / dev / vg0 / mylv1 ou l’équivalent apparaisse et puisse ainsi être monté dans le système hôte?

Je comprends que c’est possible avec qemu-nbd et l’utiliserai si nécessaire. Cependant, j'espérais quelque chose de plus direct si possible, plutôt que de simuler un périphérique de blocage de réseau et de le connecter.


6
2017-10-19 16:23


origine


fdisk ne fait que vous montrer ce que la table de partition a. Le noyau ne connaît pas ces partitions car il n'analyse normalement pas les volumes LVM à la recherche de partitions. - Skaperen


Réponses:


Je crois que l'outil que vous recherchez est kpartx.

La procédure générale est la suivante:

  1. Lister les partitions dans l’image disque:

    kpartx -l /dev/vg0/mylv
    
  2. Ajoutez les partitions à device-mapper:

    kpartx -a /dev/vg0/mylv
    
  3. Montez la partition qui vous intéresse:

    mount -o ro /dev/mapper/loop0p5 /mnt
    

8
2017-10-19 16:38





Vous pourrez peut-être accéder aux systèmes de fichiers partitionnés via le bouclage en utilisant des décalages. Multipliez le début du secteur par la taille du secteur.

mkdir /mnt/mylv{1,5,6}
mount -o ro,loop,offset=$((512*2048)) /dev/vg0/mylv /mnt/mylv1
mount -o ro,loop,offset=$((512*686080)) /dev/vg0/mylv /mnt/mylv5
mount -o ro,loop,offset=$((512*8292352)) /dev/vg0/mylv /mnt/mylv6

1
2017-10-19 16:45



Intéressant, mais choisissez plutôt kpartx (voir l’autre réponse). - cstamas
Je n'aime pas réinventer la roue. J'aime les outils qui fonctionnent très bien pour moi. - Michael Hampton♦