[.img] agrandir une image .img de clé d'installation
Publié : lun. 14 déc. 2009, 10:48
Je veux mettre archlinux-2009.08-core-i686.img qui fait 363.8Mo sur une clé USB de 4Go.
J'ai essayé avec la commande:
Ca fonctionne, et la clé boote sans aucun problème! Mais elle est ensuite reconnue comme un disque de 363.8Mo... Et je ne peux rien ajouter d'autre sur la clé.
Si je partitionne la clé avec "fdisk" ou autre et que je fais:
pour garder environ 3Go dans une autre partition /dev/sdb2:
Ben ça ne boote pas!
Donc j'ai cherché une autre solution, et j'ai commencé par essayer de monter l'image de disque... et là, peu d'aide sur le net : soit ça me marche pas, soit je trouve des truc pour des fichiers en ".img" qui sont en fait des images de cd-rom... sans intérêt ici.
Voici la première partie de la solution que j'ai pu trouver:
CE QUI NE MARCHE PAS:
dmesg | tail ne sort rien de plus intéressant que le message d'erreur.
CE QUI MARCHE: LOSETUP + MOUNT
J'ai utilisé "losetup" après avoir fouiné sur internet!
Donc commencer par interroger "fdisk" et/ou "file" pour savoir ce qui est dans "archlinux-2009.08-core-i686.img":
* voici fdisk
Voici file:
J'ai donc pu savoir que les blocs font bien 512 octets (taille habituelle, mais je préfère vérifier) et que le secteur de début est au "startsector" 63: j'ai fait le calcul suivant POUR trouver où commencent, en octets, les données réelles de la partition avec "bc":
J'ai ainsi enfin pu "attacher" l'image d'archlinux sur un périphérique "loop" non occupé (loop0 ici, mais ça peut-être loop1, loop2, etc...) puis monter le périphérique loop:
ET VOILA, MON IMAGE .IMG EST MONTEE, MAIS:
Comment l'agrandir sur place et arriver à mes 4Go?
Y-a-t'il plus simple en ligne de commande ?
Il y a archiso, mais c'est de l'iso donc pour cd-rom; même si ça doit marcher sur clé USB, je trouve qu'il est temps d'avoir un truc spécifique pour les clés...
P.S.: pour démonter tout ça en ligne de commande et ne pas avoir de message d'erreur du type "démontage impossible" ou "ressource occupée:
J'ai essayé avec la commande:
Code : Tout sélectionner
dd if=archlinux-2009.08-core-i686.img of=/dev/sdb
Si je partitionne la clé avec "fdisk" ou autre et que je fais:
Code : Tout sélectionner
dd if=archlinux-2009.08-core-i686.img of=/dev/sdb1
Ben ça ne boote pas!
Donc j'ai cherché une autre solution, et j'ai commencé par essayer de monter l'image de disque... et là, peu d'aide sur le net : soit ça me marche pas, soit je trouve des truc pour des fichiers en ".img" qui sont en fait des images de cd-rom... sans intérêt ici.
Voici la première partie de la solution que j'ai pu trouver:
CE QUI NE MARCHE PAS:
Code : Tout sélectionner
$ sudo mount archlinux-2009.08-core-i686.img /mnt
mount: /media/NOLIMIT/linux/archlinux-2009.08-core-i686.img n'est pas un périphérique de type bloc (essayer « -o loop » ?)
Code : Tout sélectionner
$ sudo mount -o loop archlinux-2009.08-core-i686.img /mnt
mount: vous devez spécifier le type de système de fichiers
Code : Tout sélectionner
$ sudo mount -o loop -t ext2 archlinux-2009.08-core-i686.img /mnt
mount : type erroné de syst .de fichiers, option erronée, super bloc
erroné sur /dev/loop2, codepage ou aide manquante ou autre erreur
Dans quelques cas certaines informations sont utiles dans syslog - essayez
dmesg | tail ou quelque chose du genre
CE QUI MARCHE: LOSETUP + MOUNT
J'ai utilisé "losetup" après avoir fouiné sur internet!
Donc commencer par interroger "fdisk" et/ou "file" pour savoir ce qui est dans "archlinux-2009.08-core-i686.img":
* voici fdisk
Code : Tout sélectionner
$fdisk archlinux-2009.08-core-i686.img
Vous devez initialiser cylindres.
Vous pouvez faire cela depuis le menu des fonctions avancées.
Commande (m pour l'aide): p
Disque archlinux-2009.08-core-i686.img: 0 Mo, 0 octets
95 têtes, 61 secteurs/piste, 0 cylindres
Unités = cylindres de 5795 * 512 = 2967040 octets
Identifiant de disque : 0x00000000
Périphérique Amorce Début Fin Blocs Id Système
archlinux-2009.08-core-i686.img1 * 1 129 372455 83 Linux
La partition 1 a des débuts physique/logique différents (non Linux?):
phys=(0, 1, 1) logique=(0, 1, 3)
La partition 1 a des fins physique/logique différentes:
phys=(46, 94, 61) logique=(128, 52, 41)
Code : Tout sélectionner
$ file archlinux-2009.08-core-i686.img
archlinux-2009.08-core-i686.img: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, stage2 address 0x2000, stage2 segment 0x200; partition 1: ID=0x83, active, starthead 1, startsector 63, 744910 sectors, code offset 0x48
Code : Tout sélectionner
512*63
32256
Code : Tout sélectionner
$ losetup -o 32256 /dev/loop0 archlinux-2009.08-core-i686.img
sudo mount /dev/loop0 /mnt -o loop
Comment l'agrandir sur place et arriver à mes 4Go?
Y-a-t'il plus simple en ligne de commande ?
Il y a archiso, mais c'est de l'iso donc pour cd-rom; même si ça doit marcher sur clé USB, je trouve qu'il est temps d'avoir un truc spécifique pour les clés...
P.S.: pour démonter tout ça en ligne de commande et ne pas avoir de message d'erreur du type "démontage impossible" ou "ressource occupée:
Code : Tout sélectionner
$ sudo umount /mnt
$ losetup -d /dev/loop0