CentOS 7 को स्थापित करने के बाद विंडोज बूट विकल्प गायब है, मैं इसे कैसे वापस ले सकता हूं?


21

मैंने हाल ही में एक मशीन पर CentOS 7 स्थापित किया है जो विंडोज 7 चला रहा है। मैंने एक दोहरे बूट इंस्टॉलेशन किया और एक विभाजन में CentOS स्थापित किया। लेकिन जब मैं अपनी मशीन को बूट करता हूं, तो यह मुझे केवल दो CentOS विकल्प देता है। यह मुझे बूट करने के लिए विंडोज 7 चुनने का विकल्प नहीं देता है। मैं बूट विकल्पों में विंडोज 7 को वापस कैसे जोड़ सकता हूं?

नोट: मैं इस पोस्ट को पढ़ रहा हूं जिसका शीर्षक है: विंडोज़ के साथ सेनटोस 7 ड्यूल बूट , लेकिन मेरा /grubफ़ोल्डर केवल इसमें एक splash.xpm.gzफाइल है, जिसमें कोई अन्य फाइल नहीं है। इसके अलावा, मैं लिनक्स के लिए नया हूं और चरण दर चरण कुछ और की जरूरत है।

EDIT # 1

मुझे कमांड लाइन पर निम्नलिखित परिणाम मिल रहे हैं:

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

इसके अलावा, मैं वर्तमान में इस संभावना पर शोध कर रहा हूं कि ये आदेश CentOS पर लागू न हों। उदाहरण के लिए इस U & L Q & A शीर्षक में: " RHEL / Fedora / CentOS सिस्टम के लिए अपडेट-ग्रब के बराबर? ", साथ ही इस Q & A शीर्षक से: " विंडोज के बाद स्थापित Centos 7 और CentOS में बूट नहीं किया जा सकता " का अर्थ है कि मैं grub2 को पुनर्स्थापित करना चाहिए। लेकिन मैं ऐसा कैसे करूं? मैं अभी लिनक्स सीख रहा हूं।

EDIT # 2

निम्न आदेश काम करता है। यहाँ उत्पादन है:

[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
जिस तरह से पूछने से पहले आपने प्रयास किया, और प्रश्न में आपकी कोशिशों का भी दस्तावेजीकरण किया। आप अच्छा करेंगे।
ओलिवियर दुलक

जवाबों:


21

यह आमतौर पर स्क्रिप्ट चलाने के द्वारा स्थापित ऑपरेटिंग सिस्टम का पता लगाकर तय किया जाता है और बूट लोडर ( grub2इस मामले में) कॉन्फ़िगरेशन फ़ाइल उत्पन्न करता है । CentOS 7 पर, यह होना चाहिए grub2-mkconfig

  1. जाँच करें कि विंडोज़ का पता चला है। भागो grub2-mkconfigलेकिन इसका उत्पादन छोड़ दो:

    $ 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
    

    जैसा कि ऊपर दिखाया गया है आउटपुट समान (लेकिन समान नहीं) दिखेगा। सुनिश्चित करें कि Windows सूचीबद्ध है।

  2. यदि विंडोज पिछले चरण में सूचीबद्ध था, तो आगे बढ़ें और नई कॉन्फ़िगरेशन फ़ाइल सहेजें। बस पहले मामले में एक बैकअप बनाएं।

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

यदि सब ठीक हो गया, तो आपको अब विंडोज में रिबूट करने में सक्षम होना चाहिए।


मुझे ग्रब 2 की भी समस्या है। मुझे उत्तर पसंद है, लेकिन मैं आउटपुट को कैसे छोड़ दूं? क्या यह आज्ञा है grub2-mkconfig > /dev/nullजिसका मुझे उपयोग करना चाहिए? इसके अलावा, यह बचाव मोड से भी काम करेगा, अगर लिनक्स बूट नहीं करता है?
पितृ पक्ष

@patrik हाँ, > /dev/nullआउटपुट को डिस्क्राइब करता है। यह चरण केवल यह जांचने के लिए है कि क्या विंडोज का पता चला है। यह कुछ भी नहीं करता है। वह यह है sudo grub2-mkconfig -o /boot/grub2/grub.cfgकि नई कॉन्फ़िगरेशन फ़ाइल लिखता है। यह भी ध्यान दें कि डेबियन-आधारित सिस्टम पर कमांड बस है sudo update-grub। बचाव प्रणाली से इसे चलाने से काम चल सकता है लेकिन आपको पहले कुछ अन्य चीजों की आवश्यकता है। यहाँ मेरे जवाब पर एक नज़र है
terdon

@terdon मुझे विंडोज़ 8 मशीन पर इन चरणों को फिर से बनाने में परेशानी हो रही है जिसे मैं CentOS 7. के साथ एक दोहरी बूट मशीन में बदलना चाहता हूं। क्या आप इसके साथ मेरी मदद करने के लिए तैयार हैं? यहाँ लिंक है: unix.stackexchange.com/questions/210111/…
CodeMed

@CodeMed मैं कोशिश कर सकता हूं, लेकिन मैं CentOS के बारे में ज्यादा नहीं जानता और WIndows के बारे में कम।
terdon

कुछ जानकारी जोड़ते हुए: अभी-अभी परीक्षण किया गया है कि यह समाधान विंडोज 10 के लिए भी काम करता है। यह विंडोज रिकवरी एनवायरनमेंट (लोडर) नामक एक प्रविष्टि उत्पन्न करेगा , जो अपने नाम के बावजूद, कोई रिकवरी नहीं करेगा और सीधे विंडोज़ 10 पर बूट होगा।
dr01

15

@Terdon द्वारा उत्तर पर अनुसरण करने पर - जब आप परीक्षण-चरण करते हैं, और grub2-mkconfig को Windows विभाजन नहीं मिलता है। इसके बाद, सुनिश्चित करें कि आपके पास "ntfs-3G" पैकेज स्थापित है, ताकि आपका लिनक्स सिस्टम विंडोज पार्टीशन को पढ़ सके।

sudo yum install ntfs-3g

स्थापित करने के बाद, जब आप चलाते हैं

sudo grub2-mkconfig > /dev/null

... आपको सूचीबद्ध विंडोज़ बूट देखना चाहिए। यदि अन्य प्रविष्टि / प्रविष्टियां ठीक हैं, तो आगे बढ़ें और इसे लिखें।


1
इस पुराने प्रश्न में अंतर्दृष्टि जोड़ने के लिए धन्यवाद और +1।
कोडमेड

1
आपको --enablerepo epelपहले कमांड के लिए स्विच जोड़ने की आवश्यकता हो सकती है
Gamliela

8

मैं सेंटोस 7.0 स्थापित करते समय इस मुद्दे पर आया था। Windows को शुरू में grub2-mkconfig के आउटपुट में सूचीबद्ध नहीं किया गया था।

एक अन्य उत्तर में सुझाए गए अनुसार ntfs-3G को स्थापित करने के लिए, मुझे पहले epel-release स्थापित करना था:

sudo yum install epel-release

बस कोशिश करने के sudo yum --enablerepo epel install ntfs-3gपरिणामस्वरूप एक रिपॉजिटरी नहीं मिला संदेश।

एपेल-रिलीज़ स्थापित करने से एनटीएफएस-3 जी की स्थापना सक्षम हो गई। वहां से, विंडोज विभाजन को grub2-mkconfig में सूचीबद्ध किया गया था। पिछले उत्तरों में दिए गए कदमों ने बूट पर विंडोज़ का चयन करने का विकल्प दिया।


0

पूरी प्रक्रिया को औपचारिक रूप देने के लिए @terdon @JosephK और @clk द्वारा जवाबों को समेटना।

  1. एपेल रिपोजिटरी जोड़ें

    sudo yum install epel-release
    
  2. Ntfs-3G पैकेज स्थापित करें

    sudo yum install ntfs-3g
    
  3. भागो grub2-mkconfigआदेश और देखें कि क्या 'विंडोज' प्रविष्टि का पता चला है।

    sudo grub2-mkconfig > /dev/null 
    
  4. grub.cfgफ़ाइल को अपडेट करें ।

    sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.old
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg   
    
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.