Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 26/03/2013, à 23:34

Arbiel

[Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Bonsoir à tous

Edit : la version 2 est publiée au #5 ci-dessous

Ci-dessous un script bash pour amorcer à partir d'une image iso, sans passer ni par la gravure d'un CD-ROM ni par la création d'une clé USB amorçable, mais en utilisant la fonction "loopback" prévue à cet effet dans grub2.

Pour l'utiliser, il faut le recopier et en faire un fichier exécutable, puis le lancer avec

sudo bash <script>
#! /bin/bash

function iso_amorce_version () {
	echo " "
	echo "	Version 1.0 du 15/03/2013"
	echo " "
}
	
function amorce_exit () {
    exit ${1}
}

function display_syntaxe ()
{
	echo " "Trois éléments sont nécessaires pour réaliser cette amorce : le fichier iso, le répertoire utilisé par grub pour l'amorce, et le fichier qui contient la définition des lignes du menu spécifiques au fichier iso. Ces trois éléments sont définis par trois commandes "zenity --file-selection", ce qui n'est pas vraiment ergonomique, d'autant plus que les fenêtres correspondantes peuvent se trouver masquées, ce qui est un peu déconcertant. J'ai prévu la transcription en python, langage que je ne connais pas encore et je suis par avance reconnaissant à quiconque m'apportera une aide dans cette opération.

	echo " Syntaxe : $0 [options]"
	echo " Options disposibles : "
	echo "	-d	--grub-directory	répertoire d'installation de grub"
	echo "	-h	--help			affichage de la syntaxe"
	echo "	-i	--iso-file		fichier iso avec lequel amorcer le PC"
	echo "	-l	--loopback		menu grub à présenter au démarrage"
	echo "	-r	--reboot		réamorcer avec la configuration précédente"
	echo "	-v	--version		version"
	echo " "
	echo " Exemple d'utilisation en ligne de commande : sudo bash iso-boot.sh -d /boot/grub -i ~/isofiles/file.iso"
	echo " "
}

function param_visu () {
#########################################################
# Visualisation des paramètres d'amorce
########################################################
	${zenity} && sortie=/tmp/boot-iso.txt || sortie=/dev/stdout
	{ echo "Les paramètres enregistrés sont les suivants"
	echo " "
	echo " "
	echo "grub-directory=\"${grub_dir}\""
	echo "iso-file=\"${amorce_iso}\""
	echo "##################################################"
	echo "Le menu grub contiendra les entrées définies dans le fichier \"${amorce_menu}\""
	echo "__________________________________________________"
	cat "${amorce_menu}"
	echo "__________________________________________________" ; } 1>${sortie}	
	${zenity} && zenity --text-info --width=800 --height=250 \
		--filename=${sortie} --title="Contrôle avant amorce depus le fichier" --ok-label="Réamorcer le PC"
}
		
function param_init () {
######################################################
# Initialisation des paramètres
######################################################
	grub_dir= ;
	amorce_menu= ;
	aide=false ;
	reboot=false ;
	whereis zenity 1>/dev/null && gui=true || gui=false ;
	OPTIND=1 ;
}

function ctrl_root () {
###########################################################
# Vérification du contexte de l'appel
###########################################################
	[ "$USER" != "root" ] &&
	{
    echo " ";
    echo " Erreur : L'amorce depuis un fichier iso nécessite les droits d'administarteur";
    echo " Avez vous oublie sudo devant le nom du script ?";
    echo " ";
	return 1;} 
return 0
}

function param_decod () {
###########################################################
# Decodage de la ligne de commande
###########################################################
	while getopts "d:i:l:hrv-:" option; do
		ol=false
# gestion des options longues avec ou sans argument
		[ "${option}" = "-" ] && opt_long="${OPTARG%%=*}" && OPTARG="${OPTARG:((${#opt_long}+1))}" && ol=true;
		${ol} && case "${opt_long}" in
			grub-directory) option="d" ;;
			iso-file) option="i" ;;
			loopback) option="l" ;;
			help) option="h" ;;
			version) option="v" ;;
			reboot) option="r" ;;
			*) display_syntaxe ; clean_exit 1 ;;
		esac
# puis gestion des options courtes
		case $option in
			d) grub_dir="${OPTARG}" ;;
			i) amorce_iso="${OPTARG}" ;;
			l) amorce_menu="${OPTARG}" ;;
			h) iso_amorce_version && display_syntaxe && amorce_exit 0 ;;
			v) iso_amorce_version && amorce_exit 0  ;;
			r) reboot=true ;;
			*) display_syntaxe && amorce_exit 1 ;;
		esac
	done
}

function iso_fichier () {
###########################################################
# Calcul du nom de fichier pour grub
##########################################################	
	bsd=$(df "${1}"  | grep -o "^/dev/sd[a-z][1-9][0-9]*")
	montage=$(mount | grep -o "^${bsd} .* *type")
	partition=${montage%%+( )type}
	partition=${partition##${bsd} on+( )}
	if ! [ "${partition}" = "/" ]; then
		linux_nom=$(sudo find -H "${partition}" -samefile "${1}" | grep -m 1 "${partition}")
		echo "${linux_nom#${partition}}"
	else
		echo "${1}"
	fi
}

function quel_menu () {
#########################################################
# Sélection du fichier "loopback.cfg"
##########################################################
	abort=false ;
	amorce_menu="${amorce_iso%.iso}.loopback.cfg"
	if ! [[ -e "${amorce_menu}" ]] && [[ -e "/tmp/${SUDO_USER}/cdrom/boot/grub/loopback.cfg" ]]; then
		cp -T "/tmp/${SUDO_USER}/cdrom/boot/grub/loopback.cfg" "${amorce_menu}" ;
		msg="Le menu grub (loopback.cfg du fichier iso) a été recopié sur le fichier \"${amorce_menu}\"" ;
		zenity --info --title="Fichier menu grub" --text="${msg}" ;
		sudo chown "${SUDO_USER}" "${amorce_menu}" ;
	fi
	if ! [[ -e "${amorce_menu}" ]]; then
		trouve=false  ;
		until ${trouve} || ${abort}; do
			amorce_menu=$(zenity --file-selection \
			--title="Choisir le fichier menu grub ; le fichier iso est monté en /tmp/${SUDO_USER}/cdrom") ;
			! [ $((${?})) = 0 ] && abort=true || zenity --text-info --title="Vérification du contenu du fichier" \
			--width=900 --height=380 --timeout=0 --filename="${amorce_menu}" \
			--ok-label="C'est le bon fichier" --cancel-label="Choisir un autre fichier" ;
			[ $((${?})) = 0 ] && trouve=true ;
		done ; 
	fi
	${abort} && return 1 || return 0 ;
}

function quel_grub () {
#########################################################
# Localisation du répertoire d'amorce
#########################################################
	[[ -z "${grub_dir}" ]] && grub_dir=$(zenity --file-selection --directory \
		--title="Choisir le répertoire grub qui va servir d'amorce") ;
	[[ -z "${grub_dir}" ]] && return 1 || return 0
}

function quelle_amorce () {
##########################################################
# Contrôle de la structure du fichier d'installation
#########################################################
	( [[ -z "${amorce_iso}" ]] || ! [[ -e  "${amorce_iso}" ]] ) && amorce_iso=$(zenity --file-selection \
		--file-filter="*.iso" --title="Choisir le fichier à partir duquel amorcer le PC") ;
	[[ -z "${amorce_iso}" ]] && return 1 ;
	grub_iso=$(iso_fichier "${amorce_iso}") ;
	! [[ -e "/tmp/${SUDO_USER}/cdrom" ]] && mkdir -p "/tmp/${SUDO_USER}/cdrom" ;
	mount -o loop "${amorce_iso}" "/tmp/${SUDO_USER}/cdrom" ;
	return 0 ;
}

function iso_reamorce () {
###########################################################
# Arrêt et redémarrage pour amorçage depuis le fichier iso
##########################################################
	sudo grub-editenv "${grub_dir}/grubenv" set isoboot=true
	sudo shutdown -r now
	return 0
}


function iso_gen_custom () {
##########################################################
## Création ou mise à jour du fichier custom.cfg
##########################################################
	grep -e {config_directory} -c ${grub_dir}/grub.cfg 1>/dev/null && prefix="{config_directory}" || prefix="{prefix}"
	[[ -e "${grub_dir}/custom.cfg" ]] && sudo mv -T "${grub_dir}/custom.cfg" "${grub_dir}/custom.cfg~"  || touch "${grub_dir}/custom.cfg" ;
	{ echo -n "	"; echo "source \$${prefix}/greffons/fonctions_iso.cfg" ; } 1>"${grub_dir}/custom.cfg"
	{ echo -n "	"; echo auto_iso_boot "${1}" "${2}" ; } 1>>"${grub_dir}/custom.cfg"
	if [[ -e "${grub_dir}/custom.cfg~" ]]; then
		grep -v -e auto_iso_boot -e iso.menu.cfg "${grub_dir}/custom.cfg~" 1>>"${grub_dir}/custom.cfg"
	fi
	return 0
}

###################################
#
# Enregistrement des fonctions iso pour grub
#
####################################
function iso_gen_fonction  () {
	! [ -e "${grub_dir}/greffons" ] && \
		{ titre="Création de la fonction grub pour permettre l'amorce par fichier iso" ;
		msg="Enregistrement du fichier \"fonctions_iso.cfg\" dans le répertoire \"${grub_dir}/greffons\""
		${zenity} && zenity --info \
		--title="${titre}" --text="${msg}"  || echo "${msg}" ;
		sudo mkdir "${grub_dir}/greffons"; }
	cat 1>"${grub_dir}/greffons/fonctions_iso.cfg" <<"EOF"
#######################################################################################################################
# Avertissement présenté à l'utilisateur si le fichier iso est introuvable, ou n'a pas été donné en paramètre de la commande iso_boot
#   Iso file missing
function no_iso_file {
  if [ -n "${1}" ] ; then
    echo L\'image à partir de laquelle il faut amorcer le PC, ${1}, ne se trouve sur aucun des supports actuellement raccordés à l\'ordinateur.
  else 
    echo Aucune image iso n\'a été attachée au libellé ${chosen} que vous venez de choisir.
  fi
}
#######################################################################################################################
# Avertissement présenté à l'utilisateur si le fichier de configuration est introuvable
#   Grub configuration file missing
function no_cfg_file {
  echo Le fichier de configuration, ${1}, ne se trouve sur aucun des supports actuellement raccordés à l\'ordinateur.
 }
#######################################################################################################################
function iso_boot  {
#
# Cette procédure crée un periphérique virtuel qui donne accès aux répertoires et fichiers contenu dans le fichier iso
# et cherche le fichier contenant le menu correspondant à l'image iso considérée et l'introduit dans le menu Grub
# paramètre ${1} : le chemin d'accès au fichier iso
# paramètre ${2}, facultatif : le chemin d'accès au fichier contenant les entrées de menu pour l'image iso considérée
#    quand il est omis, il s'agit du fichier /boot/grub/loopback.cfg de l'image iso
  set image_iso=
  set iso_path="${1}"
#  recherche du fichier iso
  if [ -n "${1}" ]; then
# si le fichier ${1} de nom /..../nom existe, alors cela signifie qu'il est sur la partition ${root}
     if [ -e "${1}" ]; then set image_iso=${root}; else search --file --set=image_iso --no-floppy "${1}"; fi
  fi
  if [ -z "${image_iso}" ]; then no_iso_file "${1}";  sleep -v 10; fi
# création du périphérique virtuel qui donne accès au fichier iso
#    creation of the virtual device holding the iso file and paths initialisation
   loopback iso (${image_iso})${1}
   set root=iso,msdos1
   set loopcfg=
# recherche et introduction du menu spécifique à l'image iso considérée
   if [ -z "${2}" ]; then set sourcefile=/boot/grub/loopback.cfg; else set sourcefile="${2}"; fi
# si le fichier se trouve sur le périphérique $root, il n'est pas utile de le chercher
   if [ -e "${sourcefile}" ]; then set loopcfg=${root} ; else search --file --set=loopcfg --no-floppy "${sourcefile}" ; fi
   if [ -z "${loopcfg}" ]; then no_cfg_file "${sourcefile}"; sleep -v 10; else source "(${loopcfg})${sourcefile}"; fi
}
function auto_iso_boot {
########################################################################################
#
# amorçage par le script shell iso_boot.sh
#
#######################################################################################
# pour éviter le bouclage sur la procédure
	if ${isoboot}; then
		set isoboot=false
		save_env isoboot
		if ! keystatus --ctrl; then
			if ! keystatus --shift; then
				set image_iso=
				set iso_path="${1}"
				set iso_file="${1}"
				if [ -e "${1}" ]; then set image_iso="${root}"; else search --file --set=image_iso --no-floppy "${1}"; fi
				loopback iso (${image_iso})${1}
				set root=iso,msdos1
				if [ -e "${2}" ]; then set loopcfg=${root} ; else search --file --set=loopcfg --no-floppy "${2}" ; fi
				export iso_path
				export iso_file
				configfile "(${loopcfg})${2}"
			fi
		fi
	fi
}
EOF
}

#############################################################
#
# Script d'amorce à partir d'une image iso
#
############################################################
	which zenity 1>/dev/null && zenity=true || zenity=false ;
	! ctrl_root && amorce_exit 1 ;
	shopt -s extglob ;
	param_init ;
	param_decod "${@}" ;
	${reboot} && iso_reamorce && amorce_exit 100 ;
	${gui} && ! ${zenity} && echo "Erreur fatale : le mode graphique nécessite zenity" && amorce_exit 5 ;
	${gui} && { grub_dir= ; amorce_iso= ; amorce_menu= ; } ;
	! quel_grub && amorce_exit 2
	iso_gen_fonction ;
	! quelle_amorce && amorce_exit 3 ;
	! quel_menu && amorce_exit 4
	[[ -n "${amorce_menu}" ]] && grub_menu=$(iso_fichier "${amorce_menu}") ;
	iso_gen_custom "${grub_iso}" "${grub_menu}"
	param_visu && iso_reamorce ;
	amorce_exit 100
	

Explications :

Trois éléments sont nécessaires pour réaliser cette amorce : le répertoire utilisé par grub pour l'amorce, le fichier iso et le fichier qui contient la définition des lignes du menu spécifiques au fichier iso. Ces trois éléments sont définis par trois commandes "zenity --file-selection", ce qui n'est pas vraiment ergonomique, d'autant plus que les fenêtres correspondantes peuvent se trouver masquées, ce qui est un peu déconcertant. J'ai prévu la transcription en python, langage que je ne connais pas encore et je suis par avance reconnaissant à quiconque m'apportera une aide dans cette opération.

Bien évidemment, le menu grub habituel doit être complété ou remplacé par le menu spécifique à l'application contenue dans l'image iso. Il y a deux "bonnes" méthodes pour modifier ce menu, qui apparaissent dans les dernières lignes de grub.cfg

### 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  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

La première méthode consiste à créer le fichier 40_custom dans le répertoire /etc/grub.d pour ensuite mettre grub à jour par update-grub.
La seconde méthode consiste à écrire le fichier /boot/grub/custom.cfg lu à la volée par grub lors de la constitution de son menu, ce qui permet de ne pas avoir à mettre grub à jour. C'est cette seconde méthode que j'ai retenue. Par ailleurs, je regroupe les fonctions que je veux utiliser dans grub dans un dossier /boot/grub/greffons et j'utilise des ordres "source" dans le fichier custom.cfg.

Le menu d'amorce est lancé par un ordre "configfile" qui masque le menu standard pour le remplacer par le menu correspondant à l'image iso. Cette opération n'est réalisée qu'une seule fois, par l'intermédiaire de la variable d'environnement "isoboot" qui est initialisée à "true" par le script, et remise à "false" par grub.

Je reste à la disposition de quiconque voudrait des explications complémentaires sur ce script.

Arbiel

Dernière modification par Arbiel (Le 06/11/2013, à 00:13)


Arbiel Perlacremaz
Dell Vostro 3550 Ubuntu 14.04 64 bits

Hors ligne

#2 Le 27/03/2013, à 01:21

nesthib

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Sympa smile

Je déplace dans Trucs, astuces et scripts utiles.


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4

Hors ligne

#3 Le 31/10/2013, à 12:13

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Bonjour.

@ Arbiel.

Mon post est la suite de la discutions suivante.

http://forum.ubuntu-fr.org/viewtopic.ph … #p15064051

où je dis ceci;


ÉDIT

Pour ne pas qu'il y aie de confusion entre les tests d'essais, avec la clé et le script .  Le sujet du script ici;

http://forum.ubuntu-fr.org/viewtopic.php?id=1236981

Je recopie dans le sujet du script le contenu du post#37 de ce sujet, dans celui du script. Et je fait les tests et commentaires dans les sujets respectifs, pour ne pas qu'il y aie de mélange...


Comme j'aime bien tester tout ce qui est à ma portée..
Je me suis attelé à tester ce que dis notre Ami Arbiel dans ce sujet ;

http://forum.ubuntu-fr.org/viewtopic.php?id=1236981

Comme on y parle de lancer une iso à partir d'un Grub installé sur une distro.
Comme Arbiel, nous parle aussi de fenêtre zenity dans son script.
J'ai donc fait le fichier script dans mon dossier personnel, je l'ai rendu exécutable et lancé, après avoir ajouté ceci en fin de fichier grub.cfg ...

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

Le script lancé,crée bien le dossier "greffons" dans le répèrtoire "grub" et le fichier "custom.cfg" (première fenêtre zenity.)
Çà continue en me demandant l'adresse de l'iso à lancer. Après avoir monté la partition de stockage de mes iso, j'indique le chemin de l'une d'entre-elles. (deuxième fenêtre zenity).
J'ai un message indiquant que

mount: warning: /tmp/bernard/cdrom seems to be mounted read-only.

puis...

script.sh: ligne 297: param_visu : commande introuvable
bernard@bernard:~$ 

Et çà se termine comme çà ...

Alors le contenu de greffons ==> fichier  fonctions_iso.cfg
Contenu du fichier ci-dessous.

#######################################################################################################################
# Avertissement présenté à l'utilisateur si le fichier iso est introuvable, ou n'a pas été donné en paramètre de la commande iso_boot
#   Iso file missing
function no_iso_file {
  if [ -n "${1}" ] ; then
    echo L\'image à partir de laquelle il faut amorcer le PC, ${1}, ne se trouve sur aucun des supports actuellement raccordés à l\'ordinateur.
  else 
    echo Aucune image iso n\'a été attachée au libellé ${chosen} que vous venez de choisir.
  fi
}
#######################################################################################################################
# Avertissement présenté à l'utilisateur si le fichier de configuration est introuvable
#   Grub configuration file missing
function no_cfg_file {
  echo Le fichier de configuration, ${1}, ne se trouve sur aucun des supports actuellement raccordés à l\'ordinateur.
 }
#######################################################################################################################
function iso_boot  {
#
# Cette procédure crée un periphérique virtuel qui donne accès aux répertoires et fichiers contenu dans le fichier iso
# et cherche le fichier contenant le menu correspondant à l'image iso considérée et l'introduit dans le menu Grub
# paramètre ${1} : le chemin d'accès au fichier iso
# paramètre ${2}, facultatif : le chemin d'accès au fichier contenant les entrées de menu pour l'image iso considérée
#    quand il est omis, il s'agit du fichier /boot/grub/loopback.cfg de l'image iso
  set image_iso=
  set iso_path="${1}"
#  recherche du fichier iso
  if [ -n "${1}" ]; then
# si le fichier ${1} de nom /..../nom existe, alors cela signifie qu'il est sur la partition ${root}
     if [ -e "${1}" ]; then set image_iso=${root}; else search --file --set=image_iso --no-floppy "${1}"; fi
  fi
  if [ -z "${image_iso}" ]; then no_iso_file "${1}";  sleep -v 10; fi
# création du périphérique virtuel qui donne accès au fichier iso
#    creation of the virtual device holding the iso file and paths initialisation
   loopback iso (${image_iso})${1}
   set root=iso,msdos1
   set loopcfg=[url=http://pix.toile-libre.org/?img=1381442526.png][img]http://pix.toile-libre.org/upload/thumb/1381442526.png[/img][/url]
# recherche et introduction du menu spécifique à l'image iso considérée
   if [ -z "${2}" ]; then set sourcefile=/boot/grub/loopback.cfg; else set sourcefile="${2}"; fi
# si le fichier se trouve sur le périphérique $root, il n'est pas utile de le chercher
   if [ -e "${sourcefile}" ]; then set loopcfg=${root} ; else search --file --set=loopcfg --no-floppy "${sourcefile}" ; fi
   if [ -z "${loopcfg}" ]; then no_cfg_file "${sourcefile}"; sleep -v 10; else source "(${loopcfg})${sourcefile}"; fi
}
function auto_iso_boot {
########################################################################################
#
# amorçage par le script shell iso_boot.sh
#
#######################################################################################
# pour éviter le bouclage sur la procédure
	if ${isoboot}; then
		set isoboot=false
		save_env isoboot
		if ! keystatus --ctrl; then
			if ! keystatus --shift; then
				set image_iso=
				set iso_path="${1}"
				set iso_file="${1}"
				if [ -e "${1}" ]; then set image_iso="${root}"; else search --file --set=image_iso --no-floppy "${1}"; fi
				loopback iso (${image_iso})${1}
				set root=iso,msdos1
				if [ -e "${2}" ]; then set loopcfg=${root} ; else search --file --set=loopcfg --no-floppy "${2}" ; fi
				export iso_path
				export iso_file
				configfile "(${loopcfg})${2}"
			fi
		fi
	fi
}

Contenu du fichier custom.cfg

source ${prefix}/greffons/fonctions_iso.cfg
	auto_iso_boot /ISO _LINUX/Ubuntu 12.04/ubuntu-12.04.2-desktop-i386.iso /ISO _LINUX/Ubuntu 12.04/ubuntu-12.04.2-desktop-i386.loopback.cfg

Lorsque j'avais fais la clé , il était question d'un répertoire "amorce" ... il me semble à la racine de la clé
Je ne le trouve pas avec cette procédure... Normal ? ... il est où?. Dans  /  ?...

Lorsque çà va marcher, Je vais tester à tout va. Je pense que je vais utiliser ce script pour lancer mes iso à partir de la partition de stockage .
J'aime bien les applications graphiques .

Quelques screen de mes tests...

1381442325.png

1381442369.png

1381442411.png

1381442473.png

1381442526.png



ÉDIT;

Constatations suivantes.

En choisissant une des isos stockées dans le dossier prévu pour...
Le script édit bien un fichier  /boot/grub/greffons/fonctions_iso.cfg  .
Ainsi que le fichier /boot/grub/custom.cfg  .
En changeant d'iso. Le contenu du fichier custom.cfg change pour indiquer le chemin d'accès de la nouvelle iso choisie.
Dans le répertoire des iso sont créés un fichier <nom de l'iso.loopback.cfg> .

Donc ces fonctions là marchent.

Reste à comprendre ce qui se passe avec le retour terminal suivant .

mount: warning: /tmp/bernard/cdrom seems to be mounted read-only.

puis...

script.sh: ligne 297: param_visu : commande introuvable
bernard@bernard:~$ 


@+.   Babdu89  .

Dernière modification par Babdu89 (Le 31/10/2013, à 16:50)


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

#4 Le 31/10/2013, à 13:00

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Alors...

Je viens de tester le lancement de  Tails.
J'ai bien un fihier   custom.cfg    modifié comme ceci.

	source ${prefix}/greffons/fonctions_iso.cfg
	auto_iso_boot /ISO_LINUX/tails/tails-i386-0.18.iso /boot/grub/greffons/fonctions_iso.cfg
	source ${prefix}/greffons/fonctions_iso.cfg
	source ${prefix}/greffons/fonctions_iso.cfg
	source ${prefix}/greffons/fonctions_iso.cfg
	source ${prefix}/greffons/fonctions_iso.cfg
	source ${prefix}/greffons/fonctions_iso.cfg

Pas de fichier <nom de l'iso.loopback.cfg> de créé dans le dossier de stockage de l'iso ???.

Et toujours le retour terminal;

script.sh: ligne 297: param_visu : commande introuvable
bernard@bernard:~$ 

Çà ne reboot toujours pas la session live ...

@   Arbiel .
Entièrement disponible pour tester chez moi les améliorations du script ...

__Intérêt de la chose...
Sur ma config multi disques. (4 hdd internes + 4 hdd usb) les hdd usb vont de machines en machines, et bootent en session Linux sur n'importe quelle machine.
Un des hdd interne avec une grosse partition NTFS,( copie de cette partition faite sur un des hdd usb) , où sont stockées toutes mes iso téléchargées.
Sur tous mes hdd; Des Linux installés, lancé avec Grub de l'OS par défaut de chacun d'eux...
En bootant mes machines depuis n'importe quel hdd ...
Lancer le script, utiliser Grub de l'Os qui démarre le hdd par défaut. Le hdd avec la partition de stockage branché et monté.
Utiliser le Grub de la session de travail ouverte, pour lancer une session live d'une des iso stockées ...

Lorsque le script va marcher, plus besoin de faire de clé live pour ouvrir une session live d'une iso téléchargée à tester ...
Cà c'est sympa !!! .
Ce qui n'enlève rien aux clés live à faire quand même, si on en a besoin, par exemple en mode persistant ...

Je pense avoir bien compris le principe de fonctionnement et son utilité ... Merci pour le script... wink

@+.   Babdu89   .  smile


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 03/11/2013, à 02:20

Arbiel

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Nouvelle version

Voir à la fin de ce point les limitations et anomalies

#! /bin/bash

function ai_version () {
	echo " "
	echo "	Version 2.0 du 01/11/2013"
	echo " "
}
	
function ai_exit () {
    exit ${1}
}

function ai_syntaxe ()
{
#	Trois éléments sont nécessaires démarrer (boot) un PC avec une image iso
#		le fichier iso en question,
#		le répertoire qui contient le fichier grub.cfg utilisé par grub lors du lancement,
#		le fichier des commandes grub spécifiques au fichier iso (les lignes du menu et les ordres correspondants)
#	Ces trois éléments sont définis dans la ligne de commande, ou, à défaut, par trois commandes "zenity
#	ce qui n'est pas vraiment ergonomique, car les fenêtres correspondantes peuvent se trouver masquées,
#	ce qui est un peu déconcertant. J'ai prévu la transcription en python, langage que je ne connais pas encore
#	et je suis par avance reconnaissant à quiconque m'apportera une aide dans cette opération.

	echo " Syntaxe : $0 [options]"
	echo " Options disposibles : "
	echo "	-d	--grub-directory	répertoire d'installation de grub"
	echo "	-h	--help			affichage de la syntaxe"
	echo "	-i	--iso-file		fichier iso avec lequel amorcer le PC"
	echo "	-l	--loopback		menu grub à présenter au démarrage"
	echo "	-r	--reboot		réamorcer avec la configuration précédente"
	echo "	-v	--version		version"
	echo " "
	echo " Exemple d'utilisation en ligne de commande : sudo bash $0.sh -d /boot/grub -i ~/isofiles/file.iso"
	echo " "
}

function que_faire () {
########################################################################################
# Présentation de la liste des options disponibles et interprétation des options sélectionnées
########################################################################################

	msg="Définir le comportement de grub au redémarrage avec l'image iso"
	msg="${msg}"$'\n'"${nf}"
	action=$({  cat <<EOF
true
r
Réamorcer immédiatement.
false
e
Continuer à travailler. Amorcer avec l'image au prochain démarrage.
false
p
Introduire l'image comme choix dans le menu grub standard.
EOF
 }  | zenity --list \
		--title "Choix du comportement de grub" \
		--text="${msg}" \
		--multiple --column="Sélection" --column="code" --column="Comportement de grub"  --hide-column=2 --radiolist \
		--print-column=2 --separator="" --width=300 --height=200 2>/dev/null)
	case ${action} in
	"r") permanent=false ; reboot=true ;; 
	"e") permanent=false ; reboot=false ;;
	"p") permanent=true ; reboot=false ;;
	"#") ai_exit 5 ;;
	esac
}
	
	
	
function param_init () {
######################################################
# Initialisation des paramètres
######################################################
	grub_dir= ;
	amorce_menu= ;
	aide=false ;
	reboot=false ;
#	whereis zenity 1>/dev/null && gui=true || gui=false ;
	OPTIND=1 ;
}

function ctrl_root () {
###########################################################
# Vérification du contexte de l'appel
###########################################################
	[ "$USER" != "root" ] &&
	{
    echo " ";
    echo " Erreur : L'amorce depuis un fichier iso nécessite les droits d'administarteur";
    echo " Avez vous oublie sudo devant le nom du script ?";
    echo " ";
	return 1;} 
return 0
}

function param_decod () {
###########################################################
# Decodage de la ligne de commande
###########################################################
	while getopts "d:i:l:hrv-:" option; do
		ol=false
# gestion des options longues avec ou sans argument
# "${OPTARG%%=*} donne comme résultat le début de l'argument jusqu'au signe "=" non compris
# la valeur donnée à l'argument est tout ce qui suit le signe "=" 
		[ "${option}" = "-" ] && opt_long="${OPTARG%%=*}" && OPTARG="${OPTARG:((${#opt_long}+1))}" && ol=true;
		${ol} && case "${opt_long}" in
			grub-directory) option="d" ;;
			iso-file) option="i" ;;
			loopback) option="l" ;;
			help) option="h" ;;
			version) option="v" ;;
			reboot) option="r" ;;
			*) ai_syntaxe ; clean_exit 1 ;;
		esac
# puis gestion des options courtes
		case $option in
			d) grub_dir="${OPTARG}" ;;
			i) amorce_iso="${OPTARG}" ;;
			l) amorce_menu="${OPTARG}" ;;
			h) ai_version && display_syntaxe && ai_exit 0 ;;
			v) ai_version && ai_exit 0  ;;
			r) reboot=true ;;
			*) ai_syntaxe && ai_exit 1 ;;
		esac
	done
}

function iso_fichier () {
###########################################################
# Calcul du nom de fichier pour grub
##########################################################	
# il s'agit ici de trouver le nom du fichier par rapport à la partition dans laquelle il se trouve
# df donne un résultat tel que :
# /dev/sda8        294155260 175789668  103423388  63% /media/Multimedia
# dont grep -o "% *\/.*$" | grep -o "\/.*$" ne retient que tout ce qui suit les espaces qui suivent
# le signe % cad ici : /media/Multimedia
	partition=$(df "${1}" | grep -o "% *\/.*$" | grep -o "\/.*$")
	if ! [ "${partition}" = "/" ]; then
#		on cherche alors dans la partition les fichiers qui ont le même inode, on ne conserve que le premier
#		et on supprime le nom de la partition pour ne renvoyer que le nom du fichier dans la partition
		sudo find -H "${partition}" -samefile "${1}" | grep -m 1 "${partition}" | sed -e "s^${partition}^^"
	else
		echo "${1}"
	fi
}

function quel_menu () {
#########################################################
# Sélection du fichier "loopback.cfg"
##########################################################
	abort=false ;
	amorce_menu="${amorce_iso%.iso}.loopback.cfg"
	if ! [[ -e "${amorce_menu}" ]] && [[ -e "/tmp/${SUDO_USER}/cdrom/boot/grub/loopback.cfg" ]]; then
		cp -T "/tmp/${SUDO_USER}/cdrom/boot/grub/loopback.cfg" "${amorce_menu}" ;
		msg="Le fichier /boot/grub/loopback.cfg du fichier iso a été recopié sur le fichier \"${amorce_menu}\"" ;
		zenity --info --title="Fichier menu grub" --text="${msg}" ;
		sudo chown "${SUDO_USER}:${SUDO_USER}" "${amorce_menu}" ;
	fi
	trouve=false  ;
	abort=false ;
	autre=false ;
	until ${trouve} ; do
		if ! [[ -e "${amorce_menu}" ]] || ${autre} ; then
			autre=false ;
			amorce_menu=$(zenity --file-selection --file-filter="*.cfg" \
			--title="Choisir le modèle pour la création du fichier que grub doit utiliser au redémarrage") ;
			! [ $((${?})) = 0 ] && return 1 ;
			fi
		zenity --text-info \
			--title="Contrôle et mise au point éventuelle du fichier de configuration de grub" \
			--width=900 --height=380 --timeout=0 --filename="${amorce_menu}" \
			--editable --ok-label="C'est le bon fichier" \
			--cancel-label="Choisir un autre modèle de fichier de configuration" 1>"/tmp/${SUDO_USER}/loopback.cfg";
			if ! [ $((${?})) = 0 ]; then
				autre=true
				else
				trouve=true
				sudo cp -fT "/tmp/${SUDO_USER}/loopback.cfg" "${amorce_menu}" ;
				sudo chown "${SUDO_USER}:${SUDO_USER}" "${amorce_menu}" ;
				fi
		done ; 
	return 0 ;
}

function quel_grub() {
########################################################################################
# Présentation de la liste des options disponibles et interprétation des options sélectionnées
########################################################################################

	msg="Attendre l'affichage des répertoires, en cours de constitution,"
	msg="${msg}"$'\n'"puis choisir le répertoire dans lequel se trouve le fichier"
	msg="${msg}"$'\n'"de configuration que grub doit utiliser pour réamorcer le PC"
	[[ -z "${grub_dir}" ]] && grub_dir=$(sudo find /  -path */grub/grub.cfg | sed -e "s^/grub.cfg^^" | while \
		read a; do echo false; echo "${a}"; done  | zenity --list \
		--title "Répertoires /grub disponibles" \
		--text="${msg}" \
		--multiple --column="Sélection" --column="Répertoire"  --radiolist \
		--print-column=2 --separator="" --width=300 --height=300 2>/dev/null)
	[[ -z "${grub_dir}" ]] && return 1 || return 0
}

function quelle_amorce () {
##########################################################
# Contrôle de la structure du fichier d'installation
#########################################################
	( [[ -z "${amorce_iso}" ]] || ! [[ -e  "${amorce_iso}" ]] ) && amorce_iso=$(zenity --file-selection \
		--file-filter="*.iso" --title="Choisir le fichier à partir duquel amorcer le PC") ;
	[[ -z "${amorce_iso}" ]] && return 1 ;
	grub_iso=$(iso_fichier "${amorce_iso}") ;
	nf=$(basename "${grub_iso}" .iso)
	! [[ -e "/tmp/${SUDO_USER}/cdrom" ]] && mkdir -p "/tmp/${SUDO_USER}/cdrom" ;
	mount -r -o loop "${amorce_iso}" "/tmp/${SUDO_USER}/cdrom" ;
	msg="Le fichier \"${amorce_iso}\" a été monté sur le point de montage \"/tmp/${SUDO_USER}/cdrom\""
	zenity --info --title="Fichier iso sélectionné pour le futur redémarrage" --text="${msg}" ;
	return 0 ;
}

function iso_reamorce () {
###########################################################
# Arrêt et redémarrage pour amorçage depuis le fichier iso
##########################################################
	! ${permanent} && sudo grub-editenv "${grub_dir}/grubenv" set amorceiso=true
	${reboot} && sudo shutdown -r now
	return 0
}

function iso_gen_custom () {
##########################################################
## Création ou mise à jour du fichier custom.cfg
##########################################################
	grep -e {config_directory} -c ${grub_dir}/grub.cfg 1>/dev/null && prefix="{config_directory}" || prefix="{prefix}"
	sudo mkdir -p /tmp/amorceiso
	touch "${grub_dir}/custom.cfg" && cat "${grub_dir}/custom.cfg" | grep -v -e amorce_iso -e "${1}" -e greffons/fonctions_iso.cfg \
		1>"/tmp/amorceiso/custom.cfg"
	{ echo -n "	"; echo "source \$${prefix}/greffons/fonctions_iso.cfg" ; } 1>"${grub_dir}/custom.cfg"
	if ${permanent}; then
		{ echo -n "	"; echo "submenu "'"'"${nf}"'"'" {iso_boot "'"'"${1}"'"'" "'"'"${2}"'"'}" " ; } 1>>"${grub_dir}/custom.cfg"
	else
		{ echo -n "	"; echo amorce_iso "${1}" "${2}" ; } 1>>"${grub_dir}/custom.cfg"
	fi
	cat "/tmp/amorceiso/custom.cfg" 1>>"${grub_dir}/custom.cfg"
	return 0
}
###################################
#
# Enregistrement des fonctions iso pour grub
#
####################################
function iso_gen_fonction  () {
	! [ -e "${grub_dir}/greffons" ] && \
		{ titre="Création de la fonction grub pour permettre l'amorce par fichier iso" ;
		msg="Enregistrement du fichier \"fonctions_iso.cfg\" dans le répertoire \"${grub_dir}/greffons\""
		zenity --info \
		--title="${titre}" --text="${msg}"  || echo "${msg}" ;
		sudo mkdir "${grub_dir}/greffons"; }
	cat 1>"${grub_dir}/greffons/fonctions_iso.cfg" <<"EOF"
#######################################################################################################################
# Avertissement présenté à l'utilisateur si le fichier iso est introuvable, ou n'a pas été donné en paramètre de la commande iso_boot
#   Iso file missing
function no_iso_file {
  if [ -n "${1}" ] ; then
    echo L\'image à partir de laquelle il faut amorcer le PC, ${1}, ne se trouve sur aucun des supports actuellement raccordés à l\'ordinateur.
  else 
    echo Aucune image iso n\'a été attachée au libellé ${chosen} que vous venez de choisir.
  fi
}
#######################################################################################################################
# Avertissement présenté à l'utilisateur si le fichier de configuration est introuvable
#   Grub configuration file missing
function no_cfg_file {
  echo Le fichier de configuration, ${1}, ne se trouve sur aucun des supports actuellement raccordés à l\'ordinateur.
 }
#######################################################################################################################
function iso_boot  {
#
# Cette procédure crée un periphérique virtuel qui donne accès aux répertoires et fichiers contenu dans le fichier iso
# et cherche le fichier contenant le menu correspondant à l'image iso considérée et l'introduit dans le menu Grub
# paramètre ${1} : le nom du fichier iso, chemin d'accès compris, dans la partition où il se trouve, en commençant par /
# paramètre ${2}, facultatif : idem pour le fichier contenant les entrées de menu pour l'image iso considérée
#    quand il est omis, il s'agit du fichier /boot/grub/loopback.cfg de l'image iso
  set image_iso=
  set iso_path="${1}"
#  recherche du fichier iso
  if [ -n "${1}" ]; then
# si le fichier ${1} de nom /..../nom existe, alors cela signifie qu'il est sur la partition ${root}
     if [ -e "${1}" ]; then set image_iso=${root}; else search --file --set=image_iso --no-floppy "${1}"; fi
  fi
  if [ -z "${image_iso}" ]; then no_iso_file "${1}";  sleep -v 10; fi
# création du périphérique virtuel qui donne accès au fichier iso
#    creation of the virtual device holding the iso file and paths initialisation
   loopback iso (${image_iso})${1}
   set root=iso
   set loopcfg=
# recherche et introduction du menu spécifique à l'image iso considérée
   if [ -z "${2}" ]; then set sourcefile=/boot/grub/loopback.cfg; else set sourcefile="${2}"; fi
# si le fichier se trouve sur le périphérique $root, il n'est pas utile de le chercher
   if [ -e "${sourcefile}" ]; then set loopcfg=${root} ; else search --file --set=loopcfg --no-floppy "${sourcefile}" ; fi
   if [ -z "${loopcfg}" ]; then no_cfg_file "${sourcefile}"; sleep -v 10; else source "(${loopcfg})${sourcefile}"; fi
}
function amorce_iso {
########################################################################################
#
# amorçage par le script shell iso_boot.sh
#
#######################################################################################
# pour éviter le bouclage sur la procédure
    if ${amorceiso}; then
        set amorceiso=false
        save_env amorceiso
        if ! keystatus --ctrl; then
            if ! keystatus --shift; then
                set image_iso=
                set iso_path="${1}"
                set iso_file="${1}"
                if [ -e "${1}" ]; then set image_iso="${root}"; else search --file --set=image_iso --no-floppy "${1}"; fi
                loopback iso (${image_iso})${1}
                set root=iso
                if [ -e "${2}" ]; then set loopcfg=${root} ; else search --file --set=loopcfg --no-floppy "${2}" ; fi
                export iso_path
                export iso_file
                export root
                configfile "(${loopcfg})${2}"
                fi
            fi
        fi
}
EOF
}
function execution () {
#############################################################
#
# Script d'amorce à partir d'une image iso
#
############################################################
	! ctrl_root && ai_exit 1 ;
	shopt -s extglob ;
	param_init ;
	param_decod "${@}" ;
	${reboot} && iso_reamorce && ai_exit 100 ;
#	${gui} && { grub_dir= ; amorce_iso= ; amorce_menu= ; } ;
	! quel_grub && ai_exit 2
	iso_gen_fonction ;
	! quelle_amorce && ai_exit 3 ;
	! quel_menu && ai_exit 4
	[[ -n "${amorce_menu}" ]] && grub_menu=$(iso_fichier "${amorce_menu}") || ai_exit 5 ;
	que_faire
	iso_gen_custom "${grub_iso}" "${grub_menu}"
	iso_reamorce
	ai_exit 100
}

 execution		

[Edit 1]

Explications

grub dispose d'une fonction qui, appliquée au fichier image d'une distribution, permet d'en introduire le contenu dans la hiérarchie des fichiers accessibles par grub. L'image en question s'apparente alors à une partition système et peut être utilisée par grub pour démarrer le PC, comme toute autre partition système de la configuration. En utilisant cette fonction, on peut donc démarrer un PC directement à partir de l'image iso d'une distribution GNU/Linux, ou de tout système compatible avec grub (pour de plus amples précisions sur les systèmes compatibles, voir http://www.gnu.org/software/grub/manual … d-kernels).

Le démarrage à partir du fichier image iso ne peut se réaliser que si les deux conditions suivantes sont remplies :

  • les commandes grub nécessaires sont, d'une manière ou d'une autre, insérées dans le fichier de configuration "grub.cfg"

  • c'est au grub dont le fichier de configuration a été modifié que le BIOS ou l'UEFI passe le contrôle.

Le présent script a pour objectif de faciliter la mise en œuvre de cette possibilité en évitant qu'une modification manuelle malencontreusement erronée du fichier grub.cfg ne vienne supprimer toute possibilité de démarrage du PC.

Nommage des fichiers

Les fichiers images doivent être suffixés ".iso" et les fichiers contenant les commandes pour grub, créés par le script, sont suffixés ".loopback.cfg".

Dans cette seconde version, le script :

  1. dresse la liste de tous les répertoires /grub dans lesquels se trouve un fichier grub.cfg (ce qui peut être long) et la présente sous la forme d'une liste de boutons radios parmi lesquels l'utilisateur doit choisir celui qu'il faut modifier, c'est à dire celui dont l'utilisation au démarrage permettra d'amorcer le PC avec l'image iso ;

  2. demande à l'utilisateur de choisir le fichier image (filtrage des noms par le suffixe ".iso") en le laissant naviguer dans la hiérarchie de ses fichiers ;

  3. monte l'image iso sur le point de montage /tmp/${USER}/cdrom, et en informe l'utilisateur pour lui permettre d'accéder aux fichiers qu'elle contient (un écran nautilus peut apparaître, qui présente le contenu de l'image)

  4. crée, dans le répertoire contenant l'image sélectionnée, un fichier de même nom que l'image, mais dont le suffixe est ".loopback.cfg" à partir des informations contenues dans le fichier iso, si elles existent (fichier /boot/grub/loopback.cfg de l'image) ou à partir d'un modèle qu'il est alors demandé à l'utilisateur de sélectionner et que, dans les deux cas, l'utilisateur peut modifier ;

  5. propose à l'utilisateur l'une des trois actions suivantes :

    • redémarrage immédiat

    • redémarrage différé permettant de continuer de travailler dans la session courante

    • ajout d'une nouvelle ligne dans le menu grub pour permettre, à chaque démarrage de choisir cette image, ou toute autre image qui aurait été préalablement introduite.

Principe de fonctionnement

Après avoir préparé le menu à présenter à l'utilisateur, grub exécute les commandes contenues dans le fichier custom.cfg. Le script
enregistre dans un répertoire …/grub/greffons des fonctions qui permettent d'amorcer le PC avec des images iso et crée ou met à jour le fichier custom.cfg pour y introduire l'appel de ces fonctions.
De plus, pour éviter de boucler indéfiniment sur l'image iso, le script et grub communiquent par une variable que le script positionne à "vrai", et que grub remet à "faux".

Installation d'une distribution

Une image iso ayant été chargée, il devient possible d'installer la distribution incluse sans avoir eu ni à graver un CD ou un DVD, ni à spécialiser une clé USB à cet effet. La partition dans laquelle se trouve le fichier image est montée en /isodevice. Ubiquity n'accepte pas d'installer la distribution sur le même périphérique (/dev/sda par exemple) tant que cette partition reste montée. Comme ni le gestionnaire de disques, ni GParted n'acceptent de la démonter car ils la voient occupée, avant de lancer l'installation, il faut passer la commande

sudo umount -lfd /isodevice

Limitations et anomalies

Proscrire les espaces  dans le nom du fichier iso ou de l'un quelconque des répertoires dans la hiérarchie desquels il se trouve


quelques explications et commentaires supplémentaires viendront plus tard.

Arbiel

Dernière modification par Arbiel (Le 09/11/2013, à 22:25)


Arbiel Perlacremaz
Dell Vostro 3550 Ubuntu 14.04 64 bits

Hors ligne

#6 Le 03/11/2013, à 12:56

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Bonjour.
Merci pour la nouvelle version du script.
Nouveau test.
Config du moment.
4 hdd internes + 1 hdd usb.
La machine est lancé de puis le menu Grub d'un Hybryde Fusion (basé sur Ubuntu 12.04) .
C'est le répertoire grub de cet OS,  qui est choisit pour le test.
Ce répertoire ayant servit aux tests précédents. Nettoyage fait;
Suppression de /boot/grub/greffons.
Suppression de /boot/grub/custom.cf

Chemin de l'iso choisi pour le test:
/ISO_LINUX/ubuntu 13.10/saucy-desktop-i386_31_08_2013.iso  .
Comme j'ai déja voulu tester le lancement de cette iso . Suppression du fichier  saucy-desktop-i386_31_08_2013.loopback.cfg  . Nettoyage du répertoire fait .

Création du nouveau script. Fichier rendu exécutable.  Lancement du script.
Premier panneau ; présentation et choix du répertoire grub. ==> OK 
Je choisi celui de l'OS par défaut du hd usb. Hybryde Fusion 12.04 .
Deuxième panneau; choix de l'iso , je choisi las saucy ,comm indiqué ci-dessus.
Troisième panneau; enregistrement du fichier "fonctions_iso.cfg" dans le répertoire /boot/grub/greffons ==> OK.
Quatrième panneau; le fichier "/media/DONNEES_SATA_1__/ISO_LINUX/ubuntu 13.10/saucy-desktop-i386_31_08_2013.iso" a bien été monté sur le point de montage"tmp/bernard/cdrom"
Cinquième panneau; Vérification et modification si besoin est du menu que grub devra afficher .==>OK
Choix du comportement de Grub; je sélectionne ;Redémarrer immédiatement .

Et la machine reboot.
Dans mon menu "boot fast" je choisis le hdd usb ...
Çà cherche un bon moment ...
Et sans message d'erreur, çà affiche le  menu Grub de l'Os par défaut , celui-ci redémarre.
Pas de session live  saucy lancée .

Progrès en rapport de l'autre script, ,çà reboot la machine...
Comme avec la clé ,il doit y avoir encore un souci de chemin d'accès de l'iso... Pourtant pas de message d'erreur ...

Pour info, le Grub de cet OS par défaut est paramètré pour redémarrer sur le dernier OS choisi dans le menu Grub, est ce que çà met le bazar?

Avant de retenter le test depuis un autre OS en 12.04 sans grub qui redémarrer sur le dernier OS choisi...

Contenu des nouveaux fichiers qui on été construit...

/boot/grub/greffons/fonctions_iso.cfg

#######################################################################################################################
# Avertissement présenté à l'utilisateur si le fichier iso est introuvable, ou n'a pas été donné en paramètre de la commande iso_boot
#   Iso file missing
function no_iso_file {
  if [ -n "${1}" ] ; then
    echo L\'image à partir de laquelle il faut amorcer le PC, ${1}, ne se trouve sur aucun des supports actuellement raccordés à l\'ordinateur.
  else 
    echo Aucune image iso n\'a été attachée au libellé ${chosen} que vous venez de choisir.
  fi
}
#######################################################################################################################
# Avertissement présenté à l'utilisateur si le fichier de configuration est introuvable
#   Grub configuration file missing
function no_cfg_file {
  echo Le fichier de configuration, ${1}, ne se trouve sur aucun des supports actuellement raccordés à l\'ordinateur.
 }
#######################################################################################################################
function iso_boot  {
#
# Cette procédure crée un periphérique virtuel qui donne accès aux répertoires et fichiers contenu dans le fichier iso
# et cherche le fichier contenant le menu correspondant à l'image iso considérée et l'introduit dans le menu Grub
# paramètre ${1} : le nom du fichier iso, chemin d'accès compris, dans la partition où il se trouve, en commençant par /
# paramètre ${2}, facultatif : idem pour le fichier contenant les entrées de menu pour l'image iso considérée
#    quand il est omis, il s'agit du fichier /boot/grub/loopback.cfg de l'image iso
  set image_iso=
  set iso_path="${1}"
#  recherche du fichier iso
  if [ -n "${1}" ]; then
# si le fichier ${1} de nom /..../nom existe, alors cela signifie qu'il est sur la partition ${root}
     if [ -e "${1}" ]; then set image_iso=${root}; else search --file --set=image_iso --no-floppy "${1}"; fi
  fi
  if [ -z "${image_iso}" ]; then no_iso_file "${1}";  sleep -v 10; fi
# création du périphérique virtuel qui donne accès au fichier iso
#    creation of the virtual device holding the iso file and paths initialisation
   loopback iso (${image_iso})${1}
   set root=iso
   set loopcfg=
# recherche et introduction du menu spécifique à l'image iso considérée
   if [ -z "${2}" ]; then set sourcefile=/boot/grub/loopback.cfg; else set sourcefile="${2}"; fi
# si le fichier se trouve sur le périphérique $root, il n'est pas utile de le chercher
   if [ -e "${sourcefile}" ]; then set loopcfg=${root} ; else search --file --set=loopcfg --no-floppy "${sourcefile}" ; fi
   if [ -z "${loopcfg}" ]; then no_cfg_file "${sourcefile}"; sleep -v 10; else source "(${loopcfg})${sourcefile}"; fi
}
function amorce_iso {
########################################################################################
#
# amorçage par le script shell iso_boot.sh
#
#######################################################################################
# pour éviter le bouclage sur la procédure
    if ${amorceiso}; then
        set amorceiso=false
        save_env amorceiso
        if ! keystatus --ctrl; then
            if ! keystatus --shift; then
                set image_iso=
                set iso_path="${1}"
                set iso_file="${1}"
                if [ -e "${1}" ]; then set image_iso="${root}"; else search --file --set=image_iso --no-floppy "${1}"; fi
                loopback iso (${image_iso})${1}
                set root=iso
                if [ -e "${2}" ]; then set loopcfg=${root} ; else search --file --set=loopcfg --no-floppy "${2}" ; fi
                export iso_path
                export iso_file
                export root
                configfile "(${loopcfg})${2}"
                fi
            fi
        fi
}

/boot/grub/custom.cfg

	source ${prefix}/greffons/fonctions_iso.cfg
	amorce_iso /ISO_LINUX/Ubuntu 13.10/saucy-desktop-i386_31_08_2013.iso /ISO_LINUX/Ubuntu 13.10/saucy-desktop-i386_31_08_2013.loopback.cfg

fichier   /ISO_LINUX/Ubuntu 13.10/saucy-desktop-i386_31_08_2013.loopback.cfg

menuentry "Try Ubuntu without installing" {
	linux	/casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=${iso_path} quiet splash --
	initrd	/casper/initrd.lz
}
menuentry "Install Ubuntu" {
	linux	/casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity iso-scan/filename=${iso_path} quiet splash --
	initrd	/casper/initrd.lz
}
menuentry "Check disc for defects" {
	linux	/casper/vmlinuz  boot=casper integrity-check iso-scan/filename=${iso_path} quiet splash --
	initrd	/casper/initrd.lz
}
menuentry "Test memory" {
	linux16	/install/mt86plus
}

Fichier /boot/grub/grub .cfg de l'OS qui sert de test.

#
# 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
set default="${saved_entry}"
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 {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd2,msdos18)'
search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd2,msdos18)'
  search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
  set locale_dir=($root)/boot/grub/locale
  set lang=fr_FR
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ]; then
  set timeout=10
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='(hd2,msdos18)'
search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
insmod png
if background_image /usr/share/images/desktop-base/desktop-grub.png; then
  set color_normal=light-gray/black
  set color_highlight=white/black
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
if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
menuentry 'HYBRYDE FUSION 12.04_USB-SEAGATE-PART18, with Linux 3.5.0-26-generic' --class hybryde --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	gfxmode $linux_gfx_mode
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	linux	/boot/vmlinuz-3.5.0-26-generic root=UUID=a86824b2-75c0-4d88-b6e3-27963d09cdca ro   quiet splash 
	initrd	/boot/initrd.img-3.5.0-26-generic
}
menuentry 'HYBRYDE FUSION 12.04_USB-SEAGATE-PART18, with Linux 3.5.0-26-generic (recovery mode)' --class hybryde --class gnu-linux --class gnu --class os {
	recordfail
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	echo	'Loading Linux 3.5.0-26-generic ...'
	linux	/boot/vmlinuz-3.5.0-26-generic root=UUID=a86824b2-75c0-4d88-b6e3-27963d09cdca ro recovery nomodeset 
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-3.5.0-26-generic
}
submenu "Previous Linux versions" {
menuentry 'HYBRYDE FUSION 12.04_USB-SEAGATE-PART18, with Linux 3.2.0-39-generic' --class hybryde --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	gfxmode $linux_gfx_mode
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	linux	/boot/vmlinuz-3.2.0-39-generic root=UUID=a86824b2-75c0-4d88-b6e3-27963d09cdca ro   quiet splash $vt_handoff
	initrd	/boot/initrd.img-3.2.0-39-generic
}
menuentry 'HYBRYDE FUSION 12.04_USB-SEAGATE-PART18, with Linux 3.2.0-39-generic (recovery mode)' --class hybryde --class gnu-linux --class gnu --class os {
	recordfail
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	echo	'Loading Linux 3.2.0-39-generic ...'
	linux	/boot/vmlinuz-3.2.0-39-generic root=UUID=a86824b2-75c0-4d88-b6e3-27963d09cdca ro recovery nomodeset 
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-3.2.0-39-generic
}
menuentry 'HYBRYDE FUSION 12.04_USB-SEAGATE-PART18, with Linux 3.2.0-24-generic' --class hybryde --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	gfxmode $linux_gfx_mode
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	linux	/boot/vmlinuz-3.2.0-24-generic root=UUID=a86824b2-75c0-4d88-b6e3-27963d09cdca ro   quiet splash $vt_handoff
	initrd	/boot/initrd.img-3.2.0-24-generic
}
menuentry 'HYBRYDE FUSION 12.04_USB-SEAGATE-PART18, with Linux 3.2.0-24-generic (recovery mode)' --class hybryde --class gnu-linux --class gnu --class os {
	recordfail
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	echo	'Loading Linux 3.2.0-24-generic ...'
	linux	/boot/vmlinuz-3.2.0-24-generic root=UUID=a86824b2-75c0-4d88-b6e3-27963d09cdca ro recovery nomodeset 
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-3.2.0-24-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/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	linux16	/boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	linux16	/boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Ubuntu, with Linux 3.2.0-24-generic (on /dev/sdc11)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos11)'
	search --no-floppy --fs-uuid --set=root 7a980fb6-e85f-4941-bde2-25311371c051
	linux /boot/vmlinuz-3.2.0-24-generic root=UUID=7a980fb6-e85f-4941-bde2-25311371c051 ro quiet splash
	initrd /boot/initrd.img-3.2.0-24-generic
}
menuentry "Ubuntu, with Linux 3.2.0-24-generic (recovery mode) (on /dev/sdc11)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos11)'
	search --no-floppy --fs-uuid --set=root 7a980fb6-e85f-4941-bde2-25311371c051
	linux /boot/vmlinuz-3.2.0-24-generic root=UUID=7a980fb6-e85f-4941-bde2-25311371c051 ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-24-generic
}
menuentry "Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-ad092c9b-936f-4a39-96da-cff9fc198019 (on /dev/sdc13)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos13)'
	search --no-floppy --fs-uuid --set=root ad092c9b-936f-4a39-96da-cff9fc198019
	linux /boot/vmlinuz-3.5.0-18-generic root=UUID=ad092c9b-936f-4a39-96da-cff9fc198019 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.5.0-18-generic
}
menuentry "Ubuntu, with Linux 3.5.0-18-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-18-generic-advanced-ad092c9b-936f-4a39-96da-cff9fc198019 (on /dev/sdc13)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos13)'
	search --no-floppy --fs-uuid --set=root ad092c9b-936f-4a39-96da-cff9fc198019
	linux /boot/vmlinuz-3.5.0-18-generic root=UUID=ad092c9b-936f-4a39-96da-cff9fc198019 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.5.0-18-generic
}
menuentry "Ubuntu, with Linux 3.5.0-18-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-18-generic-recovery-ad092c9b-936f-4a39-96da-cff9fc198019 (on /dev/sdc13)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos13)'
	search --no-floppy --fs-uuid --set=root ad092c9b-936f-4a39-96da-cff9fc198019
	linux /boot/vmlinuz-3.5.0-18-generic root=UUID=ad092c9b-936f-4a39-96da-cff9fc198019 ro recovery nomodeset
	initrd /boot/initrd.img-3.5.0-18-generic
}
menuentry "Ubuntu, with Linux 3.5.0-17-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-17-generic-advanced-ad092c9b-936f-4a39-96da-cff9fc198019 (on /dev/sdc13)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos13)'
	search --no-floppy --fs-uuid --set=root ad092c9b-936f-4a39-96da-cff9fc198019
	linux /boot/vmlinuz-3.5.0-17-generic root=UUID=ad092c9b-936f-4a39-96da-cff9fc198019 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.5.0-17-generic
}
menuentry "Ubuntu, with Linux 3.5.0-17-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-17-generic-recovery-ad092c9b-936f-4a39-96da-cff9fc198019 (on /dev/sdc13)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos13)'
	search --no-floppy --fs-uuid --set=root ad092c9b-936f-4a39-96da-cff9fc198019
	linux /boot/vmlinuz-3.5.0-17-generic root=UUID=ad092c9b-936f-4a39-96da-cff9fc198019 ro recovery nomodeset
	initrd /boot/initrd.img-3.5.0-17-generic
}
menuentry "HYBRYDE FUSION 13.04_Seagate-Part-15' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 (on /dev/sdc15)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos15)'
	search --no-floppy --fs-uuid --set=root bc1203e5-834e-47d3-9ea3-0f69c5aa96b8
	linux /boot/vmlinuz-3.8.0-23-generic root=UUID=bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.8.0-23-generic
}
menuentry "HYBRYDE FUSION 13.04_Seagate-Part-15' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-23-generic-advanced-bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 (on /dev/sdc15)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos15)'
	search --no-floppy --fs-uuid --set=root bc1203e5-834e-47d3-9ea3-0f69c5aa96b8
	linux /boot/vmlinuz-3.8.0-23-generic root=UUID=bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.8.0-23-generic
}
menuentry "HYBRYDE FUSION 13.04_Seagate-Part-15, with Linux 3.8.0-23-generic (recovery mode)' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-23-generic-recovery-bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 (on /dev/sdc15)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos15)'
	search --no-floppy --fs-uuid --set=root bc1203e5-834e-47d3-9ea3-0f69c5aa96b8
	linux /boot/vmlinuz-3.8.0-23-generic root=UUID=bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 ro recovery nomodeset
	initrd /boot/initrd.img-3.8.0-23-generic
}
menuentry "HYBRYDE FUSION 13.04_Seagate-Part-15, with Linux 3.8.0-21-generic' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-21-generic-advanced-bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 (on /dev/sdc15)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos15)'
	search --no-floppy --fs-uuid --set=root bc1203e5-834e-47d3-9ea3-0f69c5aa96b8
	linux /boot/vmlinuz-3.8.0-21-generic root=UUID=bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.8.0-21-generic
}
menuentry "HYBRYDE FUSION 13.04_Seagate-Part-15, with Linux 3.8.0-21-generic (recovery mode)' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-21-generic-recovery-bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 (on /dev/sdc15)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos15)'
	search --no-floppy --fs-uuid --set=root bc1203e5-834e-47d3-9ea3-0f69c5aa96b8
	linux /boot/vmlinuz-3.8.0-21-generic root=UUID=bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 ro recovery nomodeset
	initrd /boot/initrd.img-3.8.0-21-generic
}
menuentry "HYBRYDE FUSION 13.04_Seagate-Part-15, with Linux 3.8.0-19-generic' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-19-generic-advanced-bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 (on /dev/sdc15)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos15)'
	search --no-floppy --fs-uuid --set=root bc1203e5-834e-47d3-9ea3-0f69c5aa96b8
	linux /boot/vmlinuz-3.8.0-19-generic root=UUID=bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.8.0-19-generic
}
menuentry "HYBRYDE FUSION 13.04_Seagate-Part-15, with Linux 3.8.0-19-generic (recovery mode)' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-19-generic-recovery-bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 (on /dev/sdc15)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos15)'
	search --no-floppy --fs-uuid --set=root bc1203e5-834e-47d3-9ea3-0f69c5aa96b8
	linux /boot/vmlinuz-3.8.0-19-generic root=UUID=bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 ro recovery nomodeset
	initrd /boot/initrd.img-3.8.0-19-generic
}
menuentry "Ubuntu, avec Linux 3.2.0-38-generic (on /dev/sdc16)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos16)'
	search --no-floppy --fs-uuid --set=root f4ac928c-66f9-4270-aff7-92004c385c1a
	linux /boot/vmlinuz-3.2.0-38-generic root=UUID=f4ac928c-66f9-4270-aff7-92004c385c1a ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-38-generic
}
menuentry "Ubuntu, avec Linux 3.2.0-38-generic (mode de dépannage) (on /dev/sdc16)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos16)'
	search --no-floppy --fs-uuid --set=root f4ac928c-66f9-4270-aff7-92004c385c1a
	linux /boot/vmlinuz-3.2.0-38-generic root=UUID=f4ac928c-66f9-4270-aff7-92004c385c1a ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-38-generic
}
menuentry "Ubuntu, avec Linux 3.2.0-34-generic (on /dev/sdc16)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos16)'
	search --no-floppy --fs-uuid --set=root f4ac928c-66f9-4270-aff7-92004c385c1a
	linux /boot/vmlinuz-3.2.0-34-generic root=UUID=f4ac928c-66f9-4270-aff7-92004c385c1a ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-34-generic
}
menuentry "Ubuntu, avec Linux 3.2.0-34-generic (mode de dépannage) (on /dev/sdc16)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos16)'
	search --no-floppy --fs-uuid --set=root f4ac928c-66f9-4270-aff7-92004c385c1a
	linux /boot/vmlinuz-3.2.0-34-generic root=UUID=f4ac928c-66f9-4270-aff7-92004c385c1a ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-34-generic
}
menuentry "Ubuntu, avec Linux 3.2.0-29-generic (on /dev/sdc16)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos16)'
	search --no-floppy --fs-uuid --set=root f4ac928c-66f9-4270-aff7-92004c385c1a
	linux /boot/vmlinuz-3.2.0-29-generic root=UUID=f4ac928c-66f9-4270-aff7-92004c385c1a ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-29-generic
}
menuentry "Ubuntu, avec Linux 3.2.0-29-generic (mode de dépannage) (on /dev/sdc16)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos16)'
	search --no-floppy --fs-uuid --set=root f4ac928c-66f9-4270-aff7-92004c385c1a
	linux /boot/vmlinuz-3.2.0-29-generic root=UUID=f4ac928c-66f9-4270-aff7-92004c385c1a ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-29-generic
}
menuentry "XUBUNTU 12.04-HYDV1, with Linux 3.2.0-53-generic-pae (on /dev/sdc21)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos21)'
	search --no-floppy --fs-uuid --set=root 8dea7f8a-541e-4d2a-8dfb-2b00c47461e4
	linux /boot/vmlinuz-3.2.0-53-generic-pae root=UUID=8dea7f8a-541e-4d2a-8dfb-2b00c47461e4 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-53-generic-pae
}
menuentry "XUBUNTU 12.04-HYDV1, with Linux 3.2.0-53-generic-pae (recovery mode) (on /dev/sdc21)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos21)'
	search --no-floppy --fs-uuid --set=root 8dea7f8a-541e-4d2a-8dfb-2b00c47461e4
	linux /boot/vmlinuz-3.2.0-53-generic-pae root=UUID=8dea7f8a-541e-4d2a-8dfb-2b00c47461e4 ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-53-generic-pae
}
menuentry "XUBUNTU 12.04-HYDV1, with Linux 3.2.0-52-generic-pae (on /dev/sdc21)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos21)'
	search --no-floppy --fs-uuid --set=root 8dea7f8a-541e-4d2a-8dfb-2b00c47461e4
	linux /boot/vmlinuz-3.2.0-52-generic-pae root=UUID=8dea7f8a-541e-4d2a-8dfb-2b00c47461e4 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-52-generic-pae
}
menuentry "XUBUNTU 12.04-HYDV1, with Linux 3.2.0-52-generic-pae (recovery mode) (on /dev/sdc21)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos21)'
	search --no-floppy --fs-uuid --set=root 8dea7f8a-541e-4d2a-8dfb-2b00c47461e4
	linux /boot/vmlinuz-3.2.0-52-generic-pae root=UUID=8dea7f8a-541e-4d2a-8dfb-2b00c47461e4 ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-52-generic-pae
}
menuentry "Ubuntu, avec Linux 2.6.32-45-generic (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-45-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro vga=758 quiet splash
	initrd /boot/initrd.img-2.6.32-45-generic
}
menuentry "Ubuntu, avec Linux 2.6.32-45-generic (mode de dépannage) (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-45-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro single vga=758
	initrd /boot/initrd.img-2.6.32-45-generic
}
menuentry "Ubuntu, avec Linux 2.6.32-44-generic (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-44-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro vga=758 quiet splash
	initrd /boot/initrd.img-2.6.32-44-generic
}
menuentry "Ubuntu, avec Linux 2.6.32-44-generic (mode de dépannage) (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-44-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro single vga=758
	initrd /boot/initrd.img-2.6.32-44-generic
}
menuentry "Ubuntu, avec Linux 2.6.32-43-generic (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-43-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro vga=758 quiet splash
	initrd /boot/initrd.img-2.6.32-43-generic
}
menuentry "Ubuntu, avec Linux 2.6.32-43-generic (mode de dépannage) (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-43-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro single vga=758
	initrd /boot/initrd.img-2.6.32-43-generic
}
menuentry "Ubuntu, avec Linux 2.6.32-21-generic (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-21-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro vga=758 quiet splash
	initrd /boot/initrd.img-2.6.32-21-generic
}
menuentry "Ubuntu, avec Linux 2.6.32-21-generic (mode de dépannage) (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-21-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro single vga=758
	initrd /boot/initrd.img-2.6.32-21-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-56-generic (on /dev/sdc9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-56-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-56-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-56-generic (mode de dépannage) (on /dev/sdc9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-56-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-56-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-55-generic (on /dev/sdc9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-55-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-55-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-55-generic (mode de dépannage) (on /dev/sdb9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd1,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-55-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-55-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-42-generic (on /dev/sdc9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-42-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-42-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-42-generic (mode de dépannage) (on /dev/sdc9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-42-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-42-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-40-generic (on /dev/sdc9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hdc,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-40-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-40-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-40-generic (mode de dépannage) (on /dev/sdc9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-40-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-40-generic
}
### 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.
menuentry "clé Usb-live ou CD-ROM"  {
	insmod part_msdos
	insmod vfat
	search --no-floppy --fs-uuid --set=root 37C7-5656
	chainloader +1
}
#ou bien:
#menuentry "clé Usb-live ou CD-ROM"  {
#	insmod part_msdos
#	insmod vfat
#	search --no-floppy --fs-uuid --set=root xxxx-xxxx
# ou : search --no-floppy --set=root -l <étiquette de la clé ou du CD>
#	chainloader +1
# ou, peut-être, de manière plus générale, mais là c'est à tester au cas par cas, chainloader +n
# cet ordre veut dire de chainer sur l'amorce contenue dans le 1er ou les n premiers secteurs de la partition cible ($root)
#}
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

Pour info ; Je ne conserve sur ce fichier que les OS qui sont sur le hdd usb . Puisque ce hdd va de machine en machine ....Pas besoin des entrées des OS des autres hdd çà fait un fichier inutilement trop long ... Je peux lancer les machine sur les périphériques que je veux depuis les menus "boot fast" des machines ...

Je mets en standby, les tests pour le moment, en attendant que  Arbiel se prononce ...

Mes sentiments sur "l'affaire" ...
Mais je dis peut-être des bêtises, je n'y connais rien en code ... Je dis çà par comparaison à ce qui a été fait avec la clé usb .

Fichier  custom.cfg je ne vois pas les " dans le code .(bêtise de ma part certainement ...

Fichier <nom de l'iso.loopback.cfg>  pas de   set root=iso  en début de fichier  (certainement une bêtise aussi , je fonctionne par comparaison avec ce qui est fait sur la clé grub ...)

En attendant il y a du progrès puisque la machine reboot ... Bravo .

Depuis un autre OS en 12.04 qui est sur un hdd interne . Dont le menu grub ne lance pas le dernier Linux choisi dans le menu grub.  Ou depuis le même OS qui sert aux tests
Je vais tester le lancement de Hybryde Fusion 13.04 qui lui fonctionne depuis la clé usb ...

ÉDIT.

J'ai pris le même OS de tests ...
Nettoyage des dossiers et fichiers;  custom.cf,greffons, et <nom de l'iso à Lancer.loopback.cfg> .
Je relance le script en faisant des screen.
En choisissant le répertoire Grub du même Os qui a fait le précédent test .
En choisissant Hybryde Fusion 13.04 (qui se lance depuis la clé grub).

Relance de la machine faite automatiquement par le script, sur le menu Grub de lOS de test...
Çà mouline pour chercher sans message d'erreur.
Affichage des options;
"Essayer sans installer"  "Memoty test"  &&&&.
Je choisi "Essayer sans installer" ...

Le script marche,  puisque la session live de l'iso Hybryde Fusion 13.04 se lance . En anglais, mais çà marche... Je poste depuis ...

iso,  qui je le rappelle est située dans un gros répertoire, sur un de mes hdd internes...

Remarque ; La configuration de Grub pour démarrer par défaut sur le dernier OS lancé depuis le menu Grub, n'a pas d'influence sur le travail du script ...


Je fais un autre post avec les screen,  et explications de ce que j'ai fait .

Bravo  Arbiel !!! ... wink  smile


@+.   Babdu89  .

Dernière modification par Babdu89 (Le 03/11/2013, à 16:36)


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

#7 Le 03/11/2013, à 16:15

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Alors ,les screen.

Donc on fait un fichier texte avec le contenu du dernier script de Arbiel. On le renomme en lui mettant une extension .sh, et on le paramètre pour qu'il soit exécutable .

On lance le script . Premier panneau. Laisser le temps au script d'examiner la config. Çà peut être assez long si la config est très fourni en OS installés , et surtout si les partitions système de ces OS sont montées . Pour le test je n'en ai monté qu'une, sinon ...

1383485095.png

1383485344.png

Le script répertorie tous les répertoires Grub qu'il va trouver sur la config .
Donc le répertoire Grub de l'OS d'où est lancé le script. Puis, chez moi le seul dont j'ai monté la partition système ==> test-u12.042-32 ...
On le retrouve proposé dans le panneau ci-dessus ...

Les /media/DONNEES_SATA_1_/ &&&&& /grub ...
Ce sont des dossiers et fichiers de retours de tests pour YannUbuntu ,ils ont le "malheur" de finir par /grub ...
Comme le script de Arbiel à l'air de "bien fouiller" dans les dossiers, il est trompé, et les propose dans ce panneau ...
Il "fouille" tellement bien ,qu'il trouve le répertoire /grub du Multisystème de frafa qui est installé sur l'OS qui sert de tests ...
Donc attention à ce que l'on choisit...
J'ai pour ma part choisi le répertoire /grub de l'Os de tests, et validé ...


Alors, panneau suivant, indique la création du dossier "greffons" de /boot/grub/greffons dans le répertoire /grub de l'OS de tests.

1383485948.png


Panneau suivant ,création du fichier "fonctions_iso.cfg" dans /boot/grub/greffons..

1383486208.png


Panneau suivant, permet de choisir l'iso a lancer en session live. Et d'indiquer le chemin d'accès à cette iso .

1383486318.png

J'ai fais mon choix, on voit le chemin d'accès de l'iso à lancer en session live ...

1383486444.png


Panneau suivant, indique où sera monté l'iso pour continuer le lancement de la session live .

1383486560.png


Panneau suivant, création du fichier <nom de l'iso.loopback.cfg> .
Ce fichier se trouve à coté de l'iso à lancer en session live,dans le même répertoire maintenant.

1383486658.png


Panneau suivant, indique le contenu du fichier indiqué ci-dessus ...
L'option choisir une autre fichier??  @ Arbiel ,un explication?.. J'ai validé ce qui est proposé par défaut .

1383486814.png


Panneau suivant, à nous de faire notre choix...
Option_ Réamorcer immédiatement, c'est clair, la machine reboot desuite . C'est ce que j'ai choisi.
Option_ Enregistrer pour un réamorçage ultérieur  @ Arbiel Stp une explication ..
Option_ Introduire l'image comme choix dans le menu standart .@ Arbiel, on ajoute une entrée pour l'image iso, au menu Grub de l'OS de tests??... Un Grub qui va lancer un syslinux??... Non??...

1383486996.png

On valide, la machine redémarre et en place du menu Grub habituel, propose les options suivantes;
_"Essayer sans installer"
_Memory tests
_Vérification du disqk
_Reboot sur le hdd principal. Il me semble me rappeler .

Dans le menu .  J'ai choisi "Essayer sans installer"  et la session live Hybryde Fusion 13.04 (iso stockée dans un répertoire d'un hdd interne) démarre ...

Bravo  Arbiel !!! ...

On va attendre ses commentaires ...

Je poste les contenu des fichiers ; custom.cfg ; fonctions_iso.cfg ; <nom de l'iso.loopback.cfg> et grub.cfg du Grub de l'OS de tests...

Custom.cfg

	source ${prefix}/greffons/fonctions_iso.cfg
	amorce_iso /ISO_LINUX/HYBRYDE/Hybryde-HY-D-V1/Hybryde-Fusion-release-live-dvd-i386.iso /ISO_LINUX/HYBRYDE/Hybryde-HY-D-V1/Hybryde-Fusion-release-live-dvd-i386.loopback.cfg

fichier fonctions-iso.cfg

#######################################################################################################################
# Avertissement présenté à l'utilisateur si le fichier iso est introuvable, ou n'a pas été donné en paramètre de la commande iso_boot
#   Iso file missing
function no_iso_file {
  if [ -n "${1}" ] ; then
    echo L\'image à partir de laquelle il faut amorcer le PC, ${1}, ne se trouve sur aucun des supports actuellement raccordés à l\'ordinateur.
  else 
    echo Aucune image iso n\'a été attachée au libellé ${chosen} que vous venez de choisir.
  fi
}
#######################################################################################################################
# Avertissement présenté à l'utilisateur si le fichier de configuration est introuvable
#   Grub configuration file missing
function no_cfg_file {
  echo Le fichier de configuration, ${1}, ne se trouve sur aucun des supports actuellement raccordés à l\'ordinateur.
 }
#######################################################################################################################
function iso_boot  {
#
# Cette procédure crée un periphérique virtuel qui donne accès aux répertoires et fichiers contenu dans le fichier iso
# et cherche le fichier contenant le menu correspondant à l'image iso considérée et l'introduit dans le menu Grub
# paramètre ${1} : le nom du fichier iso, chemin d'accès compris, dans la partition où il se trouve, en commençant par /
# paramètre ${2}, facultatif : idem pour le fichier contenant les entrées de menu pour l'image iso considérée
#    quand il est omis, il s'agit du fichier /boot/grub/loopback.cfg de l'image iso
  set image_iso=
  set iso_path="${1}"
#  recherche du fichier iso
  if [ -n "${1}" ]; then
# si le fichier ${1} de nom /..../nom existe, alors cela signifie qu'il est sur la partition ${root}
     if [ -e "${1}" ]; then set image_iso=${root}; else search --file --set=image_iso --no-floppy "${1}"; fi
  fi
  if [ -z "${image_iso}" ]; then no_iso_file "${1}";  sleep -v 10; fi
# création du périphérique virtuel qui donne accès au fichier iso
#    creation of the virtual device holding the iso file and paths initialisation
   loopback iso (${image_iso})${1}
   set root=iso
   set loopcfg=
# recherche et introduction du menu spécifique à l'image iso considérée
   if [ -z "${2}" ]; then set sourcefile=/boot/grub/loopback.cfg; else set sourcefile="${2}"; fi
# si le fichier se trouve sur le périphérique $root, il n'est pas utile de le chercher
   if [ -e "${sourcefile}" ]; then set loopcfg=${root} ; else search --file --set=loopcfg --no-floppy "${sourcefile}" ; fi
   if [ -z "${loopcfg}" ]; then no_cfg_file "${sourcefile}"; sleep -v 10; else source "(${loopcfg})${sourcefile}"; fi
}
function amorce_iso {
########################################################################################
#
# amorçage par le script shell iso_boot.sh
#
#######################################################################################
# pour éviter le bouclage sur la procédure
    if ${amorceiso}; then
        set amorceiso=false
        save_env amorceiso
        if ! keystatus --ctrl; then
            if ! keystatus --shift; then
                set image_iso=
                set iso_path="${1}"
                set iso_file="${1}"
                if [ -e "${1}" ]; then set image_iso="${root}"; else search --file --set=image_iso --no-floppy "${1}"; fi
                loopback iso (${image_iso})${1}
                set root=iso
                if [ -e "${2}" ]; then set loopcfg=${root} ; else search --file --set=loopcfg --no-floppy "${2}" ; fi
                export iso_path
                export iso_file
                export root
                configfile "(${loopcfg})${2}"
                fi
            fi
        fi
}

fichier <nom de l'iso.loopback.cfg>

menuentry "Try Ubuntu without installing" {
	linux	/casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=${iso_path} quiet splash --
	initrd	/casper/initrd.lz
}
menuentry "Install Ubuntu" {
	linux	/casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity iso-scan/filename=${iso_path} quiet splash --
	initrd	/casper/initrd.lz
}
menuentry "Check disc for defects" {
	linux	/casper/vmlinuz  boot=casper integrity-check iso-scan/filename=${iso_path} quiet splash --
	initrd	/casper/initrd.lz
}
menuentry "Test memory" {
	linux16	/install/mt86plus
}

fichier grub.cfg de l'OS de tests.

#
# 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
set default="${saved_entry}"
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 {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd2,msdos18)'
search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd2,msdos18)'
  search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
  set locale_dir=($root)/boot/grub/locale
  set lang=fr_FR
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ]; then
  set timeout=10
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='(hd2,msdos18)'
search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
insmod png
if background_image /usr/share/images/desktop-base/desktop-grub.png; then
  set color_normal=light-gray/black
  set color_highlight=white/black
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
if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
menuentry 'HYBRYDE FUSION 12.04_USB-SEAGATE-PART18, with Linux 3.5.0-26-generic' --class hybryde --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	gfxmode $linux_gfx_mode
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	linux	/boot/vmlinuz-3.5.0-26-generic root=UUID=a86824b2-75c0-4d88-b6e3-27963d09cdca ro   quiet splash 
	initrd	/boot/initrd.img-3.5.0-26-generic
}
menuentry 'HYBRYDE FUSION 12.04_USB-SEAGATE-PART18, with Linux 3.5.0-26-generic (recovery mode)' --class hybryde --class gnu-linux --class gnu --class os {
	recordfail
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	echo	'Loading Linux 3.5.0-26-generic ...'
	linux	/boot/vmlinuz-3.5.0-26-generic root=UUID=a86824b2-75c0-4d88-b6e3-27963d09cdca ro recovery nomodeset 
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-3.5.0-26-generic
}
submenu "Previous Linux versions" {
menuentry 'HYBRYDE FUSION 12.04_USB-SEAGATE-PART18, with Linux 3.2.0-39-generic' --class hybryde --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	gfxmode $linux_gfx_mode
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	linux	/boot/vmlinuz-3.2.0-39-generic root=UUID=a86824b2-75c0-4d88-b6e3-27963d09cdca ro   quiet splash $vt_handoff
	initrd	/boot/initrd.img-3.2.0-39-generic
}
menuentry 'HYBRYDE FUSION 12.04_USB-SEAGATE-PART18, with Linux 3.2.0-39-generic (recovery mode)' --class hybryde --class gnu-linux --class gnu --class os {
	recordfail
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	echo	'Loading Linux 3.2.0-39-generic ...'
	linux	/boot/vmlinuz-3.2.0-39-generic root=UUID=a86824b2-75c0-4d88-b6e3-27963d09cdca ro recovery nomodeset 
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-3.2.0-39-generic
}
menuentry 'HYBRYDE FUSION 12.04_USB-SEAGATE-PART18, with Linux 3.2.0-24-generic' --class hybryde --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	gfxmode $linux_gfx_mode
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	linux	/boot/vmlinuz-3.2.0-24-generic root=UUID=a86824b2-75c0-4d88-b6e3-27963d09cdca ro   quiet splash $vt_handoff
	initrd	/boot/initrd.img-3.2.0-24-generic
}
menuentry 'HYBRYDE FUSION 12.04_USB-SEAGATE-PART18, with Linux 3.2.0-24-generic (recovery mode)' --class hybryde --class gnu-linux --class gnu --class os {
	recordfail
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	echo	'Loading Linux 3.2.0-24-generic ...'
	linux	/boot/vmlinuz-3.2.0-24-generic root=UUID=a86824b2-75c0-4d88-b6e3-27963d09cdca ro recovery nomodeset 
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-3.2.0-24-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/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	linux16	/boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos18)'
	search --no-floppy --fs-uuid --set=root a86824b2-75c0-4d88-b6e3-27963d09cdca
	linux16	/boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Ubuntu, with Linux 3.2.0-24-generic (on /dev/sdc11)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos11)'
	search --no-floppy --fs-uuid --set=root 7a980fb6-e85f-4941-bde2-25311371c051
	linux /boot/vmlinuz-3.2.0-24-generic root=UUID=7a980fb6-e85f-4941-bde2-25311371c051 ro quiet splash
	initrd /boot/initrd.img-3.2.0-24-generic
}
menuentry "Ubuntu, with Linux 3.2.0-24-generic (recovery mode) (on /dev/sdc11)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos11)'
	search --no-floppy --fs-uuid --set=root 7a980fb6-e85f-4941-bde2-25311371c051
	linux /boot/vmlinuz-3.2.0-24-generic root=UUID=7a980fb6-e85f-4941-bde2-25311371c051 ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-24-generic
}
menuentry "Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-ad092c9b-936f-4a39-96da-cff9fc198019 (on /dev/sdc13)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos13)'
	search --no-floppy --fs-uuid --set=root ad092c9b-936f-4a39-96da-cff9fc198019
	linux /boot/vmlinuz-3.5.0-18-generic root=UUID=ad092c9b-936f-4a39-96da-cff9fc198019 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.5.0-18-generic
}
menuentry "Ubuntu, with Linux 3.5.0-18-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-18-generic-advanced-ad092c9b-936f-4a39-96da-cff9fc198019 (on /dev/sdc13)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos13)'
	search --no-floppy --fs-uuid --set=root ad092c9b-936f-4a39-96da-cff9fc198019
	linux /boot/vmlinuz-3.5.0-18-generic root=UUID=ad092c9b-936f-4a39-96da-cff9fc198019 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.5.0-18-generic
}
menuentry "Ubuntu, with Linux 3.5.0-18-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-18-generic-recovery-ad092c9b-936f-4a39-96da-cff9fc198019 (on /dev/sdc13)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos13)'
	search --no-floppy --fs-uuid --set=root ad092c9b-936f-4a39-96da-cff9fc198019
	linux /boot/vmlinuz-3.5.0-18-generic root=UUID=ad092c9b-936f-4a39-96da-cff9fc198019 ro recovery nomodeset
	initrd /boot/initrd.img-3.5.0-18-generic
}
menuentry "Ubuntu, with Linux 3.5.0-17-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-17-generic-advanced-ad092c9b-936f-4a39-96da-cff9fc198019 (on /dev/sdc13)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos13)'
	search --no-floppy --fs-uuid --set=root ad092c9b-936f-4a39-96da-cff9fc198019
	linux /boot/vmlinuz-3.5.0-17-generic root=UUID=ad092c9b-936f-4a39-96da-cff9fc198019 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.5.0-17-generic
}
menuentry "Ubuntu, with Linux 3.5.0-17-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-17-generic-recovery-ad092c9b-936f-4a39-96da-cff9fc198019 (on /dev/sdc13)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos13)'
	search --no-floppy --fs-uuid --set=root ad092c9b-936f-4a39-96da-cff9fc198019
	linux /boot/vmlinuz-3.5.0-17-generic root=UUID=ad092c9b-936f-4a39-96da-cff9fc198019 ro recovery nomodeset
	initrd /boot/initrd.img-3.5.0-17-generic
}
menuentry "HYBRYDE FUSION 13.04_Seagate-Part-15' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 (on /dev/sdc15)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos15)'
	search --no-floppy --fs-uuid --set=root bc1203e5-834e-47d3-9ea3-0f69c5aa96b8
	linux /boot/vmlinuz-3.8.0-23-generic root=UUID=bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.8.0-23-generic
}
menuentry "HYBRYDE FUSION 13.04_Seagate-Part-15' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-23-generic-advanced-bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 (on /dev/sdc15)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos15)'
	search --no-floppy --fs-uuid --set=root bc1203e5-834e-47d3-9ea3-0f69c5aa96b8
	linux /boot/vmlinuz-3.8.0-23-generic root=UUID=bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.8.0-23-generic
}
menuentry "HYBRYDE FUSION 13.04_Seagate-Part-15, with Linux 3.8.0-23-generic (recovery mode)' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-23-generic-recovery-bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 (on /dev/sdc15)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos15)'
	search --no-floppy --fs-uuid --set=root bc1203e5-834e-47d3-9ea3-0f69c5aa96b8
	linux /boot/vmlinuz-3.8.0-23-generic root=UUID=bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 ro recovery nomodeset
	initrd /boot/initrd.img-3.8.0-23-generic
}
menuentry "HYBRYDE FUSION 13.04_Seagate-Part-15, with Linux 3.8.0-21-generic' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-21-generic-advanced-bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 (on /dev/sdc15)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos15)'
	search --no-floppy --fs-uuid --set=root bc1203e5-834e-47d3-9ea3-0f69c5aa96b8
	linux /boot/vmlinuz-3.8.0-21-generic root=UUID=bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.8.0-21-generic
}
menuentry "HYBRYDE FUSION 13.04_Seagate-Part-15, with Linux 3.8.0-21-generic (recovery mode)' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-21-generic-recovery-bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 (on /dev/sdc15)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos15)'
	search --no-floppy --fs-uuid --set=root bc1203e5-834e-47d3-9ea3-0f69c5aa96b8
	linux /boot/vmlinuz-3.8.0-21-generic root=UUID=bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 ro recovery nomodeset
	initrd /boot/initrd.img-3.8.0-21-generic
}
menuentry "HYBRYDE FUSION 13.04_Seagate-Part-15, with Linux 3.8.0-19-generic' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-19-generic-advanced-bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 (on /dev/sdc15)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos15)'
	search --no-floppy --fs-uuid --set=root bc1203e5-834e-47d3-9ea3-0f69c5aa96b8
	linux /boot/vmlinuz-3.8.0-19-generic root=UUID=bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.8.0-19-generic
}
menuentry "HYBRYDE FUSION 13.04_Seagate-Part-15, with Linux 3.8.0-19-generic (recovery mode)' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.0-19-generic-recovery-bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 (on /dev/sdc15)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos15)'
	search --no-floppy --fs-uuid --set=root bc1203e5-834e-47d3-9ea3-0f69c5aa96b8
	linux /boot/vmlinuz-3.8.0-19-generic root=UUID=bc1203e5-834e-47d3-9ea3-0f69c5aa96b8 ro recovery nomodeset
	initrd /boot/initrd.img-3.8.0-19-generic
}
menuentry "Ubuntu, avec Linux 3.2.0-38-generic (on /dev/sdc16)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos16)'
	search --no-floppy --fs-uuid --set=root f4ac928c-66f9-4270-aff7-92004c385c1a
	linux /boot/vmlinuz-3.2.0-38-generic root=UUID=f4ac928c-66f9-4270-aff7-92004c385c1a ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-38-generic
}
menuentry "Ubuntu, avec Linux 3.2.0-38-generic (mode de dépannage) (on /dev/sdc16)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos16)'
	search --no-floppy --fs-uuid --set=root f4ac928c-66f9-4270-aff7-92004c385c1a
	linux /boot/vmlinuz-3.2.0-38-generic root=UUID=f4ac928c-66f9-4270-aff7-92004c385c1a ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-38-generic
}
menuentry "Ubuntu, avec Linux 3.2.0-34-generic (on /dev/sdc16)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos16)'
	search --no-floppy --fs-uuid --set=root f4ac928c-66f9-4270-aff7-92004c385c1a
	linux /boot/vmlinuz-3.2.0-34-generic root=UUID=f4ac928c-66f9-4270-aff7-92004c385c1a ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-34-generic
}
menuentry "Ubuntu, avec Linux 3.2.0-34-generic (mode de dépannage) (on /dev/sdc16)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos16)'
	search --no-floppy --fs-uuid --set=root f4ac928c-66f9-4270-aff7-92004c385c1a
	linux /boot/vmlinuz-3.2.0-34-generic root=UUID=f4ac928c-66f9-4270-aff7-92004c385c1a ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-34-generic
}
menuentry "Ubuntu, avec Linux 3.2.0-29-generic (on /dev/sdc16)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos16)'
	search --no-floppy --fs-uuid --set=root f4ac928c-66f9-4270-aff7-92004c385c1a
	linux /boot/vmlinuz-3.2.0-29-generic root=UUID=f4ac928c-66f9-4270-aff7-92004c385c1a ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-29-generic
}
menuentry "Ubuntu, avec Linux 3.2.0-29-generic (mode de dépannage) (on /dev/sdc16)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos16)'
	search --no-floppy --fs-uuid --set=root f4ac928c-66f9-4270-aff7-92004c385c1a
	linux /boot/vmlinuz-3.2.0-29-generic root=UUID=f4ac928c-66f9-4270-aff7-92004c385c1a ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-29-generic
}
menuentry "XUBUNTU 12.04-HYDV1, with Linux 3.2.0-53-generic-pae (on /dev/sdc21)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos21)'
	search --no-floppy --fs-uuid --set=root 8dea7f8a-541e-4d2a-8dfb-2b00c47461e4
	linux /boot/vmlinuz-3.2.0-53-generic-pae root=UUID=8dea7f8a-541e-4d2a-8dfb-2b00c47461e4 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-53-generic-pae
}
menuentry "XUBUNTU 12.04-HYDV1, with Linux 3.2.0-53-generic-pae (recovery mode) (on /dev/sdc21)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos21)'
	search --no-floppy --fs-uuid --set=root 8dea7f8a-541e-4d2a-8dfb-2b00c47461e4
	linux /boot/vmlinuz-3.2.0-53-generic-pae root=UUID=8dea7f8a-541e-4d2a-8dfb-2b00c47461e4 ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-53-generic-pae
}
menuentry "XUBUNTU 12.04-HYDV1, with Linux 3.2.0-52-generic-pae (on /dev/sdc21)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos21)'
	search --no-floppy --fs-uuid --set=root 8dea7f8a-541e-4d2a-8dfb-2b00c47461e4
	linux /boot/vmlinuz-3.2.0-52-generic-pae root=UUID=8dea7f8a-541e-4d2a-8dfb-2b00c47461e4 ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-52-generic-pae
}
menuentry "XUBUNTU 12.04-HYDV1, with Linux 3.2.0-52-generic-pae (recovery mode) (on /dev/sdc21)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos21)'
	search --no-floppy --fs-uuid --set=root 8dea7f8a-541e-4d2a-8dfb-2b00c47461e4
	linux /boot/vmlinuz-3.2.0-52-generic-pae root=UUID=8dea7f8a-541e-4d2a-8dfb-2b00c47461e4 ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-52-generic-pae
}
menuentry "Ubuntu, avec Linux 2.6.32-45-generic (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-45-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro vga=758 quiet splash
	initrd /boot/initrd.img-2.6.32-45-generic
}
menuentry "Ubuntu, avec Linux 2.6.32-45-generic (mode de dépannage) (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-45-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro single vga=758
	initrd /boot/initrd.img-2.6.32-45-generic
}
menuentry "Ubuntu, avec Linux 2.6.32-44-generic (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-44-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro vga=758 quiet splash
	initrd /boot/initrd.img-2.6.32-44-generic
}
menuentry "Ubuntu, avec Linux 2.6.32-44-generic (mode de dépannage) (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-44-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro single vga=758
	initrd /boot/initrd.img-2.6.32-44-generic
}
menuentry "Ubuntu, avec Linux 2.6.32-43-generic (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-43-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro vga=758 quiet splash
	initrd /boot/initrd.img-2.6.32-43-generic
}
menuentry "Ubuntu, avec Linux 2.6.32-43-generic (mode de dépannage) (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-43-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro single vga=758
	initrd /boot/initrd.img-2.6.32-43-generic
}
menuentry "Ubuntu, avec Linux 2.6.32-21-generic (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-21-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro vga=758 quiet splash
	initrd /boot/initrd.img-2.6.32-21-generic
}
menuentry "Ubuntu, avec Linux 2.6.32-21-generic (mode de dépannage) (on /dev/sdc7)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos7)'
	search --no-floppy --fs-uuid --set=root 776aacba-d439-400e-bbd3-d93c9eee78dd
	linux /boot/vmlinuz-2.6.32-21-generic root=UUID=776aacba-d439-400e-bbd3-d93c9eee78dd ro single vga=758
	initrd /boot/initrd.img-2.6.32-21-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-56-generic (on /dev/sdc9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-56-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-56-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-56-generic (mode de dépannage) (on /dev/sdc9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-56-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-56-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-55-generic (on /dev/sdc9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-55-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-55-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-55-generic (mode de dépannage) (on /dev/sdb9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd1,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-55-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-55-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-42-generic (on /dev/sdc9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-42-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-42-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-42-generic (mode de dépannage) (on /dev/sdc9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-42-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-42-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-40-generic (on /dev/sdc9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hdc,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-40-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro quiet splash $vt_handoff
	initrd /boot/initrd.img-3.2.0-40-generic
}
menuentry "XUBUNTU 12.04 SEAGATE PART9, avec Linux 3.2.0-40-generic (mode de dépannage) (on /dev/sdc9)" --class gnu-linux --class gnu --class os {
	savedefault
	insmod part_msdos
	insmod ext2
	set root='(hd2,msdos9)'
	search --no-floppy --fs-uuid --set=root 8c077151-2ec8-4a9c-a06f-80b8ed98598a
	linux /boot/vmlinuz-3.2.0-40-generic root=UUID=8c077151-2ec8-4a9c-a06f-80b8ed98598a ro recovery nomodeset
	initrd /boot/initrd.img-3.2.0-40-generic
}
### 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.
menuentry "clé Usb-live ou CD-ROM"  {
	insmod part_msdos
	insmod vfat
	search --no-floppy --fs-uuid --set=root 37C7-5656
	chainloader +1
}
#ou bien:
#menuentry "clé Usb-live ou CD-ROM"  {
#	insmod part_msdos
#	insmod vfat
#	search --no-floppy --fs-uuid --set=root xxxx-xxxx
# ou : search --no-floppy --set=root -l <étiquette de la clé ou du CD>
#	chainloader +1
# ou, peut-être, de manière plus générale, mais là c'est à tester au cas par cas, chainloader +n
# cet ordre veut dire de chainer sur l'amorce contenue dans le 1er ou les n premiers secteurs de la partition cible ($root)
#}
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

Fichier raccourci, pour ne contenir que les OS qui sont sur ce hdd usb ...

Remarque...
Comme avec la clé Grub, la partition qui contient le répertoire de stockage des iso à lancer en session live, est monté en /iso/device dans la session live Hybryde Fusion 13.04 .

1383489988.png

Si on a besoin d'aller "fouiller dedans" c'est par là qu'il faut passer ...

Voila...

@+.   Babdu89  .

Dernière modification par Babdu89 (Le 03/11/2013, à 17:36)


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

#8 Le 03/11/2013, à 17:53

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Alors ,comme je suis curieux, et que je dispose d'au moins une iso stockée sur mes hdd, qui veut bien booter avec le script de Arbiel...

En fin de réglage avec le scripts, les options de reboot de la machine ....


Panneau suivant, à nous de faire notre choix...
Option_ Réamorcer immédiatement, c'est clair, la machine reboot desuite . C'est ce que j'ai choisi.
Option_ Enregistrer pour un réamorçage ultérieur  @ Arbiel Stp une explication ..
Option_ Introduire l'image comme choix dans le menu standart .@ Arbiel, on ajoute une entrée pour l'image iso, au menu Grub de l'OS de tests??... Un Grub qui va lancer un syslinux??... Non??...

1383486996.png

Je viens de tester ==> Introduire l'image comme choix dans le menu standart...

Au reboot de la machine sur le menu Grub de l'OS de tests.
Tout en bas,j'ai une entrée supplémentaire.
Hybryde-Fusion6release-live-dvd-i386
En éditant cette entrée de menu, j'ai;
setparams 'Hybryde-Fusion-release-live-dvd-i386'
iso_boot"Hybryde-Fusion-release-live-dvd-i386" {iso_boot "/ISO_LINUX/HYBRYDE/Hybryde-HY-D-V1/Hybryde-Fusion-release-live-dvd-i386.iso" "/ISO_LINUX/HYBRYDE/Hybryde-HY-D-V1/Hybryde-Fusion-release-live-dvd-i386.loopback.cfg"
échap et retour au menu.
Je valide , affichage des options suivantes.
Essayer sans installer
installer
vérification du disque
memory test.

Je choisi choisi essayer sans installer , la session live Hybryde Fusion 13.04 se lance ...

Ok, çà marche.

Je vais voir ce que donne l'option; Enregistrer pour un réamorçage ultérieur  ...

Édit.
J'ai testé, mais je n'ai pas compris à quoi sert cette option.
Comme avec la première option, on reboot sur un menu grub qui offre le choix
Essayer sans installer
Installer
vérifier
memory test
 
le premier lance la session live. je pensais que çà gardait les réglages pour un prochain lancement du script.
Je vais tenter la relance du script....

Édit, non les réglages ne sont pas proposé par défaut. Au deuxième reboot, on perd l'entrée pour la session live...

Arbiel??? ...

Comme ce qui m'intéresse, c'est de pouvoir faire tout çà à partir du même hdd usb.
Je vais faire un répertoire , pour y mettre l'iso qui démarre bien en session live, sur le même hdd usb, que celui qui est démarré par l'Os qui sert aux tests ...
Et je vais recommencer ...

Édit;
Çà marche aussi, ...Sympa de tout avoir sur le même hdd et usb qui plus est. Çà va marcher sur plusieurs machines ...

@+.   Babdu89  .

Dernière modification par Babdu89 (Le 03/11/2013, à 19:40)


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

#9 Le 04/11/2013, à 01:48

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Les tests continuent.

L'iso du MULTISYSTEM ( basé sur precise) de frafa boot aussi en session live...


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

#10 Le 04/11/2013, à 03:02

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Ah!! Quand même!!...

Je viens de retrouver l'iso de l'OS qui sert aux tests

Hybryde Fusion 12.04 32 bits .Basée sur Ubuntu 132.04 ... Elle boot aussi en session live .

J'ai souvent ce message avec mes tests ...

1383526875.png

Évidement ,çà ne boot pas ...

@+.   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

#11 Le 04/11/2013, à 12:18

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Bonjour.
Bon ,au fait j'ai bien des iso en stock ... Mais il faudrait bien que je me mette à jour avec les dernière versions officielles ... Peut-être que çà marcherait mieux...
Séances de téléchargement en prévisions ...

@+.  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

#12 Le 05/11/2013, à 17:57

Laërte

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Bonjour,
J'ai un problème concernant le script, il est à relancer à chaque fois qu'on veut modifier les images isos à lancer où c'est possible de le faire à la main ?
Parce que mon but, c'est d'avoir une clé live disposant de plusieurs isos de choix, modifiable à volonté. Or le problème du script c'est que c'est un script bash... et que j'utilise Windows actuellement... donc pas possible de le lancer.
Mais j'ai déjà la première version du script donné par Arbiel, est-ce que remplacer mon grub.cfg par une nouvelle version de celui-ci ne serai pas suffisant ? Parce que le script entier ça risque de ne pas être possible... Et surtout pas pratique, vu que je n'ai de Linux avec Internet que pendant le Week-end (j'ai enfin créé ma machine virtuelle...)
Et pas tout compris au script (que j'ai lu quand même... tongue ) est-ce que tu vas bientôt l'expliquer où est-ce que je vais devoir parcourir des tonnes de pages de documentation (vu que ta config ne marche pas très bien, si j'ai bien compris...) ?
Ou encore, est-ce que garder l'ancien script en rajoutant set root=iso au début de chaque loopback ne marcherait pas ? Où est-ce que je pourrais rencontrer d'autres problèmes que ce script a pour but de m'éviter ?
En bref il faudrait que quelqu'un m'explique ce script plus en détails, parce qu'autant j'avais à peu près compris le précédent, autant là, vu que je ne connais pas le bash, je ne comprend quasiment plus rien (où en tout cas, pas l'essentiel... sad ) .
Je n'ai pas encore lu les scripts de Babdu89 (j'ai un temps assez limité au lycée...) mais je vais essayer de le faire assez vite. Peut-être que ses test me permettront de mieux comprendre (même si d'après ce que j'ai compris, le fichier bash est quand même nécessaire...).
Enfin, bref, si vous pouvez m'expliquer, tant mieux, sinon je via striffouiller un peu dans ma config en espérant ne pas la faire planter (vu que tout marche bien pour une fois...).
Je ne serais paut-être pas très actif en ce moment à cause du lycée et de l'accès à Internet restreint.

Hors ligne

#13 Le 05/11/2013, à 18:25

Arbiel

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

@Laërte

J'ai bien conscience des difficultés qui découlent de ma faible disponibilité, mais je reste à l'écoute et je ne te laisserai pas au milieu du gué.

Voir ici

Arbiel


Arbiel Perlacremaz
Dell Vostro 3550 Ubuntu 14.04 64 bits

Hors ligne

#14 Le 05/11/2013, à 20:00

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Bonsoir.
@ Arbiel, post#1 tu dis;

Bonsoir à tous

Edit : la version 2 est publiée au #4 ci-dessous

C'est au post#5 que tu indiques la nouvelle version du script ... wink

@ Laërte.


J'ai un problème concernant le script, il est à relancer à chaque fois qu'on veut modifier les images isos à lancer où c'est possible de le faire à la main ?

Non ,il est a relancer , à chaque foi que l'on veut lancer une nouvelle iso . Il ne modifie rien dans les iso .

La différence entre le script , et la clé usb avec le Grub modifié par Arbiel ...

La clé tu connais puisque tu testes aussi ...
Tu as des iso dans le répertoire amorce, et le grub modifier par Arbiel ,est capable de lancer l'iso que tu choisis de lancer en session live.
Mais il n'y a rein de graphique là-dedans... Il faut mettre les mains dans le cambouis comme Arbiel l'explique ici ...

http://forum.ubuntu-fr.org/viewtopic.php?id=1370001&p=1



Le script bash de ce sujet, doit être lancé depuis une session installée de Ubuntu.
On ne peut pas le lancer depuis la clé usb grub modifié par Arbiel.

Je vais faire une tentative de lancement de ce script depuis une session live Linux d'une de mes clés et depuis un CD live, avec une des iso que le script démarre chez moi ... Mais c'est juste par curiosité pour savoir si çà marche ...
Mais...
J'ai un doute que çà marche, car les sessions live usb et CD sont lancées par syslinux, et non grub .
Le seules sessions Linux Cd/usb live, lancées par un grub,  sont celle du MultiSystem de frafa. Il faudrait que je teste çà aussi, pour voir si le script marche avec le grub modifié par frafa, pour l'utilisation du MultiSystem . En faisant une sav du fichier grub.cfg du MultiSystem, je ne prends pas de gros risque. Sinon ,je refais une clé MultiSystem.

Marrant à tester ce truc là...
Le MultiSystem lance les iso en session live qui sont dans la partition FAT32 du MultiSystem. J'en choisi une, je lance la session live. je prépare le script. je le lance, pour lui demander de lancer une session live d'une iso qui n'est pas dans la clé MultiSystem. On va bien voir ce que çà va faire .

Alors ... Faire une machine virtuelle Linux dans W$, pour y mettre le script et le lancer, c'est sortir la "grosse artillerie" .

Pour moi, je vois de l'intérêt avec le script, car sur tous mes hdd (interne et usb) il y a des Linux Ubuntu installé.
De n'importe quel disque... Je lance la/les machine dessus en utilisant l'Os qui démarrer sur ce disque par défaut.
Je prépare le script dans mon dossier personnel, je le rend exécutable.
Je le lance depuis la session Linux installé que j'utilise.
Dans les fenêtres zenity qui s'ouvrent. J'indique le répertoire grub de la session de travail que j'utilise.  Puis le chemin d'accès de l'iso que je veux lancer en session live. iso stockée dans une partition d'un de mes hdd ...
Et je réponds aux questions des autres fenêtres zenity. 
Je valide, et la machine reboot en session live sur l'iso que j'ai choisi, si celle-ci veut bien démarrer en session live ...

Tout se passe depuis les Linux installés sur mes hdd. Pas besoin de clé usb grub modifié par Arbiel .

En fait avec ce script ,Arbiel nous donne la possibilité de démarrer une session live d'une iso Linux, sans avoir besoin de faire un Cd live ou une clé usb live.
Voila l'intérêt de la chose pour moi .


Je n'ai pas encore lu les scripts de Babdu89 (j'ai un temps assez limité au lycée...)

Quels scripts??? Je suis bien incapable d'en écrire un seul, même tout petit... Allez si!!! . Je commencerai par ceci ;

#! /bin/bash

Et çà n'irait pas plus loin ...  tongue sad


@+.   Babdu89.

Dernière modification par Babdu89 (Le 06/11/2013, à 02:30)


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

#15 Le 06/11/2013, à 00:41

Arbiel

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

@Babdu89

Babdu89 a écrit :

J'indique le répertoire grub de la session de travail que j'utilise.

Pour être plus précis, il s'agit du grub qui te permet de lancer ta session de travail, qui n'est pas obligatoirement ton /boot/grub ; mais, cela, je crois que tu l'as bien compris.

Je ne vois pas pourquoi le script ne fonctionnerait pas depuis une session démarrée depuis la clé de Laërte. De plus, le 3e choix du dernier écran permet d'ajouter à volonté de nouvelles lignes dans le grub de la clé, et donc de nouvelles iso (s). Merci de le confirmer après ton test.

@Laërte
Il faudra reprendre le fichier de ta clé pour utiliser le script. J'introduirai cela dans la version 3, mais avant, il me faut donner les explications que j'ai promises.

Arbiel


Arbiel Perlacremaz
Dell Vostro 3550 Ubuntu 14.04 64 bits

Hors ligne

#16 Le 06/11/2013, à 01:44

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Bonsoir.

Autre test...

Babdu89 a dit;
Le script bash de ce sujet, doit être lancé depuis une session installée de Ubuntu.
On ne peut pas le lancer depuis la clé usb grub modifié par Arbiel.

Je vais faire une tentative de lancement de ce script depuis une session live Linux d'une de mes clés et depuis un CD live, avec une des iso que le script démarre chez moi ... Mais c'est juste par curiosité pour savoir si çà marche ...
Mais...
J'ai un doute que çà marche, car les sessions live usb et CD sont lancées par syslinux, et non grub .
Le seules sessions Linux Cd/usb live, lancées par un grub,  sont celle du MultiSystem de frafa. Il faudrait que je teste çà aussi, pour voir si le script marche avec le grub modifié par frafa, pour l'utilisation du MultiSystem . En faisant une sav du fichier grub.cfg du MultiSystem, je ne prends pas de gros risque. Sinon ,je refais une clé MultiSystem.

Marrant à tester ce truc là...
Le MultiSystem lance les iso en session live qui sont dans la partition FAT32 du MultiSystem. J'en choisi une, je lance la session live. je prépare le script. je le lance, pour lui demander de lancer une session live d'une iso qui n'est pas dans la clé MultiSystem. On va bien voir ce que çà va faire .

Marrant à tester ce truc là...
Le MultiSystem lance les iso en session live qui sont dans la partition FAT32 du MultiSystem. J'en choisi une, je lance la session live. je prépare le script. je le lance, pour lui demander de lancer une session live d'une iso qui n'est pas dans la clé MultiSystem. On va bien voir ce que çà va faire .

Et bien çà marche, avec une iso stocké en dehors de la clé MultiSystem, lancée en session live avec  le script d'arbiel, depuis le menu de la clé MultiSystem  .

Config. du moment.
Une clé live MultiSystem.
Mes hdd, dont un qui a le répertoire de stockage de mes iso téléchargées .

Lancement de la machine sur la clé live MultiSystem.
Lancement d'une iso qui est sur la clé MultiSystem.
Préparation du script de Arbiel.
Lancement du script.

1383691594.png

Je laisse chercher les répertoire grub, en espèrant qu'il me propose le Grub du MultiSystem.
OK ,Comme je n'ai monté aucune partition... Le MultiSystem est monté dans /iso/device . Je choisi donc son grub .

1383691759.png

La suite du déroulement du script:

1383691927.png

J'indique dans la fenêtre le chemin de l'iso à lancer en session live .

1383691982.png

1383692034.png

1383692095.png

1383692163.png

Comme je veux créer une entrée pour pouvoir lancer l'iso en live de puis sont répertoire de stockage, je choisi cette option ...

1383692292.png

Et je teste le lancement de la clé MultiSystem.

Déçu!!!...
Çà lance le menu MultiSystem habituel sans rien proposer pour l'iso stockée ailleurs que sur la clé .

Je regarde dans le répertoire /boot/grub de la clé MultiSystem.
J'ai bien le dossier /boot/grub/greffons  qui contient le fichier   <fonctions_iso.cfg>
J'ai bien dans ce répertoire le fichier   <custom.cfg>
Et il a bien été créé dans le répertoire de l'iso à lancé le fichier <nom de l'iso.loopback.cfg>

Qu'est ce qui ne marche pas?...

Je me suis rappelé ce que me dit Arbiel dans le sujet consacré à la clé grub modifiée par Arbiel .

http://forum.ubuntu-fr.org/viewtopic.ph … #p15084671

@Babdu89

Je suis surpris que tu aies dû ajouter

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

à la fin de ton fichier grub.cfg car ce code est inclus systématiquement dans les fichiers de la version 1.99. Dans la version 2.00, que tu dois utiliser, on trouve

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

qui revient au même.

Je n'ai pas vu çà dans le fichier grub.cfg de la clé MultiSystem.
Donc en "tâtonnant" ( Ne pas oublier que je n'y connais rien en code, je "bidouille"  en comparant avec ce qui existe ).
J'ai donc ajouté une entrée  "Custom"  dans le fichier /boot/grub/grub.cfg, de la clé MultiSystem comme ceci .
Depuis le menu grub de la clé MultiSystem,  j'arrive à lancer une iso qui est stockée sur une partition de un de mes hdd ... Pas dans la clé MultiSystem.

menuentry "_______________CUSTOM_______________" {
ECHO
}
menuentry "Custom " {
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
}

grep menuentry de la clé donne ceci

1383693572.png

J'ai bien mon entrée  Custom dans le menu  de la clé MultiSystem ...

Reboot sur la clé MultiSystem. Je choisi  "Custom" , je valide...
J'ai le choix des options ;
Essayer sans installer
Installer
Verif du disque
Memory test.

Je choisi  "Essayer sans installer" ... BINGO !!!  Depuis le menu grub de la clé MultiSystem,  j'arrive à lancer une iso qui est stockée sur une partition de un de mes hdd ... Pas dans la clé MultiSystem.

Mais bon ,comment lancer le script en dehors d'une session live ou installé ??? ... Çà serait bien .

Voila qui devrait peu-être intéresser frafa ...



Arbiel a dit;
Je ne vois pas pourquoi le script ne fonctionnerait pas depuis une session démarrée depuis la clé de Laërte. De plus, le 3e choix du dernier écran permet d'ajouter à volonté de nouvelles lignes dans le grub de la clé, et donc de nouvelles iso (s). Merci de le confirmer après ton test.

Ah oui!!! ... La clé grub modifiée par Arbiel. Elle aussi boot sur grub . Et lorsqu'elle contient une iso , on peut lancer une session live, puis lancer le script depuis cette session live . On doit pouvoir ajouter une nouvelle entrée dans le menu grub de la clé  grub modifiée par Arbiel .
Faut que je teste çà tien ...

@+.   Babdu89  .

Dernière modification par Babdu89 (Le 06/11/2013, à 12:42)


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

#17 Le 06/11/2013, à 01:46

Arbiel

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM


Arbiel Perlacremaz
Dell Vostro 3550 Ubuntu 14.04 64 bits

Hors ligne

#18 Le 06/11/2013, à 02:09

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Arbiel à dit

Installation d'une distribution

Une image iso ayant été chargée, il devient possible d'installer la distribution incluse sans avoir eu ni à graver un CD ou un DVD, ni à spécialiser une clé USB à cet effet. La partition dans laquelle se trouve le fichier image est montée en /isodevice. Ubiquity n'accepte pas d'installer la distribution sur le même périphérique (/dev/sda par exemple) tant que cette partition reste montée. Comme ni le gestionnaire de disques, ni GParted n'acceptent de la démonter car ils la voient occupée, avant de lancer l'installation, il faut passer la commande

sudo umount -lfd /isodevice

quelques supplémentaires viendront plus tard.

Ah!! voila qui devrait faire chez moi, l'objet d'un prochain test... Intéressant çà ...

Il faudrait aussi que je regarde le comportement de Ubiquity, avec le MultiSystem que j'ai installé sur un hdd usb. Je n'ai jamais réussi à installer une distro, dont l'iso est dans la première partition FAT32  Multysystem de ce hdd usb, sur des partitions d'installation de ce même hdd usb prévues pour ...
Peut être une idée de démontage de la partition FAt32 MultiSystem de ce hdd usb ...

Merci Arbiel pour les très bons commentaire du script...J'ai tout compris, c'est pour dire .... big_smile

Bon ,et bien reste plus-qu'a trouver pourquoi pas mal d'iso stockées dans mes hdd, ne veulent pas démarrer en session live avec le script ...

@+.   Babdu89  .

Dernière modification par Babdu89 (Le 07/11/2013, à 22:51)


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

#19 Le 07/11/2013, à 13:33

Laërte

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Ok, donc si je comprends bien (et je pense que c'est le cas tongue ), ce script sert surtout à démarrer des isos sur un PC sous Linux sans avoir à créer une clé live.
Ça ne me sera pas très utile pour l'instant, je ne pense pas que j'y reviendrai.
@Arbiel :
Concernant le script pour ma clé USB (je devrais plutôt dire, le fichier grub.cfg) où devrais-je rajouter "set root=iso" pour qu'il le fasse automatiquement (et que je n'ai plus de problème si jamais j'oublie de l'ajouter dans les loopback.cfg...) ?

Hors ligne

#20 Le 07/11/2013, à 16:50

Arbiel

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Bonjour

Laërte a écrit :

Ok, donc si je comprends bien (et je pense que c'est le cas tongue ), ce script sert surtout à démarrer des isos sur un PC sous Linux sans avoir à créer une clé live

Non, le PC peut être sous n'importe quel système. En démarrant à partir de la clé, on ignore complètement le système, ou les systèmes, du disque dur. Par contre, tu dois être sous Linux pour préparer ta clé.

Laërte a écrit :

où devrais-je rajouter "set root=iso" pour qu'il le fasse automatiquement

nulle part ; j'ai modifié le script.

Mais il faut modifier le fichier grub.cfg pour qu'il soit compatible avec le script.

Je viendrai, je pense, ce soir, t'indiquer que faire.

Arbiel


Arbiel Perlacremaz
Dell Vostro 3550 Ubuntu 14.04 64 bits

Hors ligne

#21 Le 07/11/2013, à 23:33

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Bonsoir.
Sur un hdd usb .
Première partition FAT32 de 100 Go. Avec un MutiSystem installé dessus, et des iso à lancer en session live dedans.
Partitions suivantes des OS Linux installés. Plus une partition de stockage de données NTFS.
La partition qui suit la partition FAT32 du MultiSystem, contient un Ubuntu 13.04 avec le logiciel du MultiSystem, ce qui permet l'ajout d'iso dans la partition FAT32, pour lancer les sessions live. Fonctionnement normal du MultiSystem.
La machine boot sur le MultiSystem du hdd usb
Depuis le menu du MultiSystem, j'ai ajouter une entrée dans le fichier grub.cfg, qui me permet de booter sur le grub de Ubuntu 13.04 (en /dev/sdg13, voir screen ci-dessous), et ainsi d'avoir accès aux autres Linux installé sur ce hdd usb. Par le menu grub de la 13.04 .
Remarque ;
Lorsque j'ajoute un Linux sur ce hdd, Il ne boot plus sur le MultiSystem, il boot sur le grub du dernier Linux installé. Donc depuis le menu grub du dernier Linux installé, je boot sur le Ubuntu 13.04 en /sdg13. Je fais une maj de grub. Depuis le logiciel MultiSystem qui es installé dessus, je fais une maj du grub du MultiSystem... Et la machine en bootant sur le hdd usb, démarre à nouveau sur le MultiSystem. Sympa hein!!  ???...

Donc depuis le MultiSystem de ce hdd usb , j'ai lancé une iso qui est dans la partition FAT32, en session live .
Depuis cette session live. J'ai préparé et lancer le script de Arbiel.
Et j'ai fait les même manip qu'indiquées post#16 (celle de la clé MultiSystem).
En rebootant la machine sur le MultiSystem du hdd usb. Depuis le menu du MultiSystem, (Custom) .
J'ai lancé lancé une session live d'une iso qui est dans la partition de stockage d'un de mes hdd interne. Çà marche ...
Depuis cette session live d'iso stockée ailleurs que dans le MultiSystem, j'ai préparé une partition d'installation sur le hdd usb. Et j'ai lancé l'installation, non sans avoir tenu compte de ce qui est dit ici...

Installation d'une distribution

Une image iso ayant été chargée, il devient possible d'installer la distribution incluse sans avoir eu ni à graver un CD ou un DVD, ni à spécialiser une clé USB à cet effet. La partition dans laquelle se trouve le fichier image est montée en /isodevice. Ubiquity n'accepte pas d'installer la distribution sur le même périphérique (/dev/sda par exemple) tant que cette partition reste montée. Comme ni le gestionnaire de disques, ni GParted n'acceptent de la démonter car ils la voient occupée, avant de lancer l'installation, il faut passer la commande

sudo umount -lfd /isodevice

quelques supplémentaires viendront plus tard.

J'ai donc démonté la partition de stockage contenant l'iso lancée en session live .
Et j'ai fait l'installation avec succès sur le hdd usb. Çà marche .
Bravo et merci  Arbiel .

Un screen du hdd usb MultiSystem . L'installation depuis l'iso lancée en session live, est faite en /dev/sdg2 ...

http://pix.toile-libre.org/?img=1383858770.png

Bon!!!. là çà ne concerne plus le script d'Arbiel . Donc un peu hs...
Sur le hdd usb. Il me reste a tester une installation avec une iso stockée dans la partition FAT32 du MultiSystem, lancée en session live.
En adaptant (il faut voir quel est le point de montage) la commande pour démonter la partition du MultiSystem. Car je n'ai pas encore réussi à le faire ...
On va voir si çà marche .

EDIT;

La partition MultiSystem est bien montée en /isodevive . Donc la commande ci-dessus marche pour démonter la partition.
Je suis entrain d'installer un nouveau Linux depuis une session live d'une iso qui est dans la partition du MultiSystem . C'est bon ,çà marche .

@.   Babdu89   .

Dernière modification par Babdu89 (Le 08/11/2013, à 02:13)


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

#22 Le 07/11/2013, à 23:43

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Arbiel a écrit :

Bonjour

Laërte a écrit :

Ok, donc si je comprends bien (et je pense que c'est le cas tongue ), ce script sert surtout à démarrer des isos sur un PC sous Linux sans avoir à créer une clé live

Non, le PC peut être sous n'importe quel système. En démarrant à partir de la clé, on ignore complètement le système, ou les systèmes, du disque dur. Par contre, tu dois être sous Linux pour préparer ta clé.

Laërte a écrit :

où devrais-je rajouter "set root=iso" pour qu'il le fasse automatiquement

nulle part ; j'ai modifié le script.

Mais il faut modifier le fichier grub.cfg pour qu'il soit compatible avec le script.

Je viendrai, je pense, ce soir, t'indiquer que faire.

Arbiel

Arbiel a écrit :

Bonjour

Laërte a écrit :

Ok, donc si je comprends bien (et je pense que c'est le cas tongue ), ce script sert surtout à démarrer des isos sur un PC sous Linux sans avoir à créer une clé live

Non, le PC peut être sous n'importe quel système. En démarrant à partir de la clé, on ignore complètement le système, ou les systèmes, du disque dur. Par contre, tu dois être sous Linux pour préparer ta clé.
Arbiel

Heuuuu!!!... Je ne pense pas que l'on puisse lancer le script depuis W$ .

Voila ce que j'ai testé.
Le script peut être lancé depuis un Linux installé. Ou depuis une session live Linux CD ou usb.
Ou bien encore, depuis une session live d'une iso Linux lancée depuis la clé grub que tu testes.

@+.   Babdu89  .

Dernière modification par Babdu89 (Le 08/11/2013, à 00:04)


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

#23 Le 08/11/2013, à 01:50

Arbiel

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Bonsoir

Alors, je n'ai pas été clair.

Non, le script ne peut pas être lancé depuis un système Windows, puisqu'il est écrit dans un langage, bash, qu'aucun système Windows ne connaît. Il peut être lancé comme le dit Babdu89.

Par contre. et c'est ce que j'ai voulu dire, la clé ayant été préparée, avec son grub, son grub.cfg et tous les autres fichiers, elle peut être utilisée sur un PC "purement" Windows, si l'on  peut dire.

Dernière modification par Arbiel (Le 08/11/2013, à 01:52)


Arbiel Perlacremaz
Dell Vostro 3550 Ubuntu 14.04 64 bits

Hors ligne

#24 Le 08/11/2013, à 02:11

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

@ Arbiel.

Par contre. et c'est ce que j'ai voulu dire, la clé ayant été préparée, avec son grub, son grub.cfg et tous les autres fichiers, elle peut être utilisée sur un PC "purement" Windows, si l'on  peut dire.

Absolument... wink

Je dirai même sur un PC sans disque dur, donc sans  aucun système d'exploitation .  big_smile

@+.   Babdu89   .    smile


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

#25 Le 08/11/2013, à 17:36

Babdu89

Re : [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM

Bonjour.

Post#18 et d'autres...Babdu89 a dit;
Bon ,et bien reste plus-qu'a trouver pourquoi pas mal d'iso stockées dans mes hdd, ne veulent pas démarrer en session live avec le script ...

Bon, et bien après de multiples tests et vérifications. Ce ne sont pas les iso choisies qui sont la cause du non lancement en session live ...

Mais la syntaxe du chemin d'accès à ces iso ..."Non du pipe!!!." Il n'était pas normal que la même iso soit lancée depuis la clé grub, et pas avec le script .

Pour le chemin d'accès. Si dans ce qui est écrit, il y a le moindre espace entre deux caratères, j'ai le souci ...

/DONNEES_SATA_1_/ISO_LINUX/ubuntu 13.04/<nom_de_l'isoà_lancer> ==> ubuntu 13.04, çà ne marche pas ...

/DONNEES_SATA_1_/ISO_LINUX/ubuntu_13.04/<nom_de_l'isoà_lancer> ==> ubuntu_13.04, çà marche ...

J'ai déjà observé çà lorsque je compresse des données pour les mettre en pièce jointes à des mails ... J'avais un refus .

Question?
Est ce que dans le script on peut coder de sorte que les espaces entre les caractères soient admis? . Car chez les futurs utilisateurs du script, il est fort probable que l'on retrouve cette situation.

Pour info, toutes les isos qui ne bootaient pas en les lançeant avec le script, sans messages d'erreur marchent après modifications adéquates.
Sauf celles qui sont bien spécifiques, mais à ce moment là j'ai des messages d'erreur dans le retour terminal.

Bon ,me reste plusqu'à  attendre; Soit une possible modif du script pour qu'il prenne en compte les espaces entre caractères ou qu'il y aie affichage d'un message d'avertissement ...

Donc encore des tests à venir .

voila.

@+.   Babdu89  .

Dernière modification par Babdu89 (Le 08/11/2013, à 17:39)


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

Haut de page ↑