web-dev-qa-db-fra.com

Comment démarrer à partir d'un fichier .iso dans GRUB2?

Y a-t-il un moyen de faire cela?

18
Lincity

Cela peut être beaucoup plus facile que l'impression que vous obtenez de toutes les explications détaillées sur le web. Je viens de faire ce qui suit sur Ubuntu 12.04 pour démarrer FreeDOS .iso pour une mise à jour de firmware

  • Installer grub-imageboot
  • copiez vos fichiers .iso dans/boot/images /
  • lancer update-grub2

Ou copiez/collez ces:

Sudo -s
apt-get install grub-imageboot
mkdir /boot/images/
cp $YOUR_ISO_FILE.iso /boot/images/

update-grub2

c'est tout.

Parfois, vous aurez peut-être besoin de 2 autres étapes avant d'exécuter update-grub2:

Si vous ne l'avez jamais fait auparavant, vous devez éditer/etc/default/grub pour que le menu grub apparaisse au démarrage:

## To show the menu, disable the hidden_timeout, and set a timeout
#GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=10

Pour certaines images .iso, vous devrez peut-être ajouter cette option dans/etc/default/grub-imageboot: (J'en avais besoin pour mon fichier FreeDOS .iso)

ISOOPTS="iso raw"

Si vous avez édité une de ces config. fichiers, vous devez exécuter update-grub2 à nouveau.

Mise à jour: Voici le menu résultant résultant de "dma_k"

menuentry "Bootable ISO Image: SV100S2_64_128_120229" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root 6ca082d0-63d0-48c3-9e5f-2ce5d7a74fe4
    linux16 /boot/memdisk iso raw
    initrd16 /boot/images/SV100S2_64_128_120229.iso
}

C'était pour une image FreeDOS avec une mise à jour du firmware ou autre.

9
mivk

Je suppose que vous voulez ajouter une entrée .iso au menu GRUB et la démarrer?

J'ai trouvé cette information sur les forums Ubuntu

8
Mark Rooney

Je suis venu ici parce que j'en avais marre de graver d'innombrables images ISO 9660 démarrables et que je voulais donc utiliser GRUB 2 à bootstrap un FreeDOS pour la mise à jour du microprogramme/microcode des disques durs Seagate. En complément ou comme alternative à la réponse de mivk (en utilisant memdisk de syslinux), voici ce que j'avais fait pour tirer parti de la puissance de GRUB 2:

  1. Installez le package syslinux-common (pour utiliser memdisk à l'intérieur de celui-ci; grub-imageboot est un package de hook non essentiel)
  2. Appuyez sur la touche 'c' (mnémonique pour la commande) pour activer la commande Invite du mini-shell intégré de GRUB 2 (ou, plus précisément, du shell minimal de type BASH).
  3. Émettez les 3 lignes de commandes dans le mini-shell du GRUB 2:
   linux16 (hd0,gpt2)/usr/lib/syslinux/memdisk iso raw
   initrd16 (hd0,gpt3)/myUserAccount/download/Barracuda-ALL-GRCC4H.iso
   boot
   # where Barracuda-ALL-GRCC4H.iso is a FreeDOS-based ISO 9660 image, and 
   # the mathematical 2-tuples or ordered pairs, (hd0,gpt2) and (hd0,gpt3), 
   # are GRUB 2's respective device notations for my rootfs partition 
   # (e.g., /dev/sda2) and home partition (e.g., /dev/sda3).
   # NOTE: This procedure also applies to Seagate's SeaTools (based on 
   #       FreeDOS as well); just substitute the file SeaToolsDOS223ALL.iso 
   #       for Barracuda-ALL-GRCC4H.iso.

Les informations sur memdisk de syslinux se trouvent à http://www.syslinux.org/wiki/index.php/MEMDISK

En manipulant les commandes directement dans le mini-shell, cette procédure est plus souple et plus souple que la plupart des méthodes susmentionnées, car vous n'avez pas besoin de vous soucier de modifier et de mettre à jour les configurations de GRUB 2 à chaque fois que vous voulez essayer un. distribution Linux différente ou un CD live basé sur BSD.

Actuellement, ce sont ces 4 lignes de commandes que l'on peut utiliser comme modèle générique dans le mini-shell du GRUB 2, c'est-à-dire le loopback loopback-linux-initrd-boot séquence plus quelques arguments passés au noyau donné, par exemple, à bootstrap autant d'images ISO Linux courantes que possible (dans ce cas, il s'agit d'une ligne de commande à 3 noyaux arguments pour System Rescue CD):

   loopback lb (hd0,gpt3)/myUserAccount/download/systemrescuecd-x86-3.7.0.iso
   linux (lb)/isolinux/rescue64 isoloop=systemrescuecd-x86-3.7.0.iso setkmap=us docache
   initrd (lb)/isolinux/initram.igz
   boot

N.B. La partie loopback du modèle générique n’est pas, à proprement parler, obligatoire pour Linux lorsque vous avez l’intention d’installer une distribution Linux telle qu’une dérivée de Debian sans perdre un disque optique.

3
pseudonym

http://ansi.interblc.com/2010/02/06/howto-boot-iso-images-via-grub2-with-ubuntu/

  1. Passez au répertoire /etc/grub.d.
  2. Ajoutez vos images ISO commençant par 50 ici. Par exemple, mon entrée pour l'image ISO normale Ubuntu (50_ubuntu) ressemble à ceci:

echo "Adding $(egrep menu[e]ntry $0 | cut -d'"' -f2)" >&2
cat << EOF
menuentry "Ubuntu 10.04 Daily Build" {
loopback loop (hd0,3)/ansi/software_and_config/ISOs/ubuntu/lucid-desktop-i386.iso linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ansi/software_and_config/ISOs/ubuntu/lucid-desktop-i386.iso file=(loop)/preseed/ubuntu.seed quiet splash bootkbd=sg -- initrd (loop)/casper/initrd.lz
}

Mes fichiers ISO sont stockés sur sda3 sous/ansi/software_and_config/ISOs/ubuntu /. Afin de le modifier selon vos besoins, vous devez modifier 3 éléments. La ligne de bouclage contient votre disque dur en style grub (hdx, y x = 0-> sda x = 1-> sdb, etc.) et le chemin. Le troisième élément à changer est dans la ligne linux. Stockez ce fichier sous "50_ubuntu" dans "/etc/grub.d", exécutez-le avec "chmod a + x 50_ubuntu" et activez les modifications avec "ubdate-grub". Après un redémarrage, vous devriez pouvoir activer le menu de menu avec la touche Maj et sélectionner la nouvelle entrée.

(Remarque: si quelqu'un peut utiliser le formatage [CODE] approprié, ce serait formidable. Je n'arrive pas à le faire fonctionner correctement. --Tyblu)

2
user10551

Comme Mark Rooney l'a dit, vous pouvez trouver un excellent guide sur les forums Ubunt .

Cela vous permettra de démarrer à partir d’un fichier ISO, mais seulement si l’ISO le prend en charge. (Toutes les dernières versions d'Ubuntu devraient l'être, de même qu'un certain nombre d'autres distributions).

Si vous envisagez d’installer à partir de l’ISO en direct, vous devez placer le fichier sur une partition différente de celle sur laquelle vous allez installer (car vous ne pouvez pas écrire sur la partition sur laquelle vous exécutez). Les chances sont, l'installateur se plaindra quand même. Ce que vous devez faire est d'éditer manuellement /etc/mtab et de supprimer l'entrée correspondant à la partition contenant le fichier ISO.

0
Zifre