1

I have a dual boot system with Windows 7 and Kali Linux. I use the Windows OS way more than Kali, so what I want is for the computer to automatically boot into Windows 7 unless I hold the shift key, in which case it will take me to the grub menu. I have tried and failed to do this myself; setting the timeout and hidden timeout to 0 does let me automatically boot into Windows, but when I hold shift to access the menu, it says, "loading GRUB" and then immediately boots into Windows anyway (I had to use a live Kali disk to fix the configuration).

This seems like it should be very possible, yet nothing I've done seems to suggest that. How could I accomplish this?

Kurausukun
  • 13
  • 5
  • Here –  Dec 27 '16 at 12:05
  • That seems only tangentially related to what I'm asking. If you know how to do it, could you just tell me? – Kurausukun Dec 27 '16 at 12:26
  • Edit grub.cfg and change set default =1 to window 7. Because You installed Kali linux.Grub bootloader will set default boot to kali linux.Show me your grub configuration file. – supriady Dec 30 '16 at 13:49
  • It doesn't matter if the Entry is an windows. This will not show windows-loader at the first place in grub-menue, but it marked the windows-loader as active and boot it. Exactly what you want. or am I wrong? –  Dec 31 '16 at 11:32
  • Just to be sure, I know that on Debian, after modifying /etc/default/grub, I have to run `update-grub` to register the new configuration. I've been bitten a few times before by this. I suppose you took care of that? – EvensF Jan 02 '17 at 17:51

6 Answers6

0

From windows you have to install easy bcd application(third party bootloader) and then mention as kali linux is my default boot menu.

0

I suggest you to proceed in order:

  1. Reset your GRUB configuration/reinstall it
  2. Make Win as DEFAULT choice (with the menu cameo)
  3. Make the menu HIDDEN

Archlinux has a wonderful wiki, follow it, maybe you miss some step

e.g. https://wiki.archlinux.org/index.php/GRUB/Tips_and_tricks#Hide_GRUB_unless_the_Shift_key_is_held_down

mattia.b89
  • 3,142
  • 2
  • 14
  • 39
0

I don't know how you can outright bypass the grub menu.

You should add a 'GRUB_DEFAULT' entry in you /etc/default/grub. you can set it to the name of the Option or the number in the order in which it appears on the boot menu.

You can also set the windows options as a default choice so that if no button is pressed, you are booted into Windows.Note that you can also set the 'GRUB_DEFAULT' to 'saved', so that the last booted option becomes your default boot option.

I suggest this link fo a more in-depth understanding.

0

It is a little bit complicated to hide the grub menu when you have multiple OSs. I've looked over the web and found multiple bugs and problems (like this one : https://askubuntu.com/questions/469347/how-to-hide-grub-menu-in-ubuntu-14-04).

I know that this answer won't completely satisfy your question, but it is a good work around.

What you can do is to make Windows your default entry in grub, and put the time out to 1 seconde. It really won't take any noticeable extra time to boot into Windows this way.

How to proceed

First, look into the grub menu (at boot time) and locate the position of windows entry by starting the counting from 0. For example, in the image below, the Windows Vista entry position is 4 :

grub_menu

Then change the first 4 lines in the file /etc/default/grub to this :

GRUB_DEFAULT=4
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=1

Note that the 4 in the first line is the Windows entry position in the grub menu. Replace it by whatever position you found in your case.

Sidahmed
  • 1,308
  • 2
  • 10
  • 22
0

If you don't mind holding the Esc key instead, this is what worked for me. I could not get anything to work with the Shift key.

First off, make a backup copy of /boot/grub/grub.cfg and /etc/default/grub. Also, it is always good to have some sort of rescue or live CD on hand in case something goes wrong and you have to revert back.

Then edit /etc/default/grub so it has the following:

# Replace <default OS> with appropriate value (without the < >). GRUB_DEFAULT=<default OS> GRUB_TIMEOUT=0 GRUB_TIMEOUT_STYLE='countdown'

I would comment out any of the GRUB_HIDDEN_TIMEOUT entries if they aren't already. Also, I recommend you set the <default OS> to a Linux OS until you know it is working so you can easily change it back.

Then make sure to run (as root) update-grub or grub-mkconfig -o /etc/grub/grub.cfg before rebooting.

This information, and more, can be found on the Arch Linux GRUB/Tips and Tricks wiki.

Paul H.
  • 739
  • 5
  • 14
  • I'm accepting this one--it worked perfectly and was extremely easy to set up. I'm sure some of the others would have worked fine, but this one was just a few edits to my configuration file, so thank you. – Kurausukun Jan 03 '17 at 07:07
0

Grub simply doesn't work that way. Unlike the Windows bootloader, which loads an OS by default unless interrupted by holding SHIFT, Grub doesn't allow you load OS immediately while providing a way to interrupt the process to select another OS.

What you can do instead is use the Windows bootloader by default and add a entry to boot Grub. The details are here: https://superuser.com/questions/499617/how-can-i-add-linux-to-the-new-windows-8-boot-manager

Emmanuel Rosa
  • 6,808
  • 2
  • 18
  • 22