Die Windows-Startoption fehlt nach der Installation von CentOS 7. Wie kann ich sie wiederherstellen?

21

Ich habe kürzlich CentOS 7 auf einem Computer installiert, auf dem Windows 7 ausgeführt wurde. Ich habe eine Dual-Boot-Installation durchgeführt und CentOS auf einer Partition installiert. Aber wenn ich meinen Computer hochfahre, habe ich nur zwei CentOS-Optionen. Es gibt mir nicht die Möglichkeit, Windows 7 zu starten. Wie kann ich Windows 7 wieder zu den Startoptionen hinzufügen?

HINWEIS: Ich lese diesen Beitrag mit dem Titel: CenTOS 7 Dual Boot mit Windows , aber in meinem /grubOrdner scheint sich nur eine splash.xpm.gzDatei ohne andere Dateien zu befinden. Außerdem bin ich neu in Linux und brauche Schritt für Schritt etwas mehr.

EDIT # 1

In der Befehlszeile werden die folgenden Ergebnisse angezeigt:

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

Außerdem untersuche ich derzeit die Möglichkeit, dass diese Befehle möglicherweise nicht für CentOS gelten. Zum Beispiel in diesem U & L Q & A Titel: " ? Equivalent von update-grub für RHEL / Fedora / CentOS - Systeme ", sowie das Q & A Titel: " Installierte Centos 7 , nachdem Windows und kann nicht starten Sie in CentOS " scheinen , dass ich implizieren sollte grub2 neu installieren. Aber wie mache ich das? Ich lerne gerade Linux.

EDIT # 2

Der folgende Befehl funktioniert. Hier ist die Ausgabe:

[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 ###
CodeMed
quelle
2
+1 für die Art und Weise, wie Sie es versucht haben, und dokumentiert Ihre Versuche in der Frage. Du wirst es gut machen.
Olivier Dulac

Antworten:

21

Dies wird normalerweise behoben, indem die Skripte die installierten Betriebssysteme erkennen und die Konfigurationsdatei des Bootloaders ( grub2in diesem Fall) generieren . Auf CentOS 7 sollte das so sein grub2-mkconfig.

  1. Überprüfen Sie, ob Windows erkannt wird. Führen Sie grub2-mkconfigdie Ausgabe aus, aber verwerfen Sie sie:

    $ 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
    

    Die Ausgabe sieht ähnlich (aber nicht identisch) aus wie oben gezeigt. Stellen Sie sicher, dass Windows aufgelistet ist.

  2. Wenn Windows im vorherigen Schritt aufgeführt war, fahren Sie fort und speichern Sie die neue Konfigurationsdatei. Erstellen Sie zuerst eine Sicherungskopie, nur für den Fall.

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

Wenn alles gut gegangen ist, sollten Sie jetzt in der Lage sein, Windows neu zu starten.

terdon
quelle
Ich habe auch ein Problem mit grub2. Ich mag die Antwort, aber wie verwerfe ich die Ausgabe? Ist das der Befehl grub2-mkconfig > /dev/null, den ich verwenden sollte? Funktioniert dies auch im Rettungsmodus, wenn Linux nicht bootet?
patrik
@patrik ja das > /dev/nullverwirft die ausgabe. In diesem Schritt wird nur geprüft, ob Windows erkannt wird. Es macht nichts. Es ist sudo grub2-mkconfig -o /boot/grub2/grub.cfgdas, was die neue Konfigurationsdatei schreibt. Beachten Sie auch, dass der Befehl auf Debian-basierten Systemen einfach ist sudo update-grub. Das Ausführen von einem Rettungssystem aus kann funktionieren, aber Sie benötigen zuerst einige andere Dinge. Schauen Sie sich hier meine Antwort an .
terdon
@terdon Ich habe Probleme bei der Neuerstellung dieser Schritte auf einem Windows 8-Computer, den ich mit CentOS 7 in einen Dual-Boot-Computer verwandeln möchte. Sind Sie bereit, mir dabei zu helfen? Hier ist der Link: unix.stackexchange.com/questions/210111/…
CodeMed
@CodeMed Ich kann es versuchen, aber ich weiß nicht viel über CentOS und weniger über Windows.
terdon
Hinzufügen einiger Informationen: Gerade getestet, dass diese Lösung auch für Windows 10 funktioniert. Es wird ein Eintrag namens Windows Recovery Environment (Loader) generiert , der trotz seines Namens keine Wiederherstellung durchführt und direkt unter Windows 10
startet
15

Im Anschluss an die Antwort von @terdon - wenn Sie den Test-Schritt tun, und grub2-mkconfig ist nicht die Windows - Partition finden. Stellen Sie als Nächstes sicher, dass Sie das Paket "ntfs-3g" installiert haben, damit Ihr Linux-System die Windows-Partition (en) lesen kann.

sudo yum install ntfs-3g

Nach der Installation, wenn Sie ausführen

sudo grub2-mkconfig > /dev/null

... sollte der Windows-Boot angezeigt werden. Wenn der andere Eintrag / die anderen Einträge in Ordnung sind, schreiben Sie ihn.

JosephK
quelle
1
Vielen Dank und +1 für den Einblick in diese alte Frage.
CodeMed
1
Möglicherweise müssen Sie auch einen --enablerepo epelSchalter für den ersten Befehl hinzufügen
gamliela
8

Ich bin auf dieses Problem gestoßen, als ich CentOS 7.0 installiert habe. Windows war ursprünglich nicht in der Ausgabe von grub2-mkconfig aufgeführt.

Um ntfs-3g wie in einer anderen Antwort vorgeschlagen zu installieren, musste ich zuerst die epel-Version installieren:

sudo yum install epel-release

Ein einfacher Versuch sudo yum --enablerepo epel install ntfs-3gführte zu einer Meldung , dass das Repository nicht gefunden wurde.

Die Installation von epel-release ermöglichte die Installation von ntfs-3g. Von dort wurde die Windows-Partition in grub2-mkconfig aufgelistet. Die Schritte in den vorherigen Antworten gaben dann die Option, Windows beim Booten auszuwählen.

clk
quelle
0

Zusammenfassung der Antworten von @terdon @JosephK und @clk zur Formalisierung des gesamten Verfahrens.

  1. Fügen Sie das Epel-Repository hinzu

    sudo yum install epel-release
    
  2. Installieren Sie das ntfs-3g-Paket

    sudo yum install ntfs-3g
    
  3. Führen Sie den grub2-mkconfigBefehl aus und prüfen Sie, ob der Windows-Eintrag erkannt wird.

    sudo grub2-mkconfig > /dev/null 
    
  4. Aktualisieren Sie die grub.cfgDatei.

    sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.old
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg   
    
Rohit
quelle