web-dev-qa-db-fra.com

L'option de démarrage Windows est manquante après l'installation de CentOS 7, comment puis-je la récupérer?

J'ai récemment installé CentOS 7 sur une machine qui exécutait Windows 7. J'ai effectué une installation à double démarrage et installé CentOS dans une partition. Mais lorsque je démarre ma machine, cela ne me donne que deux options CentOS. Il ne me donne pas la possibilité de choisir de démarrer Windows 7. Comment puis-je ajouter Windows 7 aux options de démarrage?

REMARQUE: Je lis ce post intitulé: CenTOS 7 dual boot avec windows , mais mon /grub le dossier ne semble avoir qu'un splash.xpm.gz fichier dedans sans aucun autre fichier. De plus, je suis nouveau sur Linux et j'ai besoin de quelque chose de plus étape par étape.

EDIT # 1

J'obtiens les résultats suivants sur la ligne de commande:

[root@localhost home]# Sudo update-grub
Sudo: update-grub: command not found
[root@localhost home]# Sudo grub-mkconfig
Sudo: grub-mkconfig: command not found

De plus, je recherche actuellement la possibilité que ces commandes ne s'appliquent pas à CentOS. Par exemple, dans cette Q&R U&L intitulée: " Equivalent de update-grub pour les systèmes RHEL/Fedora/CentOS? ", ainsi que cette Q&R intitulée: " Centos 7 installé après Windows et peut ne démarre pas dans CentOS "semble impliquer que je devrais réinstaller grub2. Mais comment je fais ça? J'apprends maintenant Linux.

EDIT # 2

La commande suivante fonctionne. Voici la sortie:

[root@localhost home]# Sudo grub2-mkconfig 2>/dev/null
#
# 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 ###
set pager=1

if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${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=true
fi

function 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
}

terminal_output console
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'CentOS Linux, with Linux 3.10.0-123.el7.x86_64' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-123.el7.x86_64-advanced-77a053a9-a71b-43ce-a8d7-1a3418f5b0d9' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos 
    insmod xfs
    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'  589631f1-d5aa-4374-a069-7aae5ca289bc
    else
      search --no-floppy --fs-uuid --set=root 589631f1-d5aa-4374-a069-7aae5ca289bc
    fi
    linux16 /vmlinuz-3.10.0-123.el7.x86_64 root=UUID=77a053a9-a71b-43ce-a8d7-1a3418f5b0d9 ro rd.luks.uuid=luks-a45243be-2514-4a81-b7a1-7e4eff712d2d vconsole.font=latarcyrheb-Sun16 crashkernel=auto  vconsole.keymap=us rd.luks.uuid=luks-5349515e-a082-4ff2-b035-54da7b8d4990 rhgb quiet 
    initrd16 /initramfs-3.10.0-123.el7.x86_64.img
}
menuentry 'CentOS Linux, with Linux 0-rescue-369d0c1b630b48cc8ef010ceb99bc668' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-369d0c1b630b48cc8ef010ceb99bc668-advanced-77a053a9-a71b-43ce-a8d7-1a3418f5b0d9' {
    load_video
    insmod gzio
    insmod part_msdos 
    insmod xfs
    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'  589631f1-d5aa-4374-a069-7aae5ca289bc
    else
      search --no-floppy --fs-uuid --set=root 589631f1-d5aa-4374-a069-7aae5ca289bc
    fi
    linux16 /vmlinuz-0-rescue-369d0c1b630b48cc8ef010ceb99bc668 root=UUID=77a053a9-a71b-43ce-a8d7-1a3418f5b0d9 ro rd.luks.uuid=luks-a45243be-2514-4a81-b7a1-7e4eff712d2d vconsole.font=latarcyrheb-Sun16 crashkernel=auto  vconsole.keymap=us rd.luks.uuid=luks-5349515e-a082-4ff2-b035-54da7b8d4990 rhgb quiet 
    initrd16 /initramfs-0-rescue-369d0c1b630b48cc8ef010ceb99bc668.img
}

### 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_ppc_terminfo ###
### END /etc/grub.d/20_ppc_terminfo ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 7 (loader) (on /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-chain-386ED4266ED3DB28' {
    insmod part_msdos 
    insmod ntfs
    set root='hd0,msdos2'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 --hint='hd0,msdos2'  386ED4266ED3DB28
    else
      search --no-floppy --fs-uuid --set=root 386ED4266ED3DB28
    fi
    chainloader +1
}
### 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.cfg
Elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
22
CodeMed

Ceci est généralement résolu en exécutant les scripts pour détecter les systèmes d'exploitation installés et générer le chargeur d'amorçage (grub2 dans ce cas) fichier de configuration. Sur CentOS 7, cela devrait être grub2-mkconfig.

  1. Vérifiez que Windows est détecté. Courir grub2-mkconfig mais ignorer sa sortie:

    $ Sudo grub2-mkconfig > /dev/null 
    Generating grub configuration file ...
    Found background image: /usr/share/images/desktop-base/desktop-grub.png
    Found linux image: /boot/vmlinuz-3.16.0-4-AMD64
    Found initrd image: /boot/initrd.img-3.16.0-4-AMD64
    Found memtest86+ image: /boot/memtest86+.bin
    Found memtest86+ multiboot image: /boot/memtest86+_multiboot.bin
    Found Windows 7 (loader) on /dev/sda2
    

    La sortie sera similaire (mais pas identique) à ce qui est illustré ci-dessus. Assurez-vous que Windows est répertorié.

  2. Si Windows était répertorié à l'étape précédente, continuez et enregistrez le nouveau fichier de configuration. Faites d'abord une sauvegarde, au cas où.

    Sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.old
    Sudo grub2-mkconfig -o /boot/grub2/grub.cfg   
    

Si tout s'est bien passé, vous devriez maintenant pouvoir redémarrer sous Windows.

21
terdon

Suite à la réponse de @terdon - lorsque vous effectuez l'étape de test et que grub2-mkconfig pas trouve la partition Windows. Ensuite, assurez-vous que le package "ntfs-3g" est installé, afin que votre système Linux puisse lire la ou les partitions Windows.

Sudo yum install ntfs-3g

Après avoir installé cela, lorsque vous exécutez

Sudo grub2-mkconfig > /dev/null

... vous devriez voir le démarrage de Windows répertorié. Si les autres entrées sont correctes, continuez et écrivez-les.

15
JosephK

Je suis tombé sur ce problème lors de l'installation de CentOS 7.0. Windows n'était pas initialement répertorié dans la sortie de grub2-mkconfig.

Afin d'installer ntfs-3g comme suggéré dans une autre réponse, j'ai d'abord dû installer epel-release:

Sudo yum install epel-release

Essayer simplement Sudo yum --enablerepo epel install ntfs-3g a généré un message de référentiel introuvable.

L'installation d'epel-release a permis l'installation de ntfs-3g. De là, la partition Windows a été répertoriée dans grub2-mkconfig. Les étapes des réponses précédentes ont ensuite donné la possibilité de sélectionner des fenêtres au démarrage.

8
clk

Résumant les réponses par @terdon @JosephK et @clk pour formaliser la procédure complète.

  1. Ajouter le dépôt epel

    Sudo yum install epel-release
    
  2. Installer le paquet ntfs-3g

    Sudo yum install ntfs-3g
    
  3. Exécutez le grub2-mkconfig commande et vérifiez si l'entrée "Windows" est détectée.

    Sudo grub2-mkconfig > /dev/null 
    
  4. Mettez à jour le grub.cfg fichier.

    Sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.old
    Sudo grub2-mkconfig -o /boot/grub2/grub.cfg   
    
2
Rohit