PDA

View Full Version : GRUB Configuration: Dual Boot & Text-Mode



Erebos
2015-10-30, 23:14
Hello everyone,

I have two questions regarding the new grub 2.02 that comes with Kali 2:


1) Configuration of Grub on a Dual Boot Machine:

This is my current /etc/default/grub file:


GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="initrd=/install/initrd.gz"

How do I have to edit this file to make it start Windows 7 after 2 seconds by default?
On my old installations (and this one currently as a workaround) I changed the order in /boot/grub/grub.cfg but this time I want to do it 100% correct.
(Also: How can I disable that fancy graphics mode? I managed to change the background image to something different but the font is still terribly small and it REALLY messes up the graphics whilen Win7 is booting. -But that's a different topic I guess :D )


2) SOLVED! - Booting Kali into Text-Mode via Grub

How do I have to edit the entries in /boot/grub/grub.cfg so that I can start Kali into a full Terminal mode without ui? Adding "text" after "quiet" worked in older releases, but not anymore.

Here is my updated /boot/grub/grub.cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
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="0"
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
}

if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_msdos
insmod ext2
set root='hd0,msdos9'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos9 --hint-efi=hd0,msdos9 --hint-baremetal=ahci0,msdos9 5b71b454-853f-4724-a995-599c871cd5af
else
search --no-floppy --fs-uuid --set=root 5b71b454-853f-4724-a995-599c871cd5af
fi
font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=-1
else
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=2
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=2
fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='hd0,msdos9'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos9 --hint-efi=hd0,msdos9 --hint-baremetal=ahci0,msdos9 5b71b454-853f-4724-a995-599c871cd5af
else
search --no-floppy --fs-uuid --set=root 5b71b454-853f-4724-a995-599c871cd5af
fi
insmod png
if background_image /usr/share/images/desktop-base/gungnir.png; then
set color_normal=white/black
set color_highlight=black/white
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Windows 7' --class windows --class os $menuentry_id_option 'osprober-chain-843A313C3A312D14' {
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 843A313C3A312D14
else
search --no-floppy --fs-uuid --set=root 843A313C3A312D14
fi
parttool ${root} hidden-
chainloader +1
}
menuentry 'Debian (Graphic)' --class kali --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-5b71b454-853f-4724-a995-599c871cd5af' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos9'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos9 --hint-efi=hd0,msdos9 --hint-baremetal=ahci0,msdos9 5b71b454-853f-4724-a995-599c871cd5af
else
search --no-floppy --fs-uuid --set=root 5b71b454-853f-4724-a995-599c871cd5af
fi
echo 'Loading Linux 4.0.0-kali1-amd64 ...'
linux /boot/vmlinuz-4.0.0-kali1-amd64 root=UUID=5b71b454-853f-4724-a995-599c871cd5af ro initrd=/install/initrd.gz quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.0.0-kali1-amd64
}
submenu 'Advanced options for Debian (Graphic)' $menuentry_id_option 'gnulinux-advanced-5b71b454-853f-4724-a995-599c871cd5af' {
menuentry 'Kali GNU/Linux, with Linux 4.0.0-kali1-amd64' --class kali --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.0.0-kali1-amd64-advanced-5b71b454-853f-4724-a995-599c871cd5af' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos9'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos9 --hint-efi=hd0,msdos9 --hint-baremetal=ahci0,msdos9 5b71b454-853f-4724-a995-599c871cd5af
else
search --no-floppy --fs-uuid --set=root 5b71b454-853f-4724-a995-599c871cd5af
fi
echo 'Loading Linux 4.0.0-kali1-amd64 ...'
linux /boot/vmlinuz-4.0.0-kali1-amd64 root=UUID=5b71b454-853f-4724-a995-599c871cd5af ro initrd=/install/initrd.gz quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.0.0-kali1-amd64
}
menuentry 'Kali GNU/Linux, with Linux 4.0.0-kali1-amd64 (recovery mode)' --class kali --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.0.0-kali1-amd64-recovery-5b71b454-853f-4724-a995-599c871cd5af' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos9'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos9 --hint-efi=hd0,msdos9 --hint-baremetal=ahci0,msdos9 5b71b454-853f-4724-a995-599c871cd5af
else
search --no-floppy --fs-uuid --set=root 5b71b454-853f-4724-a995-599c871cd5af
fi
echo 'Loading Linux 4.0.0-kali1-amd64 ...'
linux /boot/vmlinuz-4.0.0-kali1-amd64 root=UUID=5b71b454-853f-4724-a995-599c871cd5af ro single initrd=/install/initrd.gz
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.0.0-kali1-amd64
}
}
menuentry 'Debian (Terminal)' --class kali --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-5b71b454-853f-4724-a995-599c871cd5af' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos9'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos9 --hint-efi=hd0,msdos9 --hint-baremetal=ahci0,msdos9 5b71b454-853f-4724-a995-599c871cd5af
else
search --no-floppy --fs-uuid --set=root 5b71b454-853f-4724-a995-599c871cd5af
fi
echo 'Loading Linux 4.0.0-kali1-amd64 ...'
linux /boot/vmlinuz-4.0.0-kali1-amd64 root=UUID=5b71b454-853f-4724-a995-599c871cd5af ro initrd=/install/initrd.gz quiet systemd.unit=multi-user.target
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.0.0-kali1-amd64
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###

### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###

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

The trick is adding "systemd.unit=multi-user.target" to the kernel parameter instead if "text". Thanks to duxim for pointing me ito the right direction!
(And yes, it is edited, but as I said that's only meant to be a workaround so my machine starts into windows by default)

My machine is a Toshiba Sattelite L50-B 2C8 (Intel i7-u5500, 8GB ram, ATI R7 GPU, 500GB SSD).
Thanks in Advance,

Erebos

rkelly
2015-10-31, 17:20
[QUOTE=Erebos;52178]
Here is my current /boot/grub/grub.cfg


...
menuentry 'Windows 7' --class windows --class os $menuentry_id_option 'osprober-chain-843A313C3A312D14' {
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 843A313C3A312D14
else
search --no-floppy --fs-uuid --set=root 843A313C3A312D14
fi
parttool ${root} hidden-
chainloader +1
}
...

[QUOTE]

First, I don't have the answer to your problem, but I want notifs when someone does. Can I ask something about your grub.cfg? Can you tell me how you assembled this codeblock above, the menuentry for Win7? Trying to make mine for Win10 and I'm not sure what you've put where, I figure the long form disk name is one of them, and I'm also not sure if msdos9 technically goes anywhere since there's no real such thing (right?) for Win10. What is the `843...` number?

And I'm very interested in seeing if the grub login screen can have a font size slightly larger, too, so basically I'm subbing your thread :D it's ridiculous on mine, the top entry is WHITE TEXT ON A WHITE BACKGROUND in VERY tiny font, ***

duxim
2015-10-31, 22:17
@Erebos
first your grub.cfg don't have windows entry
try fist this command
sudo update-grub
if windows is not listed then you have to repair your boot with
hiren's boot or boot repir cd
the main task in this step is get windows to boot directly.
after that you can use any live Linux distro with grub 2.02 to install it on mbr (dev/sda)
very good link about grub is
https://help.ubuntu.com/community/Grub2/Setup

"How can I disable that fancy graphics mode? I managed to change the background image to something different but the font is still terribly small and it REALLY messes up the graphics whilen Win7 is booting"
try to install light version of Kali instead of full

"Booting Kali into Text-Mode via Grub"
I am thinking that is no longer possible to boot in text mode via grub.
instead of that I found this solution

cd /lib/systemd/system
ln -sf multi-user-target default.target

Erebos
2015-11-01, 12:56
(...)
First, I don't have the answer to your problem, but I want notifs when someone does. Can I ask something about your grub.cfg? Can you tell me how you assembled this codeblock above, the menuentry for Win7? Trying to make mine for Win10 and I'm not sure what you've put where, I figure the long form disk name is one of them, and I'm also not sure if msdos9 technically goes anywhere since there's no real such thing (right?) for Win10. What is the `843...` number?

And I'm very interested in seeing if the grub login screen can have a font size slightly larger, too, so basically I'm subbing your thread :D it's ridiculous on mine, the top entry is WHITE TEXT ON A WHITE BACKGROUND in VERY tiny font, ***

The codeblock was assembled automatically by the Installer of Kali after the setup of the system, the only thing I did was to cut and paste it above the Kali entries.
Regarding the white text, the only solution so far seems to be deleting the line

GRUB_BACKGROUND= ....
in your /etc/default/grub file. That should turn your background completely black. -Or you could just provide a path to a more suitable image. Grub automatically scales them to its needs.


@Erebos
first your grub.cfg don't have windows entry
try fist this command
sudo update-grub
if windows is not listed then you have to repair your boot with
hiren's boot or boot repir cd
the main task in this step is get windows to boot directly.
after that you can use any live Linux distro with grub 2.02 to install it on mbr (dev/sda)
very good link about grub is
https://help.ubuntu.com/community/Grub2/Setup

"How can I disable that fancy graphics mode? I managed to change the background image to something different but the font is still terribly small and it REALLY messes up the graphics whilen Win7 is booting"
try to install light version of Kali instead of full

"Booting Kali into Text-Mode via Grub"
I am thinking that is no longer possible to boot in text mode via grub.
instead of that I found this solution

cd /lib/systemd/system
ln -sf multi-user-target default.target

My grub.cfg has in fact a Windows 7 entry, it's the one that rkelly quoted.

menuentry 'Windows 7' --class windows --class os $menuentry_id_option 'osprober-chain-843A313C3A312D14' {
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 843A313C3A312D14
else
search --no-floppy --fs-uuid --set=root 843A313C3A312D14
fi
parttool ${root} hidden-
chainloader +1
}
I just moved it above all the Kali entries to make it boot at first. I've read that you can use

GRUB_DEFAULT= n
in the /etc/default/grub file, where n stands for the index of the entries, but I wasn't sure whether or not to concider the submenu entries aswell or not.

- Does the light version of Kali come with a differnet grub? Because I meant the fancy graphics mode in Grub, not Kali itself (the latter was my next question :D)

Thank you for that solution, that worked ^^