Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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... smile

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 wink

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

Baddu89 a écrit :

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... wink

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

1520460689.png
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