[Grub-btrfs] 1.xx release

Autres projets et contributions
antynea
Hankyu
Messages : 49
Inscription : ven. 09 déc. 2011, 07:34

[Grub-btrfs] 1.xx release

Message par antynea » sam. 08 août 2015, 01:13

Bonjour,

Je travail actuellement sur la version 1.xx de grub-btrfs.
je tenais à en faire partager la communauté.

BTC donation address: 1Lbvz244WA8xbpHek9W2Y12cakM6rDe5Rt


À quoi donc que ça sert ce truc ?

Script tout bête, qui va rajouter au "menu-boot" de grub, la possibilité de démarrer sur vos snapshots (btrfs) (sous certaines contraintes)

Et comment c'est-y que ça marche ?

Une fois le paquet installé, le script est exécuté lors d'une mise à jour de votre grub.cfg
Le script, va trouver automatiquement vos snapshots, vérifier qu'ils soient aptes à boot, répertorier l'ensemble de vos "kernels,initramfs,microcode-intel" présent sur votre système.
Puis créer les entrées de menu correspondantes dans votre grub.cfg

Et comment que je fais pour l'installer ?

grub-btrfs est disponible sur aur(3/4) dans sa version GIT.
acutellement la branche master est réservé pour grub-btrfs version 1.xx
pour récupérer une autre version, modifier le pkgbuild de cette façon :

Code : Tout sélectionner

source=('git+https://github.com/Antynea/grub-btrfs.git#branch=celle dont vous avez besoin')
Oui mais après, comment que je fais pour m'en servir ?

Le script impose un minimum de manipulation de l'administrateur.
Par défaut, tout est automatique, mais si vous souhaité personnaliser un peu, voici ce qui vous est proposé :

Ajouter ces lignes à votre /etc/default/grub:

GRUB_BTRFS_SUBMENUNAME="ArchLinux Snapshots"
GRUB_BTRFS_PREFIXENTRY="Snapshot:"
GRUB_BTRFS_NKERNEL=("vmlinuz-linux")
GRUB_BTRFS_NINIT=("initramfs-linux.img" "initramfs-linux-fallback.img")
GRUB_BTRFS_INTEL_UCODE=("intel-ucode.img")

ps: Les valeurs proposées sont donné à titre d'exemple, par défaut, tout est automatiquement détecté.

Quoi est-ce donc que ça fait s'te chose ?

GRUB_BTRFS_SUBMENUNAME : Vous permet de personnaliser le nom du menu apparaissant dans le "boot-menu" de grub.
GRUB_BTRFS_PREFIXENTRY: Vous permet de rajouter un petit nom devant les entrées des snapshots
GRUB_BTRFS_NKERNEL: Vous permet de renseigner vos propres kernels (construits vous-même) ou bien en cas d'erreur d'auto-détection
GRUB_BTRFS_NINIT: Vous permet de renseigner vos propres initramfs (construits vous-même) ou bien en cas d'erreur d'auto-détection
GRUB_BTRFS_INTEL_UCODE: Vous permet de renseigner vos propres microcode (construits vous-même) ou bien en cas d'erreur d'auto-détection.(ou même de lancer tout autre chose, juste avant le lancement d'une init, avis au connaisseurs)

ps: j'ai pris le soin de prendre en compte le fait q'un "snapshot,kernel,initramfs,microcode" puisse avoir des espaces dans leur nom ( un peu fou à concevoir dans la réalité, mais maintenant que c'est fait ...)

En espérant, que ça puisse en intéresser quelques'uns.
Ps: oui ce script est difficilement portable (pure bashisme)

Have a good day ;)
Dernière édition par antynea le ven. 26 janv. 2018, 09:23, édité 2 fois.

antynea
Hankyu
Messages : 49
Inscription : ven. 09 déc. 2011, 07:34

Re: [Grub-btrfs] 1.xx release

Message par antynea » sam. 08 août 2015, 01:14

Quelques screenshots ( un peu bâtard, réalisé depuis une vm)

ImageNom du menu apparaissant au boot de grub
ici ( et par défaut) "ArchLinux Snapshots"

ImageSous-menu contenant les différents snapshots présent sur le fs ( bootable) ainsi que le préfix personnalisable
ici (et par défaut) "Snapshot:"

ImageMenu final permettant le démarrage de l'os sur le snapshot pré-selectionné avec le kernel et l'initramfs présent
ici (et par défaut) aucune personnalisation possible pour l'utilisateur, on boot et puis c'est tout !

antynea
Hankyu
Messages : 49
Inscription : ven. 09 déc. 2011, 07:34

Re: [Grub-btrfs] 1.xx release

Message par antynea » mar. 29 sept. 2015, 23:32

réservé

brevity
newbie
Messages : 1
Inscription : ven. 18 mars 2016, 23:48

Re: [Grub-btrfs] 1.xx release

Message par brevity » sam. 19 mars 2016, 00:02

D'abord, bravo pour votre travaux !
Mais pour moi, même si j'ai précisé

Code : Tout sélectionner

GRUB_BTRFS_NKERNEL=("vmlinuz-linux")
GRUB_BTRFS_NINIT=("initramfs-linux.img" "initramfs-linux-fallback.img")
dans mon /etc/default/grub, je n'ai que «initramfs-*» et «linuz-*» dans mon /boot/grub/grub.cfg pour les snapshots. Par conséquence, il faut corriger manuellement afin de les utiliser. J'utilise le kernel par défaut, mais mon arch s’installe dans un subvolume d'une partition btrfs qui contient aussi mon dossier de snapshots. Que faire pour rendre la partie des snapshots du grub correcte, s'il vous plaît ?
Merci d'avance.

antynea
Hankyu
Messages : 49
Inscription : ven. 09 déc. 2011, 07:34

Re: [Grub-btrfs] 1.xx release

Message par antynea » dim. 20 mars 2016, 22:15

Bonjour,

Merci de vous intéresser à mon travail.

L'erreur que vous rencontrez actuellement n'est pas commune, à moins d'utiliser ce script sur une autre distribution ou depuis un chroot(non testé jusqu'alors), auquel cas, je n'en assure aucun support.

Si vous utilisez ce script sur archlinux 64bits (non arm ou 32bits ou autre), il va me falloir de plus amples informations concernant votre système.

Aussi assurez-vous d'être complètement à jour sur vos paquets installés, qu'aucun fichier .pacnew ne subsiste etc...
Veuillez me faire connaître l'entièreté du retour des commandes suivantes (1 commande par ligne):

Code : Tout sélectionner

uname -srvmo
pacman -Qs grub
pacman -Qs bash
pacman -Qs btrfs
btrfs subvolume list -sa --sort=+rootid / | curl -F 'sprunge=<-' http://sprunge.us
blkid
cat /etc/fstab
grub-probe --target="fs" "/boot"
grub-probe --target="fs_uuid" "/boot"
grub-probe --target="fs" "/"
grub-probe --target="fs_uuid" "/"
ls -al /boot
ls -al /etc/grub.d/
cat /etc/grub.d/41_snapshots-btrfs > /dev/null 2>&1 | curl -F 'sprunge=<-' http://sprunge.us
cat /etc/default/grub > /dev/null 2>&1 | curl -F 'sprunge=<-' http://sprunge.us
sh /etc/grub.d/41_snapshots-btrfs > /dev/null 2>&1 | curl -F 'sprunge=<-' http://sprunge.us
grub-mkconfig -o /boot/grub/grub.cfg > /dev/null 2>&1 | curl -F 'sprunge=<-' http://sprunge.us
Si toutefois votre souci avait été résolu entre-temps, merci de m'en faire part.

Répondre