CentOS 7'yi yükledikten sonra Windows önyükleme seçeneği eksik, nasıl geri alabilirim?


21

Geçenlerde CentOS 7'yi Windows 7 çalıştıran bir makineye yükledim. İkili önyükleme yüklemesi yaptım ve CentOS'u bir bölüme yükledim. Ancak makinemi başlattığımda, bana sadece iki CentOS seçeneği veriyor. Bana Windows 7'yi başlatmayı seçme seçeneği sunmuyor. Windows 7'yi önyükleme seçeneklerine nasıl geri ekleyebilirim?

NOT: Bu yazı başlıklı yazıyı okuyorum: CenTOS 7 çift önyükleme pencereli , ancak /grubklasörümde yalnızca başka bir splash.xpm.gzdosya olmayan bir dosya var . Ayrıca, Linux'ta yeniyim ve adım adım daha fazla bir şeye ihtiyacım var.

# 1 DÜZENLEME

Komut satırında aşağıdaki sonuçları alıyorum:

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

Ayrıca, şu anda bu komutların CentOS için geçerli olamayacağını araştırıyorum. Başlıklı bu U & L Q & A Örneğin: " ? Update-grub Eşdeğer RHEL / Fedora için / CentOS sistemleri ": "yanı sıra bu Q & A başlıklı Windows'un sonra Centos 7 Yüklü ve CentOS içine değil çizme olabilir " diye I ima görünmektedir grub2'yi tekrar kurmalı. Ama bunu nasıl yaparım? Sadece şimdi Linux öğreniyorum.

# 2 DÜZENLEME

Aşağıdaki komut işe yarıyor. İşte çıktı:

[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 ###

2
Sormadan önce denediğiniz yol için + 1 ve sorudaki denemenizi de belgeleyin. İyi yapacaksın
Olivier Dulac

Yanıtlar:


21

Bu genellikle komut dosyalarının çalıştırılmasıyla giderilir, yüklü işletim sistemlerini algılar ve önyükleme yükleyicisinin ( grub2bu durumda) yapılandırma dosyasını oluşturur. CentOS 7'de böyle olmalı grub2-mkconfig.

  1. Pencerelerin algılandığını kontrol edin. Çalıştır grub2-mkconfigancak çıktısını atın:

    $ 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
    

    Çıktı yukarıda gösterilene benzeyecek (aynı değil). Windows'un listelendiğinden emin olun.

  2. Windows önceki adımda listeleniyorsa, devam edin ve yeni yapılandırma dosyasını kaydedin. İlk önce bir yedekleme yapın, sadece durumda.

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

Her şey yolunda giderse, şimdi Windows'u yeniden başlatmanız gerekir.


Ayrıca grub2 ile ilgili bir sorunum var. Cevabı beğendim ama çıktıyı nasıl atabilirim? Kullanmam gereken komut grub2-mkconfig > /dev/nullbu mu? Ayrıca, eğer Linux önyükleme yapmazsa, bu kurtarma modunda da çalışacak mı?
Patrik

@patrik evet, > /dev/nullçıktıyı atar. Bu adım sadece Windows'un tespit edilip edilmediğini kontrol etmektir. Hiçbir şey yapmaz. Öyle sudo grub2-mkconfig -o /boot/grub2/grub.cfgolduğu yeni bir yapılandırma dosyası yazar. Ayrıca Debian tabanlı sistemlerde komutun basit olduğunu unutmayın sudo update-grub. Bunu bir kurtarma sisteminden çalıştırmak işe yarayabilir, ancak önce başka şeyler gerekir. Cevabımı burada bir göz atın .
terdon

@terdon CentOS 7 ile çift önyükleme makinesine dönüştürmek istediğim bir Windows 8 makinesinde bu adımları yeniden oluşturmada sorun yaşıyorum. Bana bu konuda yardımcı olmak ister misiniz? İşte link: unix.stackexchange.com/questions/210111/…
CodeMed

@CodeMed Deneyebilirim ama CentOS hakkında ve WIndows hakkında daha az şey bilmiyorum.
terdon

Bazı bilgileri ekleme: sadece bu çözüm ayrıca, Windows 10 için çalıştığını test Olacak adlı bir giriş oluşturmak , Windows Kurtarma Ortamı (yükleyici) adını rağmen, herhangi bir kurtarma yapmayacağım ve Windows 10 doğrudan boot edecektir,
dr01

15

@Terdon tarafından yanıta takibi - Eğer test adımı ve ne zaman grub2-mkconfig yok değil Windows bölümünü bulun. Ardından, "ntfs-3g" paketinin kurulu olduğundan emin olun, böylece Linux sisteminiz Windows bölümlerini okuyabilir.

sudo yum install ntfs-3g

Bunu yükledikten sonra, çalıştırdığınızda

sudo grub2-mkconfig > /dev/null

... listelenen pencerelerin önyüklemesini görmelisiniz. Diğer giriş / girişler tamamsa, devam edin ve yazın.


1
Bu eski soruya içgörü eklediğiniz için teşekkür ederiz ve +1.
CodeMed

1
ayrıca --enablerepo epelilk komut için anahtar eklemeniz gerekebilir
gamliela

8

CentOS 7.0 yüklerken bu sorunla karşılaştım. Windows başlangıçta grub2-mkconfig çıktısında listelenmedi.

Başka bir cevapta önerildiği gibi ntfs-3g'yi kurabilmek için önce epel-release'ü kurmak zorunda kaldım:

sudo yum install epel-release

Basitçe denemek sudo yum --enablerepo epel install ntfs-3gbir havuz bulunamadı mesajı bulundu.

Epel-release kurulumu ntfs-3g kurulumunu mümkün kıldı. Oradan, Windows bölümü grub2-mkconfig içinde listelendi. Önceki cevaplardaki adımlar daha sonra açılışta pencereleri seçme seçeneği sundu.


0

İşlemin tamamını resmileştirmek için @terdon @JosephK ve @clk tarafından cevapların toplanması.

  1. Epel deposunu ekleyin

    sudo yum install epel-release
    
  2. Ntfs-3g paketini kurun

    sudo yum install ntfs-3g
    
  3. grub2-mkconfigKomutu çalıştırın ve 'Windows' girişi tespit edilip edilmediğini kontrol edin.

    sudo grub2-mkconfig > /dev/null 
    
  4. grub.cfgDosyayı güncelle .

    sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.old
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg   
    
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.