Skip to content

Instantly share code, notes, and snippets.

@jeremie-lesage
Last active December 25, 2015 16:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeremie-lesage/fa1d15482d40e113ce81 to your computer and use it in GitHub Desktop.
Save jeremie-lesage/fa1d15482d40e113ce81 to your computer and use it in GitHub Desktop.
Comment lire le contenu d'un vmdk ?
# Aujourd'hui on va devoir travailler en root.
su -
# Installation des outils nécessaire.
aptitude install afflib-tools sleuthkit kpartx
# Mon fichier VMDK à lire s'appel turnkey-tomcat-amd64.vmdk
# Pour plus d'info sur http://www.turnkeylinux.org/
# Je créer trois dossier "a", "b", "c" car je suis un peu fainéant
mkdir a b c
# Premièrement on "monte" le vmdk dans le premier dossier en format
# brut 'raw'
affuse -o allow_root turnkey-tomcat-amd64.vmdk a
# Puis on 'bind' l'image sur une interface loopback
losetup /dev/loop7 a/turnkey-tomcat-amd64.vmdk.raw
# On peut facilement voir le contenu de l'image,
# Dans notre cas on a deux partitions
fdisk -l /dev/loop7
## Unités = secteurs de 1 * 512 = 512 octets
## Périphérique Amorce Début Fin Blocs Id Système
## /dev/loop7p1 * 1 1000000 500000 83 Linux
## /dev/loop7p2 1001472 39061503 19030016 8e LVM Linux
# La première partition contient le /boot de notre système
mount -o loop,offset=$((255*1)) /dev/loop7 b
ls b
## config-2.6.32-5-amd64 grub initrd.img-2.6.32-5-amd64 lost+found
## System.map-2.6.32-5-amd64 vmlinuz-2.6.32-5-amd64
umount b
# La seconde partition ne peut pas etre monté aussi facilement :
mount -o loop,offset=$((255*1001472)) /dev/loop7 c
##mount : type de système de fichiers « LVM2_member » inconnu
# Pour monter la partition LVM on va utiliser kpartx, pour mapper les
# partitions sur des fichiers indépendants
kpartx -a /dev/loop7
mount /dev/mapper/loop7p1 b
ls b
## config-2.6.32-5-amd64 grub initrd.img-2.6.32-5-amd64 lost+found
## System.map-2.6.32-5-amd64 vmlinuz-2.6.32-5-amd64
# Ensuite on monte le volume très classiquement
vgscan
## Reading all physical volumes. This may take a while...
## Found volume group "turnkey" using metadata type lvm2
vgchange -ay "turnkey"
## 2 logical volume(s) in volume group "turnkey" now active
ls /dev/turnkey/
##root swap_1
# Il y a deux partition dans notre lvm, pas besoin de monter le swap ;-)
mount /dev/turnkey/root c
# CQFD
# Avant de partir on débranche tout
umount c
umount b
kpartx -d /dev/loop7
# ou losetup -d /dev/mapper/loop7p1 && losetup -d /dev/mapper/loop7p2
losetup -d /dev/loop7
fusermount -u a
@jeremie-lesage
Copy link
Author

Attention, ça ne fonctionne pas sur les vmdk des Snapshot de VirtualBox

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment