I recently installed CentOS 7 on a machine that has been running Windows 7. I did a dual boot installation and installed CentOS in a partition. But when I boot up my machine, it only gives me two CentOS options. It does not give me the option to choose to boot Windows 7. How can I add windows 7 back to the boot options?
NOTE: I’m reading this post titled: CenTOS 7 dual boot with windows, but my /grub
folder only seems to have a splash.xpm.gz
file in it with no other files. Also, I’m new to Linux and need something more step by step.
EDIT #1
I’m getting the following results on the command line:
[<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="92e0fdfde6d2fefdf1f3fefafde1e6">[email protected]</a> home]# sudo update-grub sudo: update-grub: command not found [<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="24564b4b5064484b4745484c4b5750">[email protected]</a> home]# sudo grub-mkconfig sudo: grub-mkconfig: command not found
Also, I’m currently researching the possibility that these commands might not apply to CentOS. For example in this U&L Q&A titled: “Equivalent of update-grub for RHEL/Fedora/CentOS systems?“, as well as this Q&A titled: “Installed Centos 7 after Windows and can’t boot into CentOS” seem to imply that I should reinstall grub2. But how do I do that? I’m just now learning Linux.
EDIT #2
The following command does work. Here is the output:
[<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="81f3eeeef5c1edeee2e0ede9eef2f5">[email protected]</a> 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 ###
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
This is usually fixed by running the scripts detect the installed operating systems and generate the boot loader’s (grub2
in this case) configuration file. On CentOS 7, that should be grub2-mkconfig
.
-
Check that windows is detected. Run
grub2-mkconfig
but discard its output:$ 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
The output will look similar (but not identical) to what is shown above. Make sure that Windows is listed.
-
If Windows was listed in the previous step, go ahead and save the new configuration file. Make a backup first, just in case.
sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.old sudo grub2-mkconfig -o /boot/grub2/grub.cfg
If all went well, you should now be able to reboot into Windows.
Method 2
Following up on the answer by @terdon – when you do the test-step, and grub2-mkconfig does not find the Windows partition. Next, make sure you have the “ntfs-3g” package installed, so that your Linux system can read the Windows partition(s).
sudo yum install ntfs-3g
After installing that, when you run
sudo grub2-mkconfig > /dev/null
… you should see the windows boot listed. If the other entry / entries are OK, go ahead and write it.
Method 3
I came across this issue when installing CentOS 7.0. Windows was not initially listed in the output of grub2-mkconfig.
In order to install ntfs-3g as suggested in another answer, I had to first install epel-release:
sudo yum install epel-release
Simply trying sudo yum --enablerepo epel install ntfs-3g
resulted in a repository not found message.
Installing epel-release enabled the installation of ntfs-3g. From there, the Windows partition was listed in grub2-mkconfig. The steps in the previous answers then gave the option to select windows at boot.
Method 4
Summing up answers by @terdon @JosephK and @clk to formalize complete procedure.
-
Add the epel repository
sudo yum install epel-release
-
Install ntfs-3g package
sudo yum install ntfs-3g
-
Run the
grub2-mkconfig
command and check if ‘Windows’ entry is detected.sudo grub2-mkconfig > /dev/null
-
Update the
grub.cfg
file.sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.old sudo grub2-mkconfig -o /boot/grub2/grub.cfg
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0