LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Red Hat
User Name
Password
Red Hat This forum is for the discussion of Red Hat Linux.

Notices


Reply
  Search this Thread
Old 09-29-2014, 03:52 AM   #1
mvikramreddy92
LQ Newbie
 
Registered: Sep 2014
Posts: 9

Rep: Reputation: Disabled
How to add windows entry to grub in Redhat linux 7


Hi guys, I have installed Redhat 7 yesterday to learn about it as I require it in my VLSI LOGIC DESIGN course. But windows entry is not appearing in the grub2. so far, I've tried the following methods but failed:

1)

Code:
vi 15_Windows

cat 15_Windows
#!bin sh -e
echo "Adding Windows" >&2
cat <<EOF
menuentry "Windows 7 (loader) (on /dev/sda1)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
chainloader +1
}
EOF

grub2-mkconfig -o /boot/grub2/grub2.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-123.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-87b68a1785024296b22d609cd9c8d6db
Found initrd image: /boot/initramfs-0-rescue-87b68a1785024296b22d609cd9c8d6db.img
/usr/sbin/grub2-mkconfig: /etc/grub.d/15_Windows: bin: bad interpreter: No such file or directory
2) From procedure given in https://access.redhat.com/documentat...ng_a_new_Entry
Code:
cat /boot/grub2/grub.cfg> /etc/grub.d/40_custom
Then deleted all that's not required in 40_custom (asked to delete in the website) and added the following at the end of that:
Code:
#! /bin/sh -e
echo "Adding Windows" >&2
cat << EOF
menuentry "Windows" {
set root=(hd0,1)
chainloader +1
}
EOF
Then deleted all the files in grub.d except 0_header 40_custom and README (mentioned in the website)
Then did "chmod x" to this file and ran grub2-mkconfig -o /boot/grub2/grub.cfg
But I get some errors like "no command", "syntax errors" etc

For reference, here is my grub.cfg file:

Code:
         #
# 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 'Red Hat Enterprise Linux Workstation, with Linux 3.10.0-123.el7.x86_64' --class red --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-123.el7.x86_64-advanced-4a6c5451-605e-413d-b625-10770e12c372' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod xfs
        set root='hd0,msdos8'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8 --hint='hd0,msdos8'  ea043568-a806-49c0-8a4f-38b3e9c41abf
        else
          search --no-floppy --fs-uuid --set=root ea043568-a806-49c0-8a4f-38b3e9c41abf
        fi
 linux16 /vmlinuz-3.10.0-123.el7.x86_64 root=UUID=4a6c5451-605e-413d-b625-10770e12c372 ro rd.lvm.lv=rhel/root crashkernel=auto  rd.lvm.lv=rhel/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=us rhgb quiet
        initrd16 /initramfs-3.10.0-123.el7.x86_64.img
}
menuentry 'Red Hat Enterprise Linux Workstation, with Linux 0-rescue-87b68a1785024296b22d609cd9c8d6db' --class red --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-87b68a1785024296b22d609cd9c8d6db-advanced-4a6c5451-605e-413d-b625-10770e12c372' {
        load_video
        insmod gzio
        insmod part_msdos
        insmod xfs
        set root='hd0,msdos8'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8 --hint='hd0,msdos8'  ea043568-a806-49c0-8a4f-38b3e9c41abf
        else
          search --no-floppy --fs-uuid --set=root ea043568-a806-49c0-8a4f-38b3e9c41abf
        fi
linux16 /vmlinuz-0-rescue-87b68a1785024296b22d609cd9c8d6db root=UUID=4a6c5451-605e-413d-b625-10770e12c372 ro rd.lvm.lv=rhel/root crashkernel=auto  rd.lvm.lv=rhel/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=us rhgb quiet
        initrd16 /initramfs-0-rescue-87b68a1785024296b22d609cd9c8d6db.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/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 ###

Can anyone please guide me as I have to do this urgently?


EDIT:SOLVED

First I installed ntfs-3g package and then I followed this procedure from here and the entry is added now:
https://access.redhat.com/documentat...nstall_Command

After reinstalling, this was the code I found in grub.cfg:

Code:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 8 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-903065DF3065CCB2' {
        insmod part_msdos
        insmod ntfs
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  903065DF3065CCB2
        else
          search --no-floppy --fs-uuid --set=root 903065DF3065CCB2
        fi
        drivemap -s (hd0) ${root}
        chainloader +1
}
### END /etc/grub.d/30_os-prober ###

Last edited by mvikramreddy92; 09-30-2014 at 12:18 AM.
 
Old 09-29-2014, 11:52 AM   #2
yancek
LQ Guru
 
Registered: Apr 2008
Distribution: Slackware, Ubuntu, PCLinux,
Posts: 10,508

Rep: Reputation: 2491Reputation: 2491Reputation: 2491Reputation: 2491Reputation: 2491Reputation: 2491Reputation: 2491Reputation: 2491Reputation: 2491Reputation: 2491Reputation: 2491
You neglected to indicate if you are using UEFI or BIOS mode to boot. If you are using BIOS mode, simple login as root and open a text editor and copy the entry you have in your first post (shown below) to the 40_custom file in the /etc/grub.d/directory. That is if your windows boot files are actually on that partition, sda1.

Code:
menuentry "Windows 7 (loader) (on /dev/sda1)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
chainloader +1
}
Then as root run the "grub2-mkconfig..." command you show in your post. When you reboot, you should see the windows 7 entry.

If you are using UEFI, this won't work but you haven't said?

If you actually posted the entire grub.cfg file, I don't see how you could boot anything since you don't show any full menuentries. If the above doesn't work, you might google bootinfoscript, download and run it and post the output, a results.txt file which will give more detailed information.
 
Old 09-30-2014, 12:15 PM   #3
mvikramreddy92
LQ Newbie
 
Registered: Sep 2014
Posts: 9

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by yancek View Post
You neglected to indicate if you are using UEFI or BIOS mode to boot. If you are using BIOS mode, simple login as root and open a text editor and copy the entry you have in your first post (shown below) to the 40_custom file in the /etc/grub.d/directory. That is if your windows boot files are actually on that partition, sda1.

Code:
menuentry "Windows 7 (loader) (on /dev/sda1)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
chainloader +1
}
Then as root run the "grub2-mkconfig..." command you show in your post. When you reboot, you should see the windows 7 entry.

If you are using UEFI, this won't work but you haven't said?

If you actually posted the entire grub.cfg file, I don't see how you could boot anything since you don't show any full menuentries. If the above doesn't work, you might google bootinfoscript, download and run it and post the output, a results.txt file which will give more detailed information.
I added partial grub.cfg before by mistake. I have posted the actual grub.cfg now.
Anyway I have solved my issue. Thanks.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Red Hat

All times are GMT -5. The time now is 01:19 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration