#1 Le 20/04/2006, à 23:17
Cdrom bootable avec Grub et menu.lst
Ayant eu besoin de faire un cdrom bootable avec grub et menu.lst j'en ai gardé une trace pour ce tuto.
Il me fallait la totalité de /boot/, mais pour faire un cdrom grub seuls menu.lst et stage2_eltorito ainsi que éventuellement device.map sont nécessaire.
Mais comme d'un autre côté ça simplifie la réalisation, et la place sur le cdrom ne manquant pas, autant avoir une copie de sauvegarde complète de /boot à l'instant T au cas ou.
Donc la procédure se limite à :
- créer le répertoire iso et le sous répertoire boot :
:~$ mkdir -p iso/boot
- copier /boot/. dans iso/boot/ :
:~$ sudo cp -a /boot/. iso/boot/
* à ce stade il semble préférable d'adapter menu.lst pour le rendre utilisable sur toutes les configurations. Il faudra donc éditer le fichier menu.lst avec nano ou autre éditeur (voir poste #8) :
sudo nano -w iso/boot/grub/menu.lst
et en utilisant le "title" habituel de lancement du système, il faudra créer un nouveau "title", supprimer la première ligne ainsi que la ligne savedefault inutiles, et ajouter le chemin selon la désignation grub sur les lignes kernel et initrd pour avoir au final dans le fichier menu.lst du cdrom (exemple à adapter à votre configuration) :
title Ubuntu, depuis cdrom
kernel (hd0,0)/boot/vmlinuz-2.6.15-20-386 root=/dev/hda1 ro
initrd (hd0,0)/boot/initrd.img-2.6.15-20-386
boottitle Ubuntu, kernel 2.6.15-20-386 # menu d'origine
root (hd0,0)
kernel /boot/vmlinuz-2.6.15-20-386 root=/dev/hda1 ro quiet splash
initrd /boot/initrd.img-2.6.15-20-386
savedefault
boot
Puis puis ctrl + o et ctrl + x pour enrégistrer et sortir après avoir fait les modifications.
Ensuite on poursuit la réalisation de l'iso :
- copier stage2_eltorito depuis /lib/ vers iso/boot/grub
:~$ sudo cp /lib/grub/i386-pc/stage2_eltorito iso/boot/grub
Sur les versions récentes de la distribution, les différents stage_ sont maintenant dans /usr/lib/grub/i386-pc/
La commande sera donc :
sudo cp /usr/lib/grub/i386-pc/stage2_eltorito iso/boot/grub
- on vérifie qu'il est bien là :
:~$ ls -al iso/boot/grub/stage2_el*
-rw-r--r-- 1 root root 105428 2006-04-20 18:38 iso/boot/grub/stage2_eltorito
- générer avec mkisofs l'image bootable grubcd.iso basée sur stage2_eltorito avec boot.catalog depuis le répertoire iso (à noter que la commande est notée sur une seule ligne) :
:~$ sudo mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grubcd.iso iso
Les commentaires générés par mkisofs se terminent dans mon cas par ces lignes :
Total translation table size: 2048
Total rockridge attributes bytes: 5180
Total directory bytes: 8192
Path table size(bytes): 34
Max brk space used 21000
30159 extents written (58 MB)
Ne pas tenir compte de la taille de 58 MB, qui vient du fait que je devais y ajouter certains éléments inutiles pour un simple cdrom grub.
Si vous voulez vérifier votre image, vous pouvez la monter :
:~$ sudo losetup -f
:~$ sudo losetup /dev/loop0 grubcd.iso
:~$ sudo mount /dev/loop0 /mnt
Puis pour la démonter :
:~$ sudo umount /dev/loop0
:~$ sudo losetup -d /dev/loop0
Il ne reste plus qu'à graver l'image grubcd.iso avec le logiciel de votre choix.
Dernière modification par cep (Le 02/05/2007, à 12:22)
Hors ligne
#2 Le 21/04/2006, à 14:03
Re : Cdrom bootable avec Grub et menu.lst
salut,
merci pour ce partage de connaissance ![]()
Ce tuto est interessant quand, pour une raison inconnue et inconcevable ( :d ) , on est amené à reinstaller windows, ce dernier étant bien connu pour (entre autre) s'accaparer le MBR...
Quelle a été justement la raison dans ton cas de faire ce cd de sauvegarde de /boot ?
Hors ligne
#3 Le 04/05/2006, à 15:33
Re : Cdrom bootable avec Grub et menu.lst
EXCELLENT tuto cep : clair, net et précis.
![]()
J'ai tout bien suivi ta procédure en faisant des recopies des lignes de commande pour être sur de ne pas me planter. Je suis arrivé au bout de mon grubcd.iso qui fait 17.9 Mo, l'ai gravé sur un CD-RW.
Pour info je l'ai fait à partir de la partition Kubuntu qui a été montée en dernier, l'autre étant Ubuntu.
Lorsque je boote sur le CD :
si je choisis Ubuntu, j'ai error 29 Disk write error
si je choisis KUbuntu, j'ai error 25 Disk write error
As-tu une idée d'où ça peut provenir. Pourquoi veut-il écrire sur le CD (apparemment ?!?)
Question subsidiaire si je n'abuse pas : à supposer que ceci soit résolu, comment remettre en bon état de marche mon mbr qui aura été écrasé par Windows afin de ne pas rebooter à chaque fois via le CD
Merci pour ta réponse cep car ton tuto correspond exactement à ce que je veux faire
![]()
Dernière modification par winux (Le 04/05/2006, à 15:35)
http://i3.tinypic.com/4g8nio8.png
Freebox dégroupée - 7 Mbps utiles - Triple boot : Ubuntu 12.04 / Ubuntu 11.04 / Windows 7 - Ecran : Samsung 23" -
CM : Gigabyte P67A UD3 B3 - CPU : Intel Quad Core i5 3.3 GHz - GPU : nVidia Gigabyte N430 - RAM : 4 Go DDR3 - HD : 1To x 2
Hors ligne
#4 Le 04/05/2006, à 17:27
- cep_
Re : Cdrom bootable avec Grub et menu.lst
ok winux.
Alors dans ce cas, tu utilises n'importe quelle touche pour revenir au menu et avec la touche e tu passes en édition pour modifier la première ligne. Tu effaces toute la lignes et la remplaces par :
rootnoverify (hd0,0) # adapte (hd0,0) à ta configuration puis enter pour confirmer.
Tu descends à la deuxième ligne et idem tu effaces tout pour remplacer par :
chainloader +1 # un espace après le r et pas d'espace entre + et 1 puis enter
Tu effaces la troisième ligne et la remplaces par :
boot # puis la touche enter.
Tu effaces la dernière ligne puis enter. ENfin revenu à l'affichage du menu, tu utulises la touche b (pour booter) et ça devrait fonctionner.
Pour restaurer grub, lorsque tu seras dans ton système, tu ouvres un terminal :
sudo grub --batch
find /boot/grub/stage1 # ou suivant ta config find /grub/stage1
root (hd?,?) # suivant ce qui a été répondu plus haut.
setup (hd0)
quit
Tu peux aussi le faire depuis le cdrom en utilisant la touche c pour avoir une console grub et ensuite tu démarres sans le cd .
Bonne continuation;
cep
#5 Le 05/05/2006, à 08:35
Re : Cdrom bootable avec Grub et menu.lst
Après test sur plusieurs autres pc, le fonctionnement du cdrom n'est pas garanti dans tous les cas, j'édite donc le premier message pour y ajouter un avertissement avant de pouvoir faire plus de tests.
Hors ligne
#6 Le 05/05/2006, à 09:35
Re : Cdrom bootable avec Grub et menu.lst
Alors, je peux booter les divers pc testés (4) avec ce menu (simplement ces 3 lignes):
kernel (hd0,0)/vmlinuz-2.6.15-21-386 root=/dev/hda1 ro
initrd (hd0,0)/initrd.img-2.6.15-21-386
boot
DAns le week-end je testerai d'autres pc encore.
Le kernel et l'init sont à adaptès, j'utilise la complétion. On peut utiliser aussi le générique de /
Hors ligne
#7 Le 05/05/2006, à 16:27
Re : Cdrom bootable avec Grub et menu.lst
Merci pour ce tuto ![]()
Pour monter une image iso cette commande me suffit :
sudo mount -o loop toto.iso /mntHors ligne
#8 Le 05/05/2006, à 18:35
- cep_
Re : Cdrom bootable avec Grub et menu.lst
@ bruno : de rien
.
Et pour la commande de mount, oui, tout à fait.
#9 Le 07/05/2006, à 16:05
Re : Cdrom bootable avec Grub et menu.lst
Après tests sur plusieurs machines de configurations différentes, il semble préférable d'éditer le fichier menu.lst pour y apporter quelques modifications.
En utilisant le "title" habituel de lancement du système, il faudra créer un nouveau "title", supprimer la première ligne ainsi que la ligne savedefault inutiles, et ajouter le chemin selon la désignation grub sur les lignes kernel et initrd pour avoir au final dans le fichier menu.lst du cdrom (adapté à votre configuration) :
title Ubuntu, depuis cdrom
kernel (hd0,0)/boot/vmlinuz-2.6.15-20-386 root=/dev/hda1 ro
initrd (hd0,0)/boot/initrd.img-2.6.15-20-386
boottitle Ubuntu, kernel 2.6.15-20-386
root (hd0,0)
kernel /boot/vmlinuz-2.6.15-20-386 root=/dev/hda1 ro quiet splash
initrd /boot/initrd.img-2.6.15-20-386
savedefault
boot
Donc avec nano ou autre éditeur :
sudo nano -w iso/boot/grub/menu.lst
Puis puis ctrl + o et ctrl + x pour enrégistrer et sortir après avoir fait les modifications.
Ou autre méthode :
sed -n '100,130p' iso/boot/grub/menu.lst
pour afficher uniquement l'espace interessant qui servira de modèle puis :
sudo mv iso/boot/grub/menu.lst iso/boot/grub/menu.lst_old
Et enfin créer un nouveau menu.lst contenant le stric minimum (exemple à adapter à votre configuration) :
cat > iso/boot/grub/menu.lst
timeout 10
title Ubuntu, depuis cdrom
kernel (hd0,0)/boot/vmlinuz-2.6.15-20-386 root=/dev/hda1 ro
initrd (hd0,0)/boot/initrd.img-2.6.15-20-386
boot
et enfin CTRL + c pour sortir et enrégistrer.
On pourra bien sûr utiliser ce cdrom sur toute autre machine grâce à la console grub et à l'auto-complétion.
Sur une machine ayant par exemple une partition réservée pour /boot sur hdb1 et le système sur hdb2, le title ressemblera à ceci :
kernel (hd1,0)/vmlinuz-2.6.15-20-386 root=/dev/hdb2 ro
initrd (hd1,0)/initrd.img-2.6.15-20-386
boot
(/boot/ disparait, (hd1,0) pour la partition /boot sur hdb1 et root=/dev/hdb2 pour le chemin vers le système sur hdb2)
* Edit : j'ai ajouté cette partie dans le tuto du premier poste.
Dernière modification par cep (Le 07/05/2006, à 16:18)
Hors ligne
#10 Le 08/05/2006, à 23:08
Re : Cdrom bootable avec Grub et menu.lst
bonsoir CEP,
tous d'abord merci pour ton tuto,;)
cela faisait un moment que j'essayais de comprendre cette démarche mais en vain
voila voici le problème qui me mène vers toi,
j'ai installé UBUNTU sur un disque dur usb, pas de problème cela marche à peu près partout. J'aimerai me servir de ton tuto pour booter sur les postes qui refusent le boot sur USB. pour faire le CD ROM passer la main au DD USB
Dans mon menu.lst à l'origine j'avais
title Ubuntu, kernel 2.6.12-10-386
root (hd0,0)
kernel /boot/vmlinuz-2.6.12-10-386 root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-2.6.12-10-386-usb
savedefault
bootJe me suis servi de ton tuto pour réaliser ceci
title Ubuntu, depuis cdrom
kernel (hd0,0)/boot/vmlinuz-2.6.12.10-386 root=/dev/sda1 ro quiet splash
initrd (hd0,0)/boot/initrd.img-2.6.12-10-386-usb
bootmais j'ai le résultat
error 15 file not found ![]()
Vois tu ou j'ai put faire l'erreur?
je t'en remercie par avance.
Hors ligne
#11 Le 08/05/2006, à 23:42
- cep_
Re : Cdrom bootable avec Grub et menu.lst
Bonsoir couf,
À priori, je dirais que sda1 ne peut être (hd0,0) puisque le bios ne peut booter sur l'usb.
Donc, au cas ou il n'y aurait pas d'autre problème, voir déjà quelle pourrait être la dénomination de ce disque usb, qui de toute manière viendra après les disques internes puisque non bootable.
Une autre solution serait d'utiliser isolinux (paquet syslinux). Avec un isolinux.cfg du genre :
default linux
timeout 10
label linux
kernel vmlinuz
append initrd=ton_initrd_usb root=/dev/sda1
Je n'ai jamais testé ce genre de boot sur usb.
Bonne continuation.
cep
#12 Le 09/05/2006, à 13:51
Re : Cdrom bootable avec Grub et menu.lst
Bonjour cep,
effectivement je me suis apperçu que ce n'était pas (hd0,0) mais (hd1,0)
le cédérom à quad même un avantage
au démarrage de grub je tape [C]
puis
grub> root (hd0,(touche [tab]
réponse du système partition num:0, Filesystem type is ext2fs, partion type 0x83
partition num:1, Filesystem type is ext2fs, partion type 0x83
grub> kernel /boot/vmlinuz[tab]
réponse: possibles files are : vmlinuz vmlinuz-26.9-386.mdk
je recommence avec hd1 puis ensuite je reboot mon système.
j'aurais une question à te poser s'il te plait, a ta connaissance est il possible de lancer un script au démmarage de GRUB? comme pour charger certains modules ou scanner les partitions
Merci d'avance:)
Hors ligne
#13 Le 09/05/2006, à 14:52
- cep_
Re : Cdrom bootable avec Grub et menu.lst
Tout à fait d'accord avec l'avantage de grub grâce à sa console. Ce qui permet au cdrom d'être utilisé sur d'autres machines, et pas seulement sur celle pour laquelle il a été gravé.
Pour le shell de grub, tu trouvera une liste de certaines commandes dans le manuel :
http://www.linux-france.org/article/sys/chargeurs/ix86/grub/grub-manual-fr.html#Commandes%20de%20la%20ligne%20de%20commande%20et%20du%20menu
de même que dans :
file://localhost/usr/share/doc/grub-doc/html/grub_toc.html si tu installes grub-doc
mais au niveau de grub tu n'as pas encore un shell complet. Par contre tu peux utilser cat pour, par exemple, consulter fstab sur un pc que tu ne connais pas, ou tout simplement find sur des cibles "statégiques" ![]()
#14 Le 19/07/2007, à 15:48
Re : Cdrom bootable avec Grub et menu.lst
Bonjour,
il y a quelque jour, j'ai installé Faisy sur un DD externe et depuis je cherche à créer un CD de boot comme celui-ci. J'ai suivi toute les étapes et mon CD boot (c'est déjà çà !!) mais pas le disque dur.
J'ai fait un menu.lst plutot complet afin de trouver la bonne config et je me retrouve soit avec des erreurs 15, soit avec des erreurs 17. (voir ci-dessous mon menu.lst).
J'avais utilisé auparavant un cd de boot mais pour Ubuntu 6. Mon DD bootait mais j'avais de gros problème de drivers... Et la ligne qui faisait booter mon DD est celle correspondant à "Ubuntu, depuis cdrom3.
Or maintenant, c'est ligne fait rebooter mon PC et c'est tout.
Auriez vous une idée pour résoudre mon affaire.
Bonne continuation,
Merci d'avance
Heiden
title Ubuntu, depuis cdrom1
kernel (hd0,0)/boot/vmlinuz-2.6.15-20-386 root=/dev/sdb1 ro
initrd (hd0,0)/boot/initrd.img-2.6.15-20-386
boot
title Ubuntu, depuis cdrom4
kernel (hd1,0)/boot/vmlinuz-2.6.15-20-386 root=/dev/sdb1 ro
initrd (hd1,0)/boot/initrd.img-2.6.15-20-386
boot
title Ubuntu, depuis cdrom2
kernel (cd)/boot/vmlinuz-2.6.15-20-386 root=/dev/sdb1 ro
initrd (cd)/boot/initrd.img-2.6.15-20-386
boot
root(cd)
title Ubuntu, depuis cdrom3
kernel /boot/vmlinuz-2.6.15-20-386 root=/dev/sdb1 ro
initrd /boot/initrd.img-2.6.15-20-386
boot
title Ubuntu, kernel 2.6.15-20-386 # menu d'origine
root (hd0,0)
kernel /boot/vmlinuz-2.6.15-20-386 root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-2.6.15-20-386
title Ubuntu, kernel 2.6.15-20-386 # menu d'origine
root (hd0,0)
kernel /boot/vmlinuz-2.6.15-20-386 root=/dev/sdb1 ro quiet splash
initrd /boot/initrd.img-2.6.15-20-386
savedefault
bootHors ligne
#15 Le 30/01/2008, à 03:54
- Anne-So
Re : Cdrom bootable avec Grub et menu.lst
ok winux.
Alors dans ce cas, tu utilises n'importe quelle touche pour revenir au menu et avec la touche e tu passes en édition pour modifier la première ligne. Tu effaces toute la lignes et la remplaces par :
rootnoverify (hd0,0) # adapte (hd0,0) à ta configuration puis enter pour confirmer.Tu descends à la deuxième ligne et idem tu effaces tout pour remplacer par :
chainloader +1 # un espace après le r et pas d'espace entre + et 1 puis enterTu effaces la troisième ligne et la remplaces par :
boot # puis la touche enter.Tu effaces la dernière ligne puis enter. ENfin revenu à l'affichage du menu, tu utulises la touche b (pour booter) et ça devrait fonctionner.
Pour restaurer grub, lorsque tu seras dans ton système, tu ouvres un terminal :
sudo grub --batch
find /boot/grub/stage1 # ou suivant ta config find /grub/stage1
root (hd?,?) # suivant ce qui a été répondu plus haut.
setup (hd0)
quitTu peux aussi le faire depuis le cdrom en utilisant la touche c pour avoir une console grub et ensuite tu démarres sans le cd .
Bonne continuation;
cep
Bonjour, j'ai suivi ces conseils pour tenter de réparer l'horreur que j'ai fait subir à mon ubuntu (j'ai supprimé udev et ses dépendances pour le mettre à jour, je voulais le réinstaller par la suite mais je n'ai pas réussi), au premier reboot il me donne un écran noir de grub avec une error 15 et quand j'applique vos conseils, j'obtiens une erreur 13, je suis perdue, j'ai des données importantes dans mes e-mails ou autre que bien sur je n'ai pas sauvegardé (maudit sois-je). Pouvez-vous m'aider s'il vous plait? Je vous remercie d'avance.
Pages : 1
- Accueil
- » Forum
- » Trucs, astuces et scripts utiles
- » Cdrom bootable avec Grub et menu.lst