Bonjour
La réponse à la question de Laërte,
Laërte a écrit
est-ce que lorsque grub connaît l’emplacement d’une iso, il peut trouver l’UUID de la partition sur laquelle est stockée cette iso
est
Arbiel a écrit
Oui
J'imagine que tu veux récupérer cette information pour l'utiliser dans les commandes "menuentry" de fichiers "loopback.cfg" que tu écris à la main.
Mais toutes ces informations sont également accessibles depuis le système opérationnel, c'est-à-dire par ton script Python, comme par mon script bash. J'ai par ailleurs l'intention de définir une variable gbl_opt pour communiquer au noyau des informations sur la langue, le clavier, ou tout paramètre nécessaire au démarrage, de sorte que le fichier custom.cfg contiendrait des commandes telles que
source ${prefix}/greffons/fonctions_iso.cfg
submenu "lubuntu-15.04-desktop-i386" {set gbl_opt="arguments à passer au noyau" (il y aura éventuellement un problème de " ou de ')
iso_boot "/ISO_LINUX/lubuntu-15.04-desktop-i386.iso" "/ISO_LINUX/lubuntu-15.04-desktop-i386.loopback.cfg"}
et que le fichier lubuntu-15.04-desktop-i386.loopback.cfg serait modifié en conséquence
menuentry "Try Lubuntu without installing" {
linux /casper/vmlinuz ${gbl_opt} file=/cdrom/preseed/lubuntu.seed boot=casper iso-scan/filename=${iso_path} quiet splash ---
initrd /casper/initrd.lz
}
menuentry "Install Lubuntu" {
linux /casper/vmlinuz ${gbl_opt} file=/cdrom/preseed/lubuntu.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
}
L'uuid de la partition où se trouve l'iso pourrait être passé de la même manière, dans cette variable gbl_opt, à supposer qu'il s'agisse effectivement de la passer au noyau.
Mais cet uuid peut être calculé dynamiquement par grub, pour être transmis dans une variable. Comme grub peut calculer uuid et étiquette de la partition et de l'image iso elle-même, je propose les noms suivants
iso_uuid et iso_label pour l'uuid et l'étiquette de l'iso elle-même
host_iso_uuid et host_iso_label pour la partition qui héberge l'iso.
Je ne sais pas encore s'il sera nécessaire de rendre ces calculs optionnels, ce qui nécessiterait de définir un paramètre supplémentaire pour iso_boot et amorce_iso.
Pour ce qui est du calcul en bash des informations sur un fichier, voici ce que j'obtiens
for t in abstraction arc_hints baremetal_hints bios_hints compatibility_hint device disk drive efi_hints fs fs_label fs_uuid gpt_parttype hints_string ieee1275_hints partmap zero_check; do
> echo -n "${t} :" ; sudo.sh grub-probe -t ${t} '/media/remi/Emtec/grub/custom.cfg'; done;
abstraction :arc_hints :
baremetal_hints :ahci3,msdos1
bios_hints :hd3,msdos1
compatibility_hint :hd3,msdos1
device :/dev/sdd1
disk :/dev/sdd
drive :(hostdisk//dev/sdd,msdos1)
efi_hints :hd3,msdos1
fs :fat
fs_label :Emtec
fs_uuid :7411-8A0F
gpt_parttype :
hints_string :--hint-bios=hd3,msdos1 --hint-efi=hd3,msdos1 --hint-baremetal=ahci3,msdos1
ieee1275_hints :
partmap :msdos
zero_check :false
Arbiel
i