Comment grub peut sauver le monde

Tiens merci c’est gentil ! J’ai eu beau cherché partout sur le net, je galère… :wink: La seule autre solution que j’ai vue qui permettrait d’avoir GeeXboX dans le GRUB c’est de l’installer sur le disque. Franchement c’est mieux si on peut se permettre de simplement copier un fichier iso à chaque nouvelle version, non ? :mrgreen:

Bon je suis dans mes tests et je viens de voir que ça fonctionne pas avec la netinstal de Debian, il boot comme il faut mais il cherche le CD pendant l’installation …

Une autre solution qui semble marcher mieux c’est de copier le contenu de l’iso dans une partition.

J’ai voulu aussi tester cette astuce qui est interressante, mais comme j’ai une partition /boot de 128, j’ai copier le noyau vmlinux dans ma partiton qui est monté dans /home qui se nomme /dev/sdc7 ainsi que l’initr et l’archive iso.

Dans grub j’ai mis:

label Live
root (hd0,6)
kernel /vmlinuz root=/dev/sda7 ro
initrd /initrd.img
savedefault

Sa boot mais pas plus loin l’initram. Mais il doit bien y avoir un moyen de booter sans decompresser l’iso.
Et je ne vois pas pourquoi il faudrai mettre l’iso dans /boot.

Ps: j’ai essayer avec la nouvelle ubuntu.

Ça n’est en rien une obligation mais je ne sais pas si on peut metre l’iso autre part qu’à la racine d’une partition.

Je met l’iso dans /boot pour pouvoir faire mes installation directement (chose qui ne marche pas avec Debian d’ailleurs).

Ok d’accord, moi j’ai mis le .iso a la racine de ma partition montée dans /home. Mais ca bloque sur l’initrd. Je ne comprend pas comment la procedure de boot peut comprendre qu’il devrait monter l’iso est booter dessus. Tu modifie autre chose? Le fichier linuxrc par exemple?

Non est je suis toujours à la recherche du pourquoi ça fonctionne :question:

oui moi aussi, et c’est encore plus étrange si tu me dis que tu copie le .iso dans ta partition /boot ainsi que vmlinuz et l’initrd ca marche, et que moi je le met dans ma partition /home ca ne marche pas :open_mouth: .

Je capte vraiment pas comment l’initram peut monter l’iso et booter dessus…

(initramfs)mkdir /test
(initramfs) modprobe loop
 loop: module loader
(initramfs)mount /root/ubuntu.iso /test
mount: Couldn't setupe loop device
mount: Mounting (null) on /test/ failed: No such file or directory
(initramfs)

C’est bien l’iso de la derniere ubuntu que tu as réussi à booter dessus?

En plus lor du boot le script init par en sucette:

Mouting /sys on /root/sys failed: no such device or directory..

Normal vu qu’on est dans ma home, il faudrai monter l’iso dans /root pour que ca marche.

Tu as plusieurs façons de bouter sur un CD:

  1. L’initrd contient un système de fichiers complet et suffisant: C’est le cas de la plupart des CDs d’installations ou de réparation. Il te faut faire un système minimaliste. Busybox est là pour ça. Tu peux voir par exemple http://franboisson.free.fr/Isos/BootCD-2.6-shell.iso

  2. L’initrd se contente de chercher une racine et de la monter. Cette racine est en général un fichier cloop ou équivalent sur le CD. L’initrd contient un script qui cherche un CDROM avec le bon fichier dessus (c’est comme ça que j’ai fait par exemple). On peut chercher ce fichier partout. Personnellement, je charge le support USB puis cherche une éventuelle clef USB, puis je cherche un éventuelle CDROM IDE et enfin je charge tous les modules SATA (sans finesse sur ce coup) et je cherche un éventuel CDROM SATA.

  3. L’initrd récupère l’arborescence du CD et raccroche les fichiers à son arborescence. Je ne connais pas bien cette méthode.

Le problème est que lors du boute (boot), le BIOS est utilisé pour charger le noyau et éventuellement un fichier (l’initrd) puis, dès que le contrôle est passé au noyau, celui ci ne peut plus utiliser ce BIOS (donc lire sur l’unité de boute) ni même savoir sur quelle unité il a bouté (il a quand même accès à la chaine d’appel de lilo/grub/isolinux).

Busybox est bien installer dans cette initrd, je devrai pas avoir de soucis pour booter sur l’iso si je pouvais la monter, non?

Regardes ce que fait le programme /linuxrc de l’initrd

J’ai regarder le script init (pas de linuxrc, mais il le remplace), ainsi que les scripts qu’il appelle dans /scripts. Y a rien qui me saute au yeux expliquant pourquoi ca marcherai de booter sur un iso. Surtout si on ne peut le monter.

J’ai copié le répertoire GEEXBOX de l’iso dans la racine (garde le répertoire sinon y en a partout c’est pas propre), rajouté l’entrée pour GEEXBOX dans le menu et copié les fichiers initrd et vmlinuz dans le répertoire /boot.

et puis je viens de revoir ton code pour l’initrd… tu essaies de charger depuis le cdrom, mais t’en as pas. Pour info voila le mien (de tete, la chuis au boulot), j’utilise la télécommande MS media center (je sais c’est le mal tout ca).

title GeeXboX root (hd0,0) kernel /vmlinuz root=/dev/ram0 rw init=linuxrc boot=sda1 lang=fr splash=silent vga=788 keymap=azerty remote=mceusb receiver=mceusb2 video=vesafb:ywrap,mtrr initrd /initrd.gz boot

J’essaye d’installer UbuntuStudio à partir d’une Debian/Lenny, en vain.
J’ai suivi le indications précédentes et ce site http://www.nautile.org/Installer-une-distribution-sans.html, mais le mount /dev/sda7 /cdrom me revoie “No such device” ou “Invalid argument”.
Cela vient-il du fait que c’est un disque sda ? (pourtant il réussit bien à charger le noyau grâce a initrd).
Quelqu’un a-t-il réussit a installer Ubuntu de cette façon ?