Bonjour,
j’ai un fichier debian.img (une image de disque d’une install debian).
Je voudrais aller récupérer des fichiers à l’intérieur.
Comment faire ?
Je sais comment l’installer sur un disque, mais juste l’ouvrir pour y prendre des fichiers, je séche.
rappelle nous déjà comment tu as obtenu ce fichier,avec clonezilla?
Cette méthode devrait marcher je pense (QEMU connaît vraiment plein de types d’images disque) : bethesignal.org/blog/2011/01/05/ … vdi-image/
tu peux pas le graver ce truc?
Ben justement, je veux éviter de le graver!
Le méthode qemu semble parfaite pour ce que je veux faire, mais ça ne marche pas.
Il me dit ne pas trouver le fichier alors qu’il présent
[quote]ordi1:/home/didier/plugcomputer/dreamplug/debian# ls
NewIT-GuiPlug-v2.7-8Gb-29oct11-Dreamplug.img
NewIT-Dreamplug-Debian-Wheezy-2Gb-31Aug11.img.gz.md5 NewIT-GuiPlug-v2.7-8Gb-29oct11-Dreamplug.img.gz
qemu-nbd -c /dev/nbd0 NewIT-GuiPlug-v2.7-8Gb-29oct11-Dreamplug.img
qemu-nbd: Failed to bdrv_open ‘NewIT-GuiPlug-v2.7-8Gb-29oct11-Dreamplug.img’: No such file or directory
[/quote]
ça doit étre un truc tout béte, mais je ne vois pas le problème.
Je pensais qu’un fichier img pouvait se monter comme un fichier iso mais apparemment, non…
On doit pouvoir le monter avec mount -o loop à condition qu’il ne contienne qu’une seule partition. Mais là, j’en ai 2, une en FAT et l’autre en ext3
C’est un pur clone par dd ou une image traitée par un quelconque programme de virtualisation (virtualbox, qemu …) ?
exemple
$ file squeeze-1.img
squeeze-1.img: QEMU QCOW Image (v2), 8589934592 bytes
S’il s’agit d’un pur clone, les options offset et sizelimit de $ mount qui s’appliquent aux montages loop.
La première partition , préciser la fin
$ mount -o loop -o sizelimit XXXXX fichier.img /point/de/montage
La dernière , préciser le début
$ mount -o loop -o offset YYYYYY fichier.img /point/de/montage
Entre la première et la dernière , on spécifie les deux, fin et début.
$ mount -o loop -o sizelimit XXXXX -o offset YYYYYY fichier.img /point
Le man de mount l’évoque sans l’expliciter à la rubrique loop et renvoie vers le manuel de losetup (loop) qui est un petit peu plus parlant
$ man losetup
-o, --offset offset
the data start is moved offset bytes into the specified file or device
--sizelimit size
the data end is set to no more than size bytes after the data start
Comment obtenir les valeurs XXXXX YYYYY ?
[code]
fdisk -l fichier.img[/code]
OK merci, je teste ça ce soir.
Pour info, c’est une image qui s’installe avec dd sur la carte SD interne d’un dreamplug.
La première partition en FAT contient le kernel au format uImage, bootable avec uboot.
[quote] fdisk -l NewIT-GuiPlug-v2.7-8Gb-29oct11-Dreamplug.img
Disque NewIT-GuiPlug-v2.7-8Gb-29oct11-Dreamplug.img : 8018 Mo, 8018460672 octets
247 têtes, 62 secteurs/piste, 1022 cylindres, total 15661056 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d’E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x0543cf8e
Périphérique Amorce Début Fin Blocs Id Système
NewIT-GuiPlug-v2.7-8Gb-29oct11-Dreamplug.img1 62 122511 61225 6 FAT16
NewIT-GuiPlug-v2.7-8Gb-29oct11-Dreamplug.img2 122512 15650907 7764198 83 Linux
[/quote]
Je retrouve bien ce à quoi je m’attendais.
Me sort le help de mount, sans me donner la moindre erreur (et évidment pas mon fichier)
L’option sizelimit n’a pas l’air de lui plaire
J’ai trouvé ce petit script qui fonctionne:
[code]#!/bin/bash
vim:ai:sw=2
N=0
if [ -n “$1” ] ; then
if [ -f “$1” ] ; then
fdisk -l “$1” | grep "^${1##/}" | awk ‘{print $2}’ |
while read S ; do
N=$[$N+1]
sudo mkdir -p /mnt/tmp$N
sudo mount -o loop,owner,offset=$[512$S] “$1” /mnt/tmp$N
echo "/mnt/tmp$N"
ls /mnt/tmp$N
done
else
echo "Can’t find "$1""
fi
else
for T in /mnt/tmp[0-9]* ; do
if grep -q $T /proc/mounts >> /dev/null 2>&1 ; then
echo "unmounting “$T”"
sudo umount $T
fi
done
fi[/code]
sizelimit
the data end is set to no more than size bytes after the data start
after the data start: relatif au début, ajouter XXX+valeur du début
Lorsque début=0, XXX=XXX+0=XXX