diff --git a/scripts/fix-grub-live.sh b/scripts/fix-grub-live.sh new file mode 100644 index 0000000..a75a812 --- /dev/null +++ b/scripts/fix-grub-live.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# Reparer GRUB depuis une cle USB live +# Usage: sudo bash fix-grub-live.sh +set -e + +DISK="" +for d in /dev/sda /dev/nvme0n1 /dev/sdb /dev/vda; do + if [ -b "$d" ] && [ "$(cat /sys/block/$(basename $d)/removable 2>/dev/null)" = "0" ]; then + DISK="$d" + break + fi +done +[ -n "$1" ] && DISK="$1" +[ -z "$DISK" ] && { echo "Aucun disque detecte. Usage: $0 /dev/sdX"; exit 1; } + +if [[ "$DISK" == *"nvme"* ]]; then + P="${DISK}p" +else + P="${DISK}" +fi + +echo "=== Reparation GRUB sur $DISK ===" + +# Monter +mount "${P}2" /mnt +mount "${P}1" /mnt/boot/efi +for d in dev dev/pts proc sys run; do mount --bind /$d /mnt/$d; done + +# Installer git + fonts, cloner le repo, installer theme + GRUB +chroot /mnt bash -c ' + apt update -qq + apt install -y -qq git grub-efi-amd64 fonts-dejavu-core + [ -d /home/jules/photobooth ] || git clone https://git.copydev.fr/jules/photobooth.git /home/jules/photobooth + cd /home/jules/photobooth && git pull + bash scripts/install-grub-theme.sh + grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck +' + +# Nettoyer +umount -R /mnt + +echo "" +echo "=== GRUB repare ! Retirer la cle et rebooter ==="