Récuperer grub avec un live cd Debian

Salut
Suite a une tentative de multi-boot Debian/Opensuse qui s’est mal terminée il a fallu que je chroot et je me suis aperçu de certains pb dans les mode d’emploi que je trouvais sur internet ( via mon smartphone, ça sert bien :grinning: )

1- je considère que vous avez la connaissance de votre installation existante, exemple je sais que Debian est sur /dev/sda1 de mon disque dur
2- le Live cd Debian que j’ai utilisé est un Jessie 8.3

  • Le live cd a bien booté, vous réussissez à ouvrir un terminal dont le prompt est
    user@debian:~$

  • Ah dans la précipitation, vous n’avez pas pensé au clavier et vous vous retrouvez en qwerty

user@debian:~$ setxkbmap fr

pour cela il faut appuyer sur les touches setxkb,qp fr

  • Vérification de l’état des partitions
user@debian:~$ sudo fdisk -l

Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00038c4c

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1            2048  19531775  19529728   9.3G 83 Linux
/dev/sda2  *     19533822 625141759 605607938 288.8G  5 Extended
/dev/sda5        19533824  35237887  15704064   7.5G 82 Linux swap / Solaris
/dev/sda6        35239936 594421759 559181824 266.7G 83 Linux
/dev/sda7       594423808 625141759  30717952  14.7G 83 Linux

Disk /dev/loop0: 829.6 MiB, 869924864 bytes, 1699072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
  • Dans mon cas le flag boot n’est pas sur la bonne partition, je le veux sur /dev/sda1
user@debian:~$ sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00038c4c

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1            2048  19531775  19529728   9.3G 83 Linux
/dev/sda2  *     19533822 625141759 605607938 288.8G  5 Extended
/dev/sda5        19533824  35237887  15704064   7.5G 82 Linux swap / Solaris
/dev/sda6        35239936 594421759 559181824 266.7G 83 Linux
/dev/sda7       594423808 625141759  30717952  14.7G 83 Linux


Command (m for help): a
Partition number (1,2,5-7, default 7): 1

The bootable flag on partition 1 is enabled now.
  • on revérifie
Command (m for help): p
Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00038c4c

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048  19531775  19529728   9.3G 83 Linux
/dev/sda2  *     19533822 625141759 605607938 288.8G  5 Extended
/dev/sda5        19533824  35237887  15704064   7.5G 82 Linux swap / Solaris
/dev/sda6        35239936 594421759 559181824 266.7G 83 Linux
/dev/sda7       594423808 625141759  30717952  14.7G 83 Linux
  • On le retire de /dev/sda2
Command (m for help): a
Partition number (1,2,5-7, default 7): 2

The bootable flag on partition 2 is disabled now.

Command (m for help): p
Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00038c4c

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048  19531775  19529728   9.3G 83 Linux
/dev/sda2        19533822 625141759 605607938 288.8G  5 Extended
/dev/sda5        19533824  35237887  15704064   7.5G 82 Linux swap / Solaris
/dev/sda6        35239936 594421759 559181824 266.7G 83 Linux
/dev/sda7       594423808 625141759  30717952  14.7G 83 Linux
  • Nickel on écrit ça sur le disque
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

user@debian:~$ sudo fdisk -l

Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00038c4c

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048  19531775  19529728   9.3G 83 Linux
/dev/sda2        19533822 625141759 605607938 288.8G  5 Extended
/dev/sda5        19533824  35237887  15704064   7.5G 82 Linux swap / Solaris
/dev/sda6        35239936 594421759 559181824 266.7G 83 Linux
/dev/sda7       594423808 625141759  30717952  14.7G 83 Linux

Disk /dev/loop0: 829.6 MiB, 869924864 bytes, 1699072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
  • On verifie le MBR
user@debian:~$ sudo dd if=/dev/sda bs=512 count=1 | strings
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000385737 s, 1.3 MB/s
RPf1
Missing operating system.
f`f1
|fRfP
Ht[y9Y[
Multiple active partitions.
|XFSBu	f
Operating system load error.
  • C’est pas bon c’est pas marqué GRUB dedans
  • On chroot
user@debian:~$ sudo mkdir /mnt/chroot

user@debian:~$ sudo mount /dev/sda1 /mnt/chroot
user@debian:~$ sudo mount --bind /dev/ /mnt/chroot/dev
user@debian:~$ sudo mount -t proc /proc /mnt/chroot/proc

user@debian:~$ sudo mount -t sysfs /sys /mnt/chroot/sys

user@debian:~$ sudo chroot /mnt/chroot
root@debian:/# 
  • Là vous notez que le prompt à changé, c’est devenu root@debian:/#

  • On réinstalle grub

root@debian:/# grub-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
root@debian:/# 
  • Et voilà!

  • si besoin est vous pouvez verifier /boot/grub/grub.cfg et si vous ne le trouvez pas saisfaisant faire update-grub

  • On relit le MBR

root@debian:/boot/grub# dd if=/dev/sda bs=512 count=1 | strings
1+0 records in
1+0 records out
512 bytes copied, 0.000205447 s, 2.5 MB/s
RPf1
ZRr=
`|f	
\|f1
GRUB 
Geom
Hard Disk
Read
 Error
  • c’est bien écrit GRUB, ça sent meilleur :joy:

En tout cas ça ma sauvé et j’ai rebooter tranquille sur Debian

3 J'aime

Bonjour grandtoubab

J’utilise un fichier image ISO netinstall : debian-8.6.0-amd64-netinst.iso

Comme il s’agit d’une machine virtuelle utilisant un fichier image disque QCow2,
le nom du fichier de périphérique associé au disque est /dev/vda
et la partition hébergeant le système de fichiers racine est /dev/vda1

Mais la méthode est la même que pour un disque SATA, IDE, ou autre.


Une petite remarque : Pour ceux qui utiliseraient une partition séparée pour /boot/
vous devrez d’abord mounter le système de fichiers de cette partition avant de réinstaller le chargeur de boot GRUB
Le menu : Exécuter un shell dans /dev/xxxx
vous permettra de monter le système de fichiers de /boot afin de pouvoir réinstaller GRUB

1 J'aime