Contenu | Rechercher | Menus

Annonce

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

À propos de l'équipe du forum.

#1 Le 07/04/2018, à 15:38

Crestey

[Résolu] Affecter l'UUID d'un sdaX une variable

Bonjour,
Je connais la commande blkid :

crestey4@PC3:~$ sudo blkid /dev/sda5
/dev/sda5: UUID="531095b3-84fc-45ab-82ac-1feace9e29ad" TYPE="swap" PARTUUID="49fa3051-05"
crestey4@PC3:~$

Mais en fait je voudrais affecter l'UUID de /dev/sdaX à une variable
C'est sans doute très simple, mais je ne sais pas faire ... pourriez-vous m'aider

Dernière modification par Crestey (Le 07/04/2018, à 17:07)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#2 Le 07/04/2018, à 15:58

lynn

Re : [Résolu] Affecter l'UUID d'un sdaX une variable

Bonjour,

var=$(blkid -ovalue /dev/sda1|sed -n 2p)

«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#3 Le 07/04/2018, à 16:14

maxire

Re : [Résolu] Affecter l'UUID d'un sdaX une variable

Salut,

ou bien

UUID=$(lsblk -n -o uuid /dev/sda4)

Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#4 Le 07/04/2018, à 16:47

lynn

Re : [Résolu] Affecter l'UUID d'un sdaX une variable

maxire a écrit :

Salut,

ou bien

UUID=$(lsblk -n -o uuid /dev/sda4)

C'est encore plus simple effectivement et contrairement à blkid, lsblk s'utilise sans élévation des privilèges... smile


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#5 Le 07/04/2018, à 17:06

Crestey

Re : [Résolu] Affecter l'UUID d'un sdaX une variable

Merci à vous smile !


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#6 Le 07/04/2018, à 17:25

Crestey

Re : [Résolu] Affecter l'UUID d'un sdaX une variable

Désolé, en fait ce dont j'ai besoin finalement c'est la même chose mais à partir de hd(0,3) et non /dev/sda4 ,... si des fois c'est pas trop long ...

Dernière modification par Crestey (Le 07/04/2018, à 17:25)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#7 Le 07/04/2018, à 17:43

maxire

Re : [Résolu] Affecter l'UUID d'un sdaX une variable

hd(0,3)?
Il faudrait en dire plus, dans quel contexte d'utilisation?


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#8 Le 07/04/2018, à 18:03

Crestey

Re : [Résolu] Affecter l'UUID d'un sdaX une variable

@maxire
En fait je suis en train de finaliser mon fichier 07_custom afin de conclure ce fil :

#!/bin/sh
exec tail -n +3 $0
# 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.

function declare_u_n {
 u8="7b4229b6-e56b-4b6e-a0db-338fa10feb15";  n8="Xubuntu/XFCE 16.04 32Bits sur sda8"
 u7="79cdb3ee-db11-4942-a924-ef775514cff5";  n7="Xubuntu/XFCE 16.04 64Bits sur sda7" 
 u6="21b4fe2e-9914-44c6-bc7f-d6009e303c97";  n6="Ubuntu/Unity 16.04 32Bits sur sda6 (contient le grub maître)"
u11=$(lsblk -n -o uuid /dev/sda11)        ; n11="Ubuntu12.04 pour tests" 
 u3="e385c91c-f971-47d6-bf3a-b9eab8add41c";  n3="Toutoulinux sur sda3" ; }

function modenormal { recordfail; savedefault; #gfxmode $linux_gfx_mode
insmod gzio; insmod part_msdos; insmod ext2; set root='($1,$2)'; search --no-floppy --fs-uuid --set=root $3
linux /vmlinuz$4 root=UUID=$3 ro quiet splash $vt_handoff; initrd /initrd.img$4 ; }

function moderecovery {recordfail; #gfxmode $linux_gfx_mode
insmod gzio; insmod part_msdos; insmod ext2; set root='$1,$2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=$1,$2 --hint-efi=$1,$2 --hint-baremetal=ahci0,$2  $3
else search --no-floppy --fs-uuid --set=root $3; fi
linux /vmlinuz$4 root=UUID=$3 ro recovery nomodeset; initrd /initrd.img$4; }

declare_u_n
menuentry "$n8"  { modenormal hd0 msdos7  $u8  "" ; }
menuentry "$n7"  { modenormal hd0 msdos6  $u7  "" ; }
menuentry "$n6"  { modenormal hd0 msdos5  $u6  "" ; }
menuentry "$n11" { modenormal hd0 msdos10 $u11 "" ; }
menuentry "Windows 7 sur sda1" {insmod ntfs; savedefault; set root='(hd0,0)'; search --no-floppy --fs-uuid --set 5EBE4AA1617EE5D9; chainloader +1 ; }
menuentry "   " { true ; } ; #################################################"" ligne vide

submenu "Maintenance" {

declare_u_n
menuentry "$n3" { recordfail; insmod ext2; set root='(hd0,msdos2)'; search --no-floppy --fs-uuid --set=root $u3
linux /toutou/vmlinuz root=UUID=$u3 ro quiet splash $vt_handoff; initrd /toutou/initrd.gz ; }

menuentry "----------------------------------------------------------------" {true ; };
menuentry "$n8 - Noyau actuel    - Mode recovery" { moderecovery hd0 msdos7 $u8 "    " ; }
menuentry "$n8 - Noyau précédent - Mode normal  " { modenormal   hd0 msdos7 $u8 ".old" ; }
menuentry "$n8 - Noyau précédent - Mode recovery" { moderecovery hd0 msdos7 $u8 ".old" ; }
menuentry "Menu Grub de $n8"       {set root=(hd0,7)  ; configfile /boot/grub/grub.cfg ; }
menuentry "----------------------------------------------------------------" {true ; };
menuentry "$n7 - Noyau actuel    - Mode recovery" { moderecovery hd0 msdos6 $u7 "    " ; }
menuentry "$n7 - Noyau précédent - Mode normal  " { modenormal   hd0 msdos6 $u7 ".old" ; }
menuentry "$n7 - Noyau précédent - Mode recovery" { moderecovery hd0 msdos6 $u7 ".old" ; }
menuentry "Menu Grub de $n7"       {set root=(hd0,6)  ; configfile /boot/grub/grub.cfg ; }
menuentry "----------------------------------------------------------------" {true ; };
menuentry "$n6 - Noyau actuel    - Mode recovery" { moderecovery hd0 msdos5 $u6 "    " ; }
menuentry "$n6 - Noyau précédent - Mode normal  " { modenormal   hd0 msdos5 $u6 ".old" ; }
menuentry "$n6 - Noyau précédent - Mode recovery" { moderecovery hd0 msdos5 $u6 ".old" ; }
menuentry "Menu Grub de $n6"       {set root=(hd0,5)  ; configfile /boot/grub/grub.cfg ; }

}

Je souhaite récupérer les UUIDs sans avoir à aller les écrire moi-même.
En effet, durant tous mes essais, quand je ré-installe un ubuntu, il a le mauvais goût de changer l'UUID de la partition "/". Je dois donc réactualiser 07_custom à chaque fois.
A cette occasion, je me suis dit que ce serait plus sympa d'éviter d'avoir à les écrire dans 07_custom.

J'ai mis ta formule en ligne 10 pour essai. Mais ça ne passe pas au update-grub car (je pense) grub ne connaît pas les sda. Il connaît les UUID et les hd.

Sinon pour info, dans le sous-menu maintenance (plus bas), j'ai ajouté les menus grub des OS esclave (en chainant). Ça marche nickel.

Dernière modification par Crestey (Le 07/04/2018, à 18:34)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#9 Le 07/04/2018, à 18:20

maxire

Re : [Résolu] Affecter l'UUID d'un sdaX une variable

Crestey a écrit :

quand je ré-installe un ubuntu

Dans ce cas choisis de ne pas formater la partition déjà existante!


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#10 Le 07/04/2018, à 18:38

Crestey

Re : [Résolu] Affecter l'UUID d'un sdaX une variable

Tu as raison. Ça résout ce problème là. (Bien que je préfère me mettre dans la peau d'une installe toute neuve avec formatage pour mes tests.)
En revanche, c'est ce problème qui m'a fait réaliser que ce serait intéressant de ne pas avoir à saisir les UUID dans 07_custom (indépendamment de ce problème).
Si j'installe 07_custom sur une autre machine, je n'aurai pas à me faire suer à saisir tous ces UUIDs.

Dernière modification par Crestey (Le 07/04/2018, à 18:40)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#11 Le 07/04/2018, à 19:33

maxire

Re : [Résolu] Affecter l'UUID d'un sdaX une variable

Donc tu veux un menu de démarrage invariant tout en réalisant des installations/réinstallations à la volée.
Belle contradiction!

Je crois qu'il y a un gros problème dans ton objectif, je pense que tu devrais réfléchir de nouveau à ce que tu veux réaliser.
À ta place je remettrais tout à plat, tu es en train de t'enferrer.


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#12 Le 07/04/2018, à 19:43

Crestey

Re : [Résolu] Affecter l'UUID d'un sdaX une variable

Pourquoi tu dis ça ? En l'état (avec les UUIDs en dur) mon fichier 07_custom fonctionne très bien.
Je ne vais pas faire des installations/réinstallations à la vollée. Si je fais ça pour le moment, c'est juste parce que je teste. Après les tests, ce sera fini. Plus de réinstallations.
Mais comme je veux mettre ce fichier 07_custom sur mes 5 machines, et éventuellement sur celles de tous les amis que j'ai installés, si je trouve un moyen de ne pas renseigner les UUID, mais de trouver une formule style UUID=$(lsblk -n -o uuid /dev/sda4) mais qui fonctionne pour update-grub, ça me simplifiera la tâche, non ?


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#13 Le 07/04/2018, à 20:34

Watael

Re : [Résolu] Affecter l'UUID d'un sdaX une variable

pour me contredire :

eval $(blkid -o export); echo "$UUID"

lol


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne