#1 Le 06/03/2018, à 15:57
- luckyzzz
GRUB booter sur iso sur une clé USB de secours
bonjour,
J'ai facilement crée une clé usb de secours pour mon pc sous Mint grâce à un tuto d'ubuntu.
Elle fonctionne parfaitement, mais je souhaiterai en plus pouvoir booter sur une image iso sur la clé, j'ai donc essayé de modifier le fichier /boot/grub/grub.cfg sur ma clé de secours comme ceci :
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function recordfail {
set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_msdos
insmod ext2
set root='hd1,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos4 --hint-efi=hd1,msdos4 --hint-baremetal=ahci1,msdos4 a9519cb7-c0e1-42d6-9219-f0d1ad774b9c
else
search --no-floppy --fs-uuid --set=root a9519cb7-c0e1-42d6-9219-f0d1ad774b9c
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=fr_FR
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=30
else
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=10
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=10
fi
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='hd1,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos4 --hint-efi=hd1,msdos4 --hint-baremetal=ahci1,msdos4 a9519cb7-c0e1-42d6-9219-f0d1ad774b9c
else
search --no-floppy --fs-uuid --set=root a9519cb7-c0e1-42d6-9219-f0d1ad774b9c
fi
insmod jpeg
if background_image /boot/grub/maxresdefault.jpg; then
true
else
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
fi
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
}
if [ "${recordfail}" != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
menuentry 'Linux Mint 18.3 Xfce 64-bit' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-a9519cb7-c0e1-42d6-9219-f0d1ad774b9c' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd1,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos4 --hint-efi=hd1,msdos4 --hint-baremetal=ahci1,msdos4 a9519cb7-c0e1-42d6-9219-f0d1ad774b9c
else
search --no-floppy --fs-uuid --set=root a9519cb7-c0e1-42d6-9219-f0d1ad774b9c
fi
linux /boot/vmlinuz-4.10.0-38-generic root=UUID=a9519cb7-c0e1-42d6-9219-f0d1ad774b9c ro quiet splash $vt_handoff
initrd /boot/initrd.img-4.10.0-38-generic
}
submenu 'Options avancées pour Linux Mint 18.3 Xfce 64-bit' $menuentry_id_option 'gnulinux-advanced-a9519cb7-c0e1-42d6-9219-f0d1ad774b9c' {
menuentry 'Linux Mint 18.3 Xfce 64-bit, avec Linux 4.10.0-38-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.10.0-38-generic-advanced-a9519cb7-c0e1-42d6-9219-f0d1ad774b9c' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd1,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos4 --hint-efi=hd1,msdos4 --hint-baremetal=ahci1,msdos4 a9519cb7-c0e1-42d6-9219-f0d1ad774b9c
else
search --no-floppy --fs-uuid --set=root a9519cb7-c0e1-42d6-9219-f0d1ad774b9c
fi
echo 'Chargement de Linux 4.10.0-38-generic…'
linux /boot/vmlinuz-4.10.0-38-generic root=UUID=a9519cb7-c0e1-42d6-9219-f0d1ad774b9c ro quiet splash $vt_handoff
echo 'Chargement du disque mémoire initial…'
initrd /boot/initrd.img-4.10.0-38-generic
}
menuentry 'Linux Mint 18.3 Xfce 64-bit, with Linux 4.10.0-38-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.10.0-38-generic-init-upstart-a9519cb7-c0e1-42d6-9219-f0d1ad774b9c' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd1,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos4 --hint-efi=hd1,msdos4 --hint-baremetal=ahci1,msdos4 a9519cb7-c0e1-42d6-9219-f0d1ad774b9c
else
search --no-floppy --fs-uuid --set=root a9519cb7-c0e1-42d6-9219-f0d1ad774b9c
fi
echo 'Chargement de Linux 4.10.0-38-generic…'
linux /boot/vmlinuz-4.10.0-38-generic root=UUID=a9519cb7-c0e1-42d6-9219-f0d1ad774b9c ro quiet splash $vt_handoff init=/sbin/upstart
echo 'Chargement du disque mémoire initial…'
initrd /boot/initrd.img-4.10.0-38-generic
}
menuentry 'Linux Mint 18.3 Xfce 64-bit, with Linux 4.10.0-38-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.10.0-38-generic-recovery-a9519cb7-c0e1-42d6-9219-f0d1ad774b9c' {
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd1,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos4 --hint-efi=hd1,msdos4 --hint-baremetal=ahci1,msdos4 a9519cb7-c0e1-42d6-9219-f0d1ad774b9c
else
search --no-floppy --fs-uuid --set=root a9519cb7-c0e1-42d6-9219-f0d1ad774b9c
fi
echo 'Chargement de Linux 4.10.0-38-generic…'
linux /boot/vmlinuz-4.10.0-38-generic root=UUID=a9519cb7-c0e1-42d6-9219-f0d1ad774b9c ro recovery nomodeset
echo 'Chargement du disque mémoire initial…'
initrd /boot/initrd.img-4.10.0-38-generic
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 8 (loader) (sur /dev/sdb1)' --class windows --class os $menuentry_id_option 'osprober-chain-EE94AA1794A9E277' {
insmod part_msdos
insmod ntfs
set root='hd1,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1 EE94AA1794A9E277
else
search --no-floppy --fs-uuid --set=root EE94AA1794A9E277
fi
parttool ${root} hidden-
drivemap -s (hd0) ${root}
chainloader +1
}
menuentry ".. linuxmint-18.3-xfce-64bit Live USB" {
set isofile="linuxmint-18.3-xfce-64bit.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/linuxmint.seed noprompt quiet splash
initrd (loop)/casper/initrd.lz
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
set timeout=10
fi
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
Extrait de ce fichier, le code que j'ai ajouté pour tenter de booter sur l'iso :
menuentry ".. linuxmint-18.3-xfce-64bit Live USB" {
set isofile="linuxmint-18.3-xfce-64bit.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/linuxmint.seed noprompt quiet splash
initrd (loop)/casper/initrd.lz
}
Un "ls" sur ma clé pour que vous puissiez voir où se trouve l'image iso sur ma clé :
davmaz@PC-SALON ~ $ ls /media/davmaz/GRUBSOSPCFI/
boot linuxmint-18.3-xfce-64bit.iso
Voici les message d'erreur quand je clic sur l'entrée du Live USB :
erreur : nom de fichier << linuxmint-18.3-xfce-64bit.iso >> incorrect.
erreur : disque << loop >> non disponible.
erreur : le noyau doit d'abord être chargé.
Appuyez sur une touche pour continuer ...
Merci d'avance pour toute l'aide que vous pourriez m'apporter...
Dernière modification par luckyzzz (Le 06/03/2018, à 16:11)
Hors ligne
#2 Le 06/03/2018, à 16:18
- ??
Re : GRUB booter sur iso sur une clé USB de secours
Bonjour.
Je pense que tu dois d'abord préciser dans quelle partition il faut chercher le fichier.
Je ne sais pas si cette codification convient https://forum.ubuntu-fr.org/viewtopic.p … #p21730604
Mais il y en a certainement d'autres en indiquant en dur le uuid de la partition et son type.
À adapter au fait que ce n'est pas sur un disque dur https://forum.ubuntu-fr.org/viewtopic.p … #p19845671
Il me semble que tu devrais consulter la documentation de multisytem qui peut être une solution à ton problème.
Dernière modification par ?? (Le 07/03/2018, à 11:21)
Utiliser REFIND au lieu du GRUB https://doc.ubuntu-fr.org/refind . Aidez à vous faire dépanner en suivant le guide et en utilisant les outils de diagnostic J'ai perdu ma gomme. Désolé pour les fautes d'orthographes non corrigées.
Hors ligne
#3 Le 06/03/2018, à 21:52
- luckyzzz
Re : GRUB booter sur iso sur une clé USB de secours
merci ?? j'ai put grâce au lien que tu m'as donné, trouvé la solution a mon problème.
Code d'origine :
menuentry ".. linuxmint-18.3-xfce-64bit Live USB" {
set isofile="linuxmint-18.3-xfce-64bit.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/linuxmint.seed noprompt quiet splash
initrd (loop)/casper/initrd.lz
}
Remplacé par ce code :
menuentry ".. linuxmint-18.3-xfce-64bit Live USB" {
set isofile="/linuxmint-18.3-xfce-64bit.iso"
search -sf $isofile
loopback loop $isofile
linux (loop)/casper/vmlinuz locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/linuxmint.seed noprompt quiet splash
initrd (loop)/casper/initrd.lz
}
J'ai tout d'abord ajouter un / pour indiquer que mon image iso se trouve a la racine sur ma clé sur la ligne set isofile="/linuxmint-18.3-xfce-64bit.iso"
La commande search -sf $isofile a été ajouté elle permet de chercher et pointer vers l'iso et j'ai aussi retiré le .efi à la fin de vmlinuz sur la ligne linux (loop)/casper/vmlinuz locale=fr_FR bootkbd=fr console... car je suis pas en EFI
En espérant que cela serve a quelqu'un
Dernière modification par luckyzzz (Le 06/03/2018, à 21:56)
Hors ligne
#4 Le 07/03/2018, à 12:31
- Babdu89
Re : GRUB booter sur iso sur une clé USB de secours
Bonjour.
En réponse à ?? dans ce post;
https://forum.ubuntu-fr.org/viewtopic.p … #p21883994
Oui, j'avais vu ce sujet.
Ce que j'en pense...
Modifier à la main le fichier Grub.cfg d'un Grub installé sur une clé USB pour pouvoir lancer des iso en live stockées dans la clé, n'est pas une bonne solution, même si çà fonctionne.
On ne doit modifier le fichier grub.cfg à la main que ponctuellement. Si on fait une maj de Grub la modif est perdue.
Sur une clé avec Grub installé, çà ne fonctionne pas comme sur une installation d'un Os, en modifiant les fichiers de configuration de Grub, qui eux ne sont pas dans la clé. C'est ce qui oblige à modifier le fichier grub.cfg à la main.
J'y préfère largement l'emploi d'une clé MultiSystem,
https://forum.ubuntu-fr.org/viewtopic.php?id=1229491
qui permet de stocker plusieurs iso à lancer en session live. L'ajout, ou la suppression d'iso sur la clé, font que les scripts de la clé MultiSystem mettent à jour Grub du MultiSystem, et ainsi régénère le fichier Grub.cfg de la clé.
Autre avantages, la clé MultiSystem fonctionne dans les mode UEFI et Bios_Legacy. On peut mettre de la persistance à une session live d'une iso, que l'on peut lancer avec ou sans mode persistent. Et si on charge les iso du MultiSystem dans la clé, çà permet depuis une session live de ces iso lancée depuis une machine hôte connectée au Net, d'ajouter d'autres iso sur la clé. La clé est autonome.
@+. Babdu89 .
J'ai découvert Ubuntu avec la 07.10.... Et alors?!... Depuis je regarde de temps en temps si Windows marche toujours....
Hors ligne
#5 Le 07/03/2018, à 20:00
- luckyzzz
Re : GRUB booter sur iso sur une clé USB de secours
Modifier à la main le fichier Grub.cfg d'un Grub installé sur une clé USB pour pouvoir lancer des iso en live stockées dans la clé, n'est pas une bonne solution, même si çà fonctionne.
A la base il s'agit d'une clé usb de secours, sur la clé il n'y a que /boot qui ne contient que /grub qui lui même ne contient que :
davmaz@PC-SALON ~ $ ls /media/davmaz/GRUBSOSPCFI/boot/grub
fonts grub.cfg grubenv locale unicode.pf2
gfxblacklist.txt grub.cfg.backup i386-pc
il n'y a donc qu'une seule façon de faire dans mon cas je pense, en modifiant grub.cfg directement. Il est sure que je devrai rajouter manuellement l’entrée pour booter sur l'iso a chaque fois que je mettrai a jour ma clé ou sinon il serait aussi sûrement possible par un script, d'automatiser cela...
Hors ligne
#6 Le 08/03/2018, à 00:12
- Babdu89
Re : GRUB booter sur iso sur une clé USB de secours
Bonsoir.
J'ai aussi une clé faite comme la tienne, Je l'avais faite en testant une installation de grub dans une partition format NTFS. çà a marché...
J'avais installé Grub comme çà depuis mon poste de travail.
sudo grub-install --boot-directory=/media/bernard/cle-test/boot /dev/sdb
Elle ne fonctionne qu'en mode Bios_Legacy. Pas en mode UEFI.
J'avais aussi aider à tester ces scripts, mais ils ne fonctionnent qu'en mode Bios_Legacy, pas en UEFI.
https://forum.ubuntu-fr.org/viewtopic.php?id=1236981
Depuis je n'utilise que des clés MultiSystem.
@+. Babdu89 .
Dernière modification par Babdu89 (Le 08/03/2018, à 00:20)
J'ai découvert Ubuntu avec la 07.10.... Et alors?!... Depuis je regarde de temps en temps si Windows marche toujours....
Hors ligne