Jump to content

Comment réparer Grub


Recommended Posts

Bonjour,

J'ai le problème suivant : Grub2 démarre mais ne m'affiche pas de menu, juste le prompt où je dois taper une ligne de commande. Pas cool.

J'ai compris que pour démarrer un linux je devais taper ces 3 lignes :

linux /boot/vmlinuz-3.6...initrd /boot/initrd-3.6...boot

Je tape ça puis je vois défiler des lignes à fond la caisse sur l'écran, puis ça se met en pause, je peux rien faire je suis obligé de couper le courant.

J'ai bien un liveCD avec lequel j'ai essayé de réparer grub, sans succès.

J'ai essayé (avec /dev/sda5 ma partition linux) :

mount /dev/sda5 /mntgrub2-install --boot-directory=/mnt/boot /dev/sda# ça marche pas...chroot /mntgrub2-install /dev/sda# ça marche pas...chroot /mntgrub2-mkconfig -o /boot/grub2/grub.cfg# ça marche pas...

Comment on répare grub ?

La doc officielle n'explique pas comment réparer, seul des types sur leurs blogs donnent des procédures toutes différentes et spécifiques à leurs cas, mais rien de généraliste.

Je vous remercie de votre aide :|

PS: J'ai un dualboot Windows7/Opensuse12.3

Link to comment
Share on other sites

essaye de démarrer avec :

linux /boot/vmlinuz-3.6... root=/dev/sda5initrd /boot/initrd-3.6...boot

Normalement avec ce genre de problème un "grub2-mkconfig -o /boot/grub2/grub.cfg" fait le boulot. On peut avoir le contenu de /boot ? De ton /boot/grub2 ? De ton /boot/grub2/grub.cfg ?

Link to comment
Share on other sites

Salut dudul88, merci de m'aider.

Alors voici le contenu des répertoires :

linux:~ # mount /dev/sda5 /mnt
linux:/mnt/boot # ls -ltotal 43804-rw-r--r-- 1 root users      512 May 10 12:50 backup_mbrlrwxrwxrwx 1 root users        1 May 10 12:50 boot -> .-rw-r--r-- 1 root users     1484 May 10 12:50 boot.readme-rw-r--r-- 1 root users   136057 May 10 12:50 config-3.7.10-1.4-desktop-rw-r--r-- 1 root users        0 May 10 12:50 do_purge_kernelsdrwxr-xr-x 4 root root      4096 May 10 12:50 grubdrwxr-xr-x 8 root users     4096 May 10 12:52 grub2lrwxrwxrwx 1 root users        5 May 10 12:50 grub2-efi -> grub2lrwxrwxrwx 1 root users       25 May 10 12:50 initrd -> initrd-3.7.10-1.4-desktop-rw-r--r-- 1 root users 30294016 May 10 12:50 initrd-3.7.10-1.4-desktopdrwx------ 2 root users     4096 May 10 12:50 lost+found-rw-r--r-- 1 root users   176760 May 10 12:50 memtest.bin-rw-r--r-- 1 root users   621056 May 10 12:50 message-rw-r--r-- 1 root users   241474 May 10 12:50 symvers-3.7.10-1.4-desktop.gz-rw-r--r-- 1 root users      516 May 10 12:50 sysctl.conf-3.7.10-1.4-desktop-rw-r--r-- 1 root users  2532324 May 10 12:50 System.map-3.7.10-1.4-desktop-rw-r--r-- 1 root users  5815095 May 10 12:50 vmlinux-3.7.10-1.4-desktop.gzlrwxrwxrwx 1 root users       26 May 10 12:50 vmlinuz -> vmlinuz-3.7.10-1.4-desktop-rw-r--r-- 1 root users  4999736 May 10 12:50 vmlinuz-3.7.10-1.4-desktop
linux:/mnt/boot/grub2 # ls -ltotal 184drwxr-xr-x 2 root users   4096 May 10 12:50 backgrounds-rw------- 1 root users     62 May 10 12:50 device.map-rw-r--r-- 1 root users    118 May 10 12:50 device.map.olddrwxr-xr-x 2 root users   4096 May  9 20:34 fonts-rw------- 1 root users   6821 May 10 12:52 grub.cfg-rw-r--r-- 1 root users 126464 May 10 12:51 grub.efi-rw-r--r-- 1 root users   1024 May 10 12:50 grubenvdrwxr-xr-x 2 root users  12288 May 10 12:50 i386-pcdrwxr-xr-x 2 root users   4096 May  9 20:34 localedrwxr-xr-x 3 root users   4096 May 10 12:50 themesdrwxr-xr-x 2 root users  12288 May 10 12:51 x86_64-efi

Et voici le contenu de mon grub.cfg :

linux:/mnt/boot/grub2 # cat grub.cfg## DO NOT EDIT THIS FILE## It is automatically generated by grub2-mkconfig using templates# from /etc/grub.d and settings from /etc/default/grub#### BEGIN /etc/grub.d/00_header ###if [ -s $prefix/grubenv ]; then  load_envfiset default="3"if [ x"${feature_menuentry_id}" = xy ]; then  menuentry_id_option="--id"else  menuentry_id_option=""fiexport menuentry_id_optionif [ "${prev_saved_entry}" ]; then  set saved_entry="${prev_saved_entry}"  save_env saved_entry  set prev_saved_entry=  save_env prev_saved_entry  set boot_once=truefifunction savedefault {  if [ -z "${boot_once}" ]; then    saved_entry="${chosen}"    save_env saved_entry  fi}function load_video {  if [ x$feature_all_video_module = xy ]; then    insmod all_video  else    insmod efi_gop    insmod efi_uga    insmod ieee1275_fb    insmod vbe    insmod vga    insmod video_bochs    insmod video_cirrus  fi}if [ x$feature_default_font_path = xy ] ; then   font=unicodeelseinsmod part_msdosinsmod ext2set root='hd0,msdos5'if [ x$feature_platform_search_hint = xy ]; then  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5'  82f1fa6d-8171-42de-b2f9-d346e00b3fe2else  search --no-floppy --fs-uuid --set=root 82f1fa6d-8171-42de-b2f9-d346e00b3fe2fi    font="/usr/share/grub2/unicode.pf2"fiif loadfont $font ; then  set gfxmode=auto  load_video  insmod gfxterm  set locale_dir=$prefix/locale  set lang=en_US  insmod gettextfiterminal_output gfxterminsmod part_msdosinsmod ext2set root='hd0,msdos5'if [ x$feature_platform_search_hint = xy ]; then  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5'  82f1fa6d-8171-42de-b2f9-d346e00b3fe2else  search --no-floppy --fs-uuid --set=root 82f1fa6d-8171-42de-b2f9-d346e00b3fe2fiinsmod gfxmenuloadfont ($root)/boot/grub2/themes/openSUSE/ascii.pf2loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans10.pf2loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans12.pf2loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans-Bold14.pf2insmod pngset theme=($root)/boot/grub2/themes/openSUSE/theme.txtexport themeif [ x${boot_once} = xtrue ]; then  set timeout=0elif sleep --interruptible 0 ; then  set timeout=3fi### END /etc/grub.d/00_header ###### BEGIN /etc/grub.d/10_linux ###menuentry 'openSUSE 12.3' --class 'opensuse-12-3' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-82f1fa6d-8171-42de-b2f9-d346e00b3fe2' {        load_video        set gfxpayload=keep        insmod gzio        insmod part_msdos        insmod ext2        set root='hd0,msdos5'        if [ x$feature_platform_search_hint = xy ]; then          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5'  82f1fa6d-8171-42de-b2f9-d346e00b3fe2        else          search --no-floppy --fs-uuid --set=root 82f1fa6d-8171-42de-b2f9-d346e00b3fe2        fi        echo    'Loading Linux 3.7.10-1.4-desktop ...'        linux   /boot/vmlinuz-3.7.10-1.4-desktop root=UUID=82f1fa6d-8171-42de-b2f9-d346e00b3fe2   splash=silent quiet showopts        echo    'Loading initial ramdisk ...'        initrd  /boot/initrd-3.7.10-1.4-desktop}submenu 'Advanced options for openSUSE 12.3' $menuentry_id_option 'gnulinux-advanced-82f1fa6d-8171-42de-b2f9-d346e00b3fe2' {        menuentry 'openSUSE 12.3, with Linux 3.7.10-1.4-desktop' --class 'opensuse-12-3' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.7.10-1.4-desktop-advanced-82f1fa6d-8171-42de-b2f9-d346e00b3fe2' {                load_video                set gfxpayload=keep                insmod gzio                insmod part_msdos                insmod ext2                set root='hd0,msdos5'                if [ x$feature_platform_search_hint = xy ]; then                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5'  82f1fa6d-8171-42de-b2f9-d346e00b3fe2                else                  search --no-floppy --fs-uuid --set=root 82f1fa6d-8171-42de-b2f9-d346e00b3fe2                fi                echo    'Loading Linux 3.7.10-1.4-desktop ...'                linux   /boot/vmlinuz-3.7.10-1.4-desktop root=UUID=82f1fa6d-8171-42de-b2f9-d346e00b3fe2   splash=silent quiet showopts                echo    'Loading initial ramdisk ...'                initrd  /boot/initrd-3.7.10-1.4-desktop        }        menuentry 'openSUSE 12.3, with Linux 3.7.10-1.4-desktop (recovery mode)' --class 'opensuse-12-3' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.7.10-1.4-desktop-recovery-82f1fa6d-8171-42de-b2f9-d346e00b3fe2' {                load_video                set gfxpayload=keep                insmod gzio                insmod part_msdos                insmod ext2                set root='hd0,msdos5'                if [ x$feature_platform_search_hint = xy ]; then                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5'  82f1fa6d-8171-42de-b2f9-d346e00b3fe2                else                  search --no-floppy --fs-uuid --set=root 82f1fa6d-8171-42de-b2f9-d346e00b3fe2                fi                echo    'Loading Linux 3.7.10-1.4-desktop ...'                linux   /boot/vmlinuz-3.7.10-1.4-desktop root=UUID=82f1fa6d-8171-42de-b2f9-d346e00b3fe2  showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe                echo    'Loading initial ramdisk ...'                initrd  /boot/initrd-3.7.10-1.4-desktop        }}### END /etc/grub.d/10_linux ###### BEGIN /etc/grub.d/20_linux_xen ###### END /etc/grub.d/20_linux_xen ###### BEGIN /etc/grub.d/20_memtest86+ ###menuentry 'openSUSE 12.3 Memtest' --class opensuse --class memtest86 --class gnu --class tools $menuentry_id_option 'memtest-82f1fa6d-8171-42de-b2f9-d346e00b3fe2' {        insmod part_msdos        insmod ext2        set root='hd0,msdos5'        if [ x$feature_platform_search_hint = xy ]; then          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5'  82f1fa6d-8171-42de-b2f9-d346e00b3fe2        else          search --no-floppy --fs-uuid --set=root 82f1fa6d-8171-42de-b2f9-d346e00b3fe2        fi        echo    'Loading memtest ...'        linux16 /boot/memtest.bin}### END /etc/grub.d/20_memtest86+ ###### BEGIN /etc/grub.d/20_ppc_terminfo ###### END /etc/grub.d/20_ppc_terminfo ###### BEGIN /etc/grub.d/30_os-prober ###### END /etc/grub.d/30_os-prober ###### BEGIN /etc/grub.d/40_custom #### 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.### END /etc/grub.d/40_custom ###### BEGIN /etc/grub.d/41_custom ###if [ -f  ${config_directory}/custom.cfg ]; then  source ${config_directory}/custom.cfgelif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then  source $prefix/custom.cfg;fi### END /etc/grub.d/41_custom ###### BEGIN /etc/grub.d/90_persistent ###### END /etc/grub.d/90_persistent ###

Bon grub2-mkconfig ne trouve pas Windows mais ça je m'en fou pour l'instant, je voudrais démarrer sur mon satané /dev/sda5.

Quand je fait grub2-install il me dit "réussi successfull" mais à mon avis c'est pas successfull du tout...

:fou:

Link to comment
Share on other sites

Lorsque tu es sur le prompt de grub tape ça :

linux   (hd0,msdos5)/boot/vmlinuz root=/dev/sda5initrd  (hd0,msdos5)/boot/initrdboot

Tu vas booter sur ta Suse normalement. À ce moment tu pourras faire un grub2-install /dev/sda.

Link to comment
Share on other sites

J'arrive pas à remettre grub.

J'ai réparé le MBR avec le CD de windows pour avoir au moins accès à Windows, mais maintenant je n'arrive pas à remettre GRUB.

Et dans le BIOS, j'ai une option qui s'appelle "UEFI boot option" qui était à Enable, je l'ai mis à Disable, ça marche pas mieux.

Comment je sais si mon PC est UEFI ou BIOS ?

Comment écrire sur le MBR ? J'ai beau taper :

grub2-install --recheck --force /dev/sda

il me dit 'successfull' mais au final c'est toujours Windows qui boot !!!

Je suis complètement paumé.

Bref, j'arrive à faire fonctionner mon liveCD et c'est tout... je suis trop nul :craint:

Link to comment
Share on other sites

J'ai un seul disque dur de 256Go :

linux:/home/linux # fdisk -lDisk /dev/sda: 256.1 GB, 256060514304 bytes255 heads, 63 sectors/track, 31130 cylinders, total 500118192 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytes                                         Disk identifier: 0x81deaba8   Device Boot      Start         End      Blocks   Id  System/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT     # partition 'System Reserved' de Windows/dev/sda2          206848   143359999    71576576    7  HPFS/NTFS/exFAT     # mon Windows (C:)/dev/sda3       143360000   143572991      106496   83  Linux               # partition /boot/dev/sda4       143572992   500117503   178272256    f  W95 Ext d (LBA)     # partition étendue/dev/sda5       143575040   206483455    31454208   83  Linux               #  Opensuse partition root //dev/sda6       206485504   269393919    31454208   83  Linux               #  partition /home/dev/sda7       269395968   500117503   115360768    7  HPFS/NTFS/exFAT     #  contenu divers pour les 2 systèmes
linux:/home/linux # gdiskGPT fdisk (gdisk) version 0.8.5Type device filename, or press <Enter> to exit: /dev/sdaPartition table scan:  MBR: MBR only  BSD: not present  APM: not present  GPT: not present

J'ai copié tout ce qui était sur la partition boot dédiée vers /dev/sda5/boot parce qu'aparemment une partition boot dédiée c'est pas bien. Donc /dev/sda3 est inutilisée maintenant, puisque soit disant c'est mal.

Link to comment
Share on other sites

Vérifie que l'UEFI est bien en mode BIOS. Ensuite boot sur le livecd et essaye :

# mkdir -p /mnt/suse# mount /dev/sda5 /mnt/suse# cd /mnt/suse# mount -o bind /dev dev# mount -t proc none proc# mount -t sysfs none sysfs# chroot . /bin/bash# grub2-mkinstall /dev/sda

d'après ce que j'ai compris c'est ce que tu faisais mais je préfère être sûr. Pendant que tu y es qu'as tu dans le /etc/fstab ?

Link to comment
Share on other sites

La ligne avec sysfs n'a pas fonctionné (mount: mount point sysfs does not exist).

et grub2-mkinstall n'existe pas, j'ai donc fait grub2-install.

J'obtient les messages suivants :

linux:/ # grub2-install /dev/sda/usr/sbin/grub2-bios-setup: warning: Sector 32 is already in use by the program `FlexNet'; avoiding it.  This software may cause boot or other problems in future.  Please ask its authors not to store data in the boot track./usr/sbin/grub2-bios-setup: warning: Sector 33 is already in use by the program `FlexNet'; avoiding it.  This software may cause boot or other problems in future.  Please ask its authors not to store data in the boot track.Installation finished. No error reported.

J'ai effectivement Autocad 2012 sur ma partition Windows et son système de licence utilise "FlexNet" pour écrire hors de la partition.

Mon fstab :

linux:/ # cat /etc/fstab/dev/disk/by-id/ata-M4-CT256M4SSD2_000000001307092B3944-part5 /                    ext4       discard,noatime,acl,user_xattr        1 1#/dev/disk/by-id/ata-M4-CT256M4SSD2_000000001307092B3944-part3 /boot                ext4       discard,noatime,acl,user_xattr        1 2/dev/disk/by-id/ata-M4-CT256M4SSD2_000000001307092B3944-part6 /home                ext4       discard,noatime,acl,user_xattr        1 2proc                 /proc                proc       defaults              0 0sysfs                /sys                 sysfs      noauto                0 0debugfs              /sys/kernel/debug    debugfs    noauto                0 0devpts               /dev/pts             devpts     mode=0620,gid=5       0 0#rajouts persotmpfs    /tmp         tmpfs    noatime,mode=1777    0 0tmpfs    /var/lock    tmpfs    noatime,mode=1777    0 0tmpfs    /var/run     tmpfs    noatime,mode=1777    0 0
Link to comment
Share on other sites

Ton fstab est bon. Effectivement je m'était trompé dans mes commandes enfin, ça a fait ce que ça devait normalement. Avec ça tu n'as pas récupéré grub ?

Edit : sinon FlexNet en est probablement la cause. Pour régler le problème il faut faire dans le chroot :

# dd if=/dev/sda of=~/save63sec bs=512 count=63 (ça sauvegarde les 63 1ers secteurs en cas de problème)# dd if=/dev/zero of=/dev/sda bs=512 count=2 seek=32 (ça supprime les 2 secteurs qui pose,t problème)# grub2-install /dev/sda
Link to comment
Share on other sites

Oui, j'ai récupéré grub au démarrage, merci.

Une étape de passée :yes:

Maintenant quand je choisi Opensuse dans le menu, il fait défiler les lignes sur l'écran et il se bloque comme décrit dans mon 1er post. Avec le voyant CapsLock qui clignote.

Et à l'écran j'ai ceci (je reproduis à la main ce que je vois) :

Initramfs unpacking failed: read errorKernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)Pid: 1, comm: swapper/0 Not Tainted 3.7.10-1.4-desktop #1Call Trace [<fffffffff81004818>] dumptrace+0x88/0x300 bla bla...................dumpstack+0x..... .............................panic+0x....................................;mount_block_root.........................prepare_namespace.................kernel_init................ret_from_fork-------------------[ cut here ]----------Warning: at /home/abuild/rpmbuild/BUILD/kernel-desktop-3.7.10/linux-3.7/arch/x86/kernel/smp.c......dump_trace.....----[ end trace ]------

C'est grave ?

Link to comment
Share on other sites

Dans le menu grub, fait "c" pour la ligne de commande.

Ensuite :

linux   (hd0,msdos5)/boot/vmlinuz root=/dev/sda5initrd  (hd0,msdos5)/boot/initrdboot

Il te restera à faire un grub2mkconfig -o /boot/grub2/grub.cfg

Link to comment
Share on other sites

Ca a marché !

Je démarre enfin sur mon Opensuse. Merci beaucoup dudul88 :kimouss:

Donc pour débriefer, le problème c'était que GRUB avait la mauvaise valeur dans la variable root, c'est ça ?

Et pour faire un chroot correctement, il faut changer quoi dans la ligne du sysfs ?

(j'essaye d'apprendre en même temps, vu que je foirait mes chroot apparemment, ton post #9 je vais le garder de coté)

Link to comment
Share on other sites

Bonjour ,

Je ne connais pas SUSE mais UBUNTU et d'autres.

A tout hasard et pour essayer d'être utile , j'ai dépanné plusieurs fois avec "boot-repair" et à chaque fois => nickel !!!

Salut.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...