[Dualboot] Mon ordi ne boot plus !!!

Résolu
Bonjour à tous,

Je suis très surpris de voir que mon ordi ne boot plus !

En effet, je viens d'installer "mon premier linux" à coté de Windows 7 (pré-installé). Normalement, c'est linux qui se charge du dual-boot, mais, sans auqune raison particulière, je n'accède plus à la liste. à la place, le message suivant s'affiche : (environ)
unkown file system
grub rescue>_


Etant donné que ce n'est pas la première fois que ça m'arrive, je décide de refaire ce que j'avais déjà fait : réinstaller linux. Mais la, toujours le même cirque, alors j'ai supprimé la partition linux pour que ma carte mère trouve directement Windows, mais là :

error: no such partition.
grub rescue>_


Je ne sait plus quoi faire ...

Merci d'avance.

11 réponses

  1. Modérateur
    C'est normal. Un disque dur est scindé en plusieurs zones (les partitions) + une en-tête (le MBR). Grub, le menu qui permet de choisir entre lancer linux ou windows, est installé dans le fameux MBR. Ainsi supprimer les partitions linux ne supprime pas grub.

    - 1ère solution (bof bof) : nettoyer le MBR (fixmbr etc...) et oublier linux (snif)
    http://doc.ubuntu-fr.org/desinstallation#cas_2_suppression_d_un_multi-amorcage

    - 2ème solution (bof) : réinstaller linux en installant correctement grub, et écraser ainsi le grub caduque.

    - 3ème solution : régénérer un grub propre sans altérer ni linux ni windows, afin que tout marche correctement, ce qui aurait dû se passer dès le début. Une telle réparation se fait simplement à l'aide d'un CD d'installation ubuntu :
    http://doc.ubuntu-fr.org/tutoriel/comment_restaurer_grub

    Personnellement je te conseille l'approche par chroot c'est celle que j'utilise.

    1) Démarre sur le live CD et choisis "tester ubuntu sans rien modifier" (ou truc dans le genre)
    2) Ouvre un terminal : http://doc.ubuntu-fr.org/terminal et passe en root (administrateur) grâce à la commande :

    sudo -s


    3) Il repérer la partition / associée à linux (en théorie tu as fait 3 partitions, /, /home et la swap). Tape la commande suivante (derrière le "-", c'est la lettre L minuscule) :

    fdisk -l


    Ça va par exemple ressembler à ceci :

    Disk /dev/sda: 40.0 GB, 40020664320 bytes
    255 heads, 63 sectors/track, 4865 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x802b81ca
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1        1275    10241406    7  HPFS/NTFS
    /dev/sda2            1276        4740    27832612+  83  Linux
    /dev/sda3            4741        4865     1004062+  82  Linux swap / Solaris
    
    Disk /dev/sdb: 82.3 GB, 82348277760 bytes
    255 heads, 63 sectors/track, 10011 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x4707841a
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1   *           1       10011    80413326    b  W95 FAT32


    Ici il y a deux disques dur (/dev/sda et /dev/sdb) respectivement divisés en 3 partitions (/dev/sda1 à /dev/sda3) et 1 partition. Ici la seule partition Linux est /dev/sda2 donc ce serait celle là. Dans ton cas il y aura peut-être une ambiguïté entre / et /home.

    Supposons que la partition /dev/sda1 soit susceptible d'accueillir /. Tape :

    mkdir -p /mnt/linux
    mount /dev/sda1 /mnt/linux
    ls /mnt/linux


    Si dans la dernière commande tu vois apparaître boot, bin, etc, c'est gagné et passe à l'étape 4. Sinon démonte cette partition en tapant :

    umount /mnt/linux


    ... et essaye avec une autre partition (par exemple /dev/sda2) :

    sudo mount /dev/sda2 /mnt/linux
    ls /mnt/linux


    4) Ok le plus dur est fait ! Maintenant on monte encore deux trois bricoles et on répare le tout :

    mount -o bind /dev /mnt/linux/dev
    chroot /mnt/linux
    mount /proc
    mount /sys
    update-grub
    umount /sys
    umount /proc
    exit
    umount /mnt/linux/dev
    reboot


    Normalement ton grub devrait alors fonctionner correctement !

    Bonne chance
    2
    1. Contributeur
      Salut,

      Voir dans la FAQ : SuperGrubDisk
      0
      1. Merci, je vais essayer tout ça
        0
        1. Alors mamiemando, je ne comprend pas :
          "Supposons que la partition /dev/sda1 soit susceptible d'accueillir"
          Accueillir quoi ?

          En fait, voici ce que j'obtient :

          Disk /dev/sdb: 250.1 GB, 250059350016 bytes
          255 heads, 63 sectors/track, 30401 cylinders
          Units = cylinders of 16065 * 512 = 8225280 bytes
          Sector size (logical/physical): 512 bytes / 512 bytes
          I/O size (minimum/optimal): 512 bytes / 512 bytes
          Disk identifier: 0x23125307

          Device Boot Start End Blocks Id System
          /dev/sdb1 1 52 409600 27 Unknown
          Partition 1 does not end on cylinder boundary.
          /dev/sdb2 * 52 5151 40964783+ 7 HPFS/NTFS
          /dev/sdb3 5152 15465 82839858 5 Extended
          /dev/sdb4 29794 30402 4882432 83 Linux
          /dev/sdb5 5152 10250 40957686 7 HPFS/NTFS
          /dev/sdb6 10251 15221 39929526 7 HPFS/NTFS
          /dev/sdb7 15222 15465 1951744 82 Linux swap / Solaris

          Disk /dev/sdc: 2093 MB, 2093481984 bytes
          32 heads, 63 sectors/track, 2028 cylinders
          Units = cylinders of 2016 * 512 = 1032192 bytes
          Sector size (logical/physical): 512 bytes / 512 bytes
          I/O size (minimum/optimal): 512 bytes / 512 bytes
          Disk identifier: 0x6e826346

          Device Boot Start End Blocks Id System
          /dev/sdc1 * 1 1874 1888960+ c W95 FAT32 (LBA)
          root@ubuntu:~#

          J'ai une partition de recup, le windows, deux partitions de documents, swap, libre et linux (partition primaire).
          Bien evidament, je ne souhaite pas perdre Windows.
          0
          1. Modérateur
            "Supposons que la partition /dev/sda1 soit susceptible d'accueillir"

            Accueillir la partition "/". Le système Linux quoi :-)
            A priori c'est/dev/sdb4 chez toi.
            Truc étrange, tu n'as pas de disque /dev/sda...

            Donc bref, tu fais ce que je t'ai indiqué en changeant simplement /dev/sda1 par /dev/sdb4.

            Bonne chance
            0
            1. ça me donne ça:

              root@ubuntu:~# mount -o bind /dev /mnt/linux/dev
              root@ubuntu:~# chroot /mnt/linux
              root@ubuntu:/# mount /proc
              root@ubuntu:/# mount /sys
              root@ubuntu:/# update-grub
              Generating grub.cfg ...
              Found linux image: /boot/vmlinuz-2.6.35-22-generic
              Found initrd image: /boot/initrd.img-2.6.35-22-generic
              Found memtest86+ image: /boot/memtest86+.bin
              ls: ne peut accéder /casper-rw-backing: Aucun fichier ou dossier de ce type
              ls: ne peut accéder /casper-rw-backing: Aucun fichier ou dossier de ce type
              ls: ne peut accéder /casper-rw-backing: Aucun fichier ou dossier de ce type
              ls: ne peut accéder /casper-rw-backing: Aucun fichier ou dossier de ce type
              ls: ne peut accéder /casper-rw-backing: Aucun fichier ou dossier de ce type
              ls: ne peut accéder /casper-rw-backing: Aucun fichier ou dossier de ce type
              ls: ne peut accéder /casper-rw-backing: Aucun fichier ou dossier de ce type
              done
              root@ubuntu:/# umount /sys
              root@ubuntu:/# umount /proc
              root@ubuntu:/# exit
              exit
              root@ubuntu:~# umount /mnt/linux/dev


              ça ne marche qu'a moitié

              En faisant avec sdb1, j'ai ça :
              root@ubuntu:~# mkdir -p /mnt/linux
              root@ubuntu:~# mount /dev/sdb1 /mnt/linux
              root@ubuntu:~# ls /mnt/linux
              Boot bootmgr BOOTSECT.BAK Recovery System Volume Information


              Lequel prendre en sachant que je n'ai pas essayé la manoeuvre sur sdb1 mais étant donné qu' il s'agit de la partition d'origine (recup je crois) je ne préfère pas y toucher (pc portable et Windows pré-installé).
              0
              1. Modérateur
                Je ne sais pas ce que c'est que ce casper-rw-backing. Reprends la même procédure en lançant la commande suivante après avoir fait un chroot :

                mount /casper-rw-backing


                ... et en ajoutant avant le exit :

                umount /casper-rw-backing


                Sinon inspire-toi de ce qui est dit ici :
                http://ubuntuforums.org/showthread.php?t=1490379

                ... ou prend l'approche officielle :
                http://doc.ubuntu-fr.org/tutoriel/comment_restaurer_grub#procedure_standard

                Bonne chance
                0
                1. au fait, lorsque j'installe ubuntu, dans la rubrique : "chargeur d'amorçage" je sélectionne la racine du hdd (soit /dev/sdb +ref...) ou alors je sélectionne /dev/sdb4 ?
                  0
                  1. Modérateur
                    Ton boot loader doit être placé sur /dev/sdb (le MBR du disque). /dev/sdb4 c'est ta partition système (/).
                    0
                    1. Finalement, après avoir réinstallé linux sur sdb4 et le chargeur d'amorçage sur /sdb ; tut s'est résorbé, en fait, lorsque j'ai essayé de réinstaller linux, j'ai placé le chargeur d'amorçage sur la même partition que linux.

                      tout est fini et encore merci mamiemando
                      0
                      1. Modérateur
                        Pas de soucis, bonne continuation sous Linux !
                        0