J'essaie de créer une image de distribution (via l'interface de distribution de Linux). dd
) pour un système d'exploitation compatible avec les disques durs et les supports flash. J'ai réussi à créer l'image, mais je n'arrive pas à la faire démarrer correctement. Je vais vous présenter les étapes ci-dessous :
-
Cette opération crée un fichier vierge qui contient l'intégralité de l'image :
dd if=/dev/zero of=/tmp/test.img bs=512 count=1250000
-
Associe un fichier de périphérique de bouclage au fichier image :
losetup /dev/loop0 /tmp/test.img
-
Avant de pouvoir manipuler les
parted
nous DEVONS définir un type d'étiquette de support :parted -s /dev/loop0 mklabel msdos
-
La première partition doit être de 512 Mo dans le fichier image :
parted -s -a opt /dev/loop0 mkpart primary ext2 '0%' 512MB
-
Définissez la première partition comme étant "amorçable" :
parted -s /dev/loop0 set 1 boot on
-
Crée un système de fichiers Ext2 sur la première partition :
mkfs.ext2 -b 1024 /dev/loop0p1
-
Installe l'étape 1 du code d'amorçage de Grub tout en préservant la table de partition créée ci-dessus :
dd if=/boot/grub/stage1 of=/dev/loop0 bs=446 count=1
-
Installe l'étape 2 du code d'amorçage de Grub après les 512 premiers octets du média (en ignorant l'étape 1 et la table de partition) :
dd if=/boot/grub/stage2 of=/dev/loop0 bs=512 seek=1
-
Monter la première partition du fichier image sur un point de montage :
mount /dev/loop0p1 /mnt/image
-
Copiez toutes les données dans la partition et démontez-la.
-
dd
le fichier image sur un disque dur ou un support flash.
En suivant ces étapes, je peux dd
le fichier image sur un disque dur ou une clé USB et démarrer dans une console Grub où je peux démarrer, mais seulement en spécifiant le nom du fichier image. root
, kernel
et initrd
valeurs. Si j'essaie d'installer l'héritage Grub via root
y setup
je n'obtiens aucune erreur mais l'appareil démarre en charabia. L'exécution et la fdisk -l
produit :
Partition 1 has different physical/logical beginnings (non-Linux?):
phys(0,32,33) logical(0,37,14)
Partition 1 has different physical/logical endings:
phys(62,53,55) logical(336,27,19)
Je pense qu'il y a un problème avec la façon dont le fichier image est créé puisqu'il est responsable de la création de la table des partitions (qui est en désordre). Est-ce que quelqu'un peut utiliser ces étapes (modifiées) pour produire un support de démarrage fonctionnel ?