Bonjour,
Je débute sur Linux…
J'ai récupéré une image de Raspbian que j'ai dézippé dans un dossier.
mkdir raspbian
cd raspbian
wget (le lien de mon image)
unzip monimage.zip
Je veux maintenant extraire les fichiers.
Pour extraire les fichiers qui m'intéressent, je veux monter l'image de Raspbian dans un répertoire temporaire.
sudo losetup -f --show -P (mon image)
/dev/loop26
sudo mkdir /mnt/imageroot
sudo mount /dev/loop26 /mnt/imageroot
Or j'ai une erreur qui apparaît : wrong fs type, bad option, bad superblock on /dev/loop26, missing codepage or helper program or other error
Qu'est ce que cela signifie ? comment dois-je procéder ?
En vous remerciant.
# L'image doit contenir plusieurs partitions ....
Posté par totof2000 . Évalué à 3. Dernière modification le 16 octobre 2019 à 18:35.
Si ma mémoire est bonne, une image pour raspberry pi contient au moins deux partitions :
- une partition fat32 pour le démarrage du pi
- une partition avec la distribution en elle-même (montée sur /).
Je ne sais plus trop comment ça marche avec losetup et comment il se débrouille pour gérer les multiples partitions … Peux-tu faire un truc du style :
sudo fdisk -l /dev/loop26 puis un ls -l /dev/loop26* après losetup, et faire un copier/coller ici ?
Sinon peut-être que tu trouveras ton bonheur ici : https://unix.stackexchange.com/questions/342463/how-to-mount-multiple-partitions-from-disk-image-simultaneously
Il semble qu'il est possible d'utiliser l'option -P avec losetup.
Plus d'infos en français ici :http://memo.raphaelguetta.fr/post/mount-image-as-device/
[^] # Re: L'image doit contenir plusieurs partitions ....
Posté par vanje . Évalué à 1.
Merci beaucoup à tous pour vos messages et explications.
J'ai réglé le problème.
En effet, il y a 2 partitions.
En effectuant la commande : lsblk -f ,j'obtiens la liste et les caractéristiques des disques et de leurs partitions.
Dont :
loop26
|-loop26p1 vfat boot xxxx-xxxx
|-loop26p2 ext4 rootfs xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Après le losetup, j'ai donc effectué la commande :
sudo mount /dev/loop26p1/mnt/imageroot et non loop26
Par vérification :
cd mondossier/
ls
J'ai bien extrait mon fichier .dtb
# kpartx est ton ami
Posté par Cyril Brulebois (site web personnel) . Évalué à 1.
losetup
te permet d'obtenir un lien entre un périphériqueloop
et ton image.kpartx -asv /dev/loopX
te permet d'activer chaque partition, ce qui permet de les retrouver en tant que/dev/mapper/loopXpY
, avec lesquelles tu peux jouer viamount
.Pour le clean-up :
umount
,kpartx -dsv /dev/loopX
etlosetup
avec les bonnes options.Note que tu peux appeler
kpartx -asv
directement sur ton image. Le/dev/loopX
sera mis en place automatiquement, et nettoyé quand tu appelleraskpart -dsv
(flag autoclean ou équivalent).Debian Consultant @ DEBAMAX
[^] # Re: kpartx est ton ami
Posté par ʭ ☯ . Évalué à 2.
Pour ma part, je fais rien de losetup, juste
mount -o loop toto.img toto_dossier/
C'est ma Mageia qui est magique?
⚓ À g'Auch TOUTE! http://afdgauch.online.fr
[^] # Re: kpartx est ton ami
Posté par Cyril Brulebois (site web personnel) . Évalué à 3.
Je pense surtout que c'est le contenu de ton
toto.img
qui s'y prête…Debian Consultant @ DEBAMAX
# fdisk + mount avec option offset
Posté par AncalagonTotof . Évalué à 3.
Exemple avec ce que j'ai sous le coude. Parce que sous UNIX, tout est fichier,
fdisk
peut prendre directement l'image en paramètre :Comme évoqué plus haut, on voit effectivement les deux partitions d'une image pour Raspberry Pi :
FAT32
contenantkernel
, modules, configuration, etcLinux
avec leroot filesystem
(/
) et l'OSmount
monter ces partitions, c'est très simple. On commence par créer deux répertoires pour le montage :Premier montage :
Vérification :
Seconde partition :
Vérification :
Explication :
L'option
loop
permet de monter ce genre d'image (ça pourrait être une ISO de CD, DVD ou Bluray aussi).L'option
offset
, comme sa traduction l'indique, permet un décalage d'un certain nombre d'octets. Ici, on sait que les partitions commencent à8192
et540672
, et que c'est exprimé en secteurs, qu'un secteur fait 512 octets, et donc, on fourni la multiplication grâce à$((<debut> * <nb octets par secteur))
.NB : je maîtrise mal
loop & cie
, et j'ai du "démonter" p1 avant de monter p2, suite à ce message d'erreur :Tout ce que je sais, c'est qu'il existe un nombre limité de
device loop
possible et que c'est paramétrable (option du module, de mémoire).Ici, pour je ne sais quelle raison, j'ai probablement atteint la limite. Limite à 1 semble-t-il …
Je ne vais pas le montrer ici, mais
mount -o loop ...
cache en fait unlosetup
suivit d'unmount
. On pourrait décomposer les deux et peut-être éviter ce message d'erreur.NB2 : le
l
del p1
etl p2
est unalias
que je me refais partout :# au pif
Posté par NeoX . Évalué à 2.
et simplement cliquer 2x sur l'image ne monterait pas le support tout seul, avec 2 lecteurs dans le navigateur de fichier ?
c'est quand meme plus simple que de chercher les offset à la main à partir des partitions…
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.