Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/08/2011, à 15:02

kerkael

Adapter Grub à une USB créée oar dd

Bonjour,

[Problématique]
J'utilise une clef USB pour l'installation d'une solution par boot sur la clef.
De 4Go, classiquement, une telle clef ne contient qu'une seule version de la solution.
Donc, pour avoir un choix entre plusieurs versions ... il me faut plusieurs clefs de 4 Go.
Ca m'embête, pasque je suis persuadé qu'avec une clef de 32 Go, je pourrais personnaliser le grub pour choisir entre plusieurs  versions.

[Comment est créée la clef USB]
Destruction de toutes les partitions de la clef USB, par gparted
Téléchargement d'un .zip de >800Mo
Décompression du .zip qui en fait maintenant un .img de 3,6GO

dd if=mongrosfichier.img of=/dev/sdb bs=1M count=3650M

[Etat de la clef après la procédure]

fdisk a écrit :

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sdb1   *           5         230     1815345   83  Linux
/dev/sdb2             231         464     1879605   83  Linux
/dev/sdb3               1           4       32098+  83  Linux

mount a écrit :

/dev/sdb3 on /media/boot type ext2 (rw,nosuid,nodev,uhelper=udisks)
/dev/sdb2 on /media/7dff4cf5-187e-4ed2-a3ce-d10e5f033800 type ext3 (rw,nosuid,nodev,uhelper=udisks)
/dev/sdb1 on /media/_ type ext3 (rw,nosuid,nodev,uhelper=udisks

Où l'on voit que l'image .img embarquait en fait 3 partitions, que l'on retrouve à la racine de la clef USB comme partitions principales. Le reste de la clef est inutilisé (28GO dans mon cas)
Dans la partition boot, on trouvera le grub, et son menu tout léger :

cat /media/boot/grub/menu.lst 
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,0)
#          kernel /boot/vmlinuz-version ro root=/dev/sda1
#          initrd /boot/initrd-version.img
#boot=/dev/sda
default=0
timeout=0
#splashimage=(hd0,0)/boot/grub/splash.xpm.gz
#hiddenmenu

serial --unit=0 --speed=115200
terminal --timeout=0 --silent serial console

title  EZStrat USB on Enterprise Linux (2.6.18-194.11.4.el5)
    root (hd0,0)
    kernel (hd0,2)/vmlinuz-2.6.18-194.11.4.el5 ro root=LABEL=/ console=null rhgb quiet
    initrd (hd0,2)/initrd-2.6.18-194.11.4.el5.img
    
title  EZStrat USB Serial Console 
    root (hd0,0)
    kernel (hd0,2)/vmlinuz-2.6.18-194.11.4.el5 ro root=LABEL=/ console=ttyS0,115200 rhgb quiet
    initrd (hd0,2)/initrd-2.6.18-194.11.4.el5.img

Donc tout marche bien dans le meilleur des mondes.

Mais comment créer une clef qui proposerait dans son grub le choix entre les diverses versions de ma solution.

J'ai essayé de rajouter à la mano une partition étendue /dev/sdb4 et d'y coller le dd d'une autre image :

dd if=madeuxiemegrosseimage.img  [b]of=/dev/sdb4[/b] bs=1M count=3650

Ca semble marcher mais la table des partitions est bien plantée. Gparted me donne les 3 précédentes primaires inchangées, puis l'étendue sdb4 que j'ai créée, qui contient un disque logique ... et après sdb4, 2 partitions primaires !!! ce qui en fait 5 en plus de l'étendue. D'ailleurs fdisk fait la tête :

fdisk a écrit :

fdisk -l /dev/sdb
AVERTISSEMENT: données surperflues ignorées dans la table de partition 5
AVERTISSEMENT: données surperflues ignorées dans la table de partition 5

...

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sdb1   *           5         230     1815345   83  Linux
/dev/sdb2             231         464     1879605   83  Linux
/dev/sdb3               1           4       32098+  83  Linux
/dev/sdb4             465        3893    27543442+   5  Etendue
/dev/sdb5   *         469         694     1815345   83  Linux

Les entrées de la table de partitions ne sont pas dans l'ordre du disque

Question
Est-ce que dd me permettrait d'envoyer le contenu des partitions primaires vers des disques logiques ?
Faut-il créer les disque logiques avant, dans ce cas ?

Question 2
Dans le GRUB, est-ce que je pourrais spécifier les disques logiques pour les choix secondaires, pour les root, kernel et initrd, par (hd0,5) (hd0,6) ...

Merci de vos idées

Hors ligne

#2 Le 25/08/2011, à 10:57

kerkael

Re : Adapter Grub à une USB créée oar dd

Ah, merci smile
C'est joli comme outil, mais les diverses versions de mes solutions ne sont pas sur iso.
Comme ce sont des images disques de plusieurs partitions faites par dd, ça ne marcherait pas.

Bon, j'ai déjà compris que sur les 3 partitions qui sont normalement issues d'un de mes .img, il y en a toujours une commune, qui charge un petit environnement, qui lancera depuis /etc/rc2.d/ le script automatique d'installation de l'OS et de l'APPLI qui est censé écraser mon appliance.
Je crois que je vais devoir jouer sur le contenu de ce script pour indiquer où aller chercher la bonne version à installer plutôt que de déterminer sur quelle partition booter.

Hors ligne