Lancer iso sur usb depuis grub

Bonjour à tous,

petit casse tête après avoir défoncé ma debian (très correctement …)

-mon pc (zd7000) n’a plus de lecteur cdrom en état,
-refuse de booter directement sur une clé usb (tout essayé),
-il ne reste plus que grub2.

Pourriez-vous me donner des informations sur la manière de booter une iso debian, stockée sur une clé usb, le tout depuis une invite de commande grub2 (si faisable ?)
Mes recherches me renvoient toutes sur des méthodes qui n’ont rien donné.

Cordialement,
Gaël.

Je ne suis pas certain de comprendre la question. Je n’ai jamais vu GRUB booter sur une image iso. Il charge un kernel de boot , et monte un système de fichier provisoire.
Mais GRUB à tellement de ressources cachées que j’ai peut étre loupé quelque chose …

Si tout va bien, la clé usb est connue de grub comme un disque externe et les commandes successives suivantes devraient suffire.

set root=(hd1,1)
chainloader +1
boot

(hd0,1) est la 1ère partition du premier disque
(hd1,1) est la 1ère partition du deuxième disque
etc

root=(hd1,1)

Si tu as partitionné le support et fait une copie de l’iso sur la partition à la
dd if=image.iso of=/dev/sdb1

Si tu as copié l’iso sur le disque entier à la
dd if=image.iso of=/dev/sdb

définir root (hd1) sans préciser de partition.

Si tu as stocké le fichier iso au sein de la partition, la procédure est plus compliquée. Pour un live-cd linux, il faut retenir la partition qui l’abrite, retenir le fs utilisé sur ce stockage,sonder le contenu de l’image iso,porter attention à l’agencement choisi du live, regarder isolinux, retenir le nom du noyau qui sera lancé par le live…

Autre approche : placer une installation debian sur la clé sans passer par l’installeur.

Clone ou simple copie
Démarrer le système debian installé sur le disque interne (ou sur un autre PC).
Partitionner la clé (swap /, /usr ,/home …),
monter les partitions de la clé, reproduire l’installation par simple copie (exclure montages tiers, contenu /proc, /run, /tmp…), faire détecter ce système par le grub résident (update-grub).

Bonjour,

ce qui ne fonctionne pas :

set root=(hd1,1) chainloader +1 boot
et ce parce-qu’il s’agit d’une image iso, enfin je pense.
J’ai lu quelque part qu’il fallait passer par un loopback.
Quelque chose de ce style plutôt ? (repris sur une page, je ne comprend que la moitié) :

insmod loopback insmod iso9660 set isofile="debian_install.iso" loopback loop (hd1,1)$isofile linux (loop)/casper/vmlinuz iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/debian.seed noprompt quiet splash -- initrd (loop)/casper/initrd.lz

Cordialement,
Gaël

Est-ce que tu as essayé root (hd1) ?
Cette entrée grub délegue le démarrage à une partition (h1,1) ou à un disque (hd1).
Le disque est-il partitionné ? Comment l’image iso a-t-elle été copiée sur l’usb ? Quelle commande ?
Le chainload de la partition ou du disque ne pourra pas démarrer l’image iso si tu es en présence d’une partition au sein de laquelle tu stockes l’image iso.

(hd1,1) deuxième disque, première partition
(hd1) deuxième disque

Casper = ubuntu
Les adresses
/casper/vmlinuz
/casper/initrd.lz
sont relatives à l’image iso qui est stockée à la racine (/image.iso, pas /va/savoir/où/image.iso)
Il faut que tu adaptes ça à ce que l’image iso contient pour éditer /etc/grub.d/40_custom

Remarque ces modules sur l’entrée grub.
insmod loopback
insmod iso9660
Loopback,type de montage particulier
iso9660, cdrom
Pour monter l’image iso, la commande prend l’option loop et le type iso9660 .
Monter l’image en ligne de commande

mount -o loop -t iso9660 image.iso /point/de/montage

Tu peux voir le contenu de l’image iso sans ligne de commande en l’ouvrant au moyen de file-roller, mc … ou d’un navigateur utilisant un quelconque vfs (virtual file system).
Répétons-le, ce modèle opère sur des live-cd linux. Mot-clé : LINUX.
Il s’agit de démarrer linux-xx qui se trouve dans le fichier image.iso qui est stocké dans la partition N du disque sdx.

Pour un fichier iso présent à la racine d’une clé usb supposée être le deuxième disque de la machine (donc hd1 pour grub)

insmod loopback
insmod iso9660
set root=(hd1,1)
loopback loop /image.iso
linux (loop)/install/vmlinuz
initrd (loop)/install/initrd.gz

Si besoin remplacer install par install.386 ou install.amd suivant l’image iso utilisée. On ne profite toutefois pas du menu principal.

EDIT
Pour une iso kfreebsd, on s’en sortirait avec configfile. Pas d’isolinux, grub rules !

Merci pour tout; la clé boot.
Commandes utiles à graver sous le coude.

Mais s’en suis un autre problème. L’installateur debian plante au moment de la détéction du cdrom. Et sans cette étape, impossible de charger les composants suivant pour lancer l’installation. Je peux revenir au menu, en bas il est proposée une invite de commande linux qui se place dans une partition virtuelle. J’ai encore besoin de vous, je ne vois pas comment faire.

Cordialement,
Gaël.

L’installeur s’attend à ce qu’il y ait un lecteur de cd/dvd pour le monter. Comme tu n’a pas de lecteur, il suffit de monter le fichier iso en se servant de loop.

Basculer vers une console virtuelle
Ctrl+Alt+F2

entrée
Tu as les droits de root, pas besoin de su.

Tu crées le point de montage /usb

mkdir /usb

Tu y montes le support usb qui contient l’image iso.
#mount /dev/sdb1 /usb

Tu montes l’image contenue en /usb sur /cdrom

mount -o loop /usb/image.iso /cdrom

Empêcher le démontage:

cd /cdrom

Revenir à tty1
Ctrl+Alt+F1

Démonter

umount /cdrom

ou sinon, avec iso-scan/filename passé en argument

insmod loopback
insmod iso9660
set root=(hd1,1)
loopback loop /image.iso
linux (loop)/install/vmlinuz iso-scan/filename=image.iso
initrd (loop)/install/initrd.gz

Excellent ça fonctionne parfaitement avec la méthode iso-scan.
@etxeberrizahar : monter l’image dans /cdrom me renvoyai un problème d’espace mémoire.

Merci beaucoup pour toute votre aide :slight_smile: Ce forum est simplement toujours aussi incontournable.
Cordialement,
Gaël.

Et cela montre que GRUB2 est vraiment polyvalent.

C’est bien vrai même s’il manque le support des nombreuses plateformes ARM. Leur diversité en est sans doute la cause.

Sur ARM j’utilise uboot. Il y a aussi qi
Ils sont moins polyvalents, mais font le job qu’on leur demande.