Linux - Laptop and NetbookHaving a problem installing or configuring Linux on your laptop? Need help running Linux on your netbook? This forum is for you. This forum is for any topics relating to Linux and either traditional laptops or netbooks (such as the Asus EEE PC, Everex CloudBook or MSI Wind).
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I have 4 SSDs in it, I want to install it on a SATA III SSD. It has 2x2280 NVMe and 2 SATA-III.
In a multiboot configuration with Windows - each OS gets its own SSD. They are all GPT.
I've tried using the Windows boot manager to no avail, it does not recognize a Linux drive. I use bcdedit and EasyBCD to configure multiboot. When I try to add the Linux drive as a boot option and it's not visible and not possible to be added.
Does that mean bcdedit is completely unusable to configure the bootloader and I should be using Grub?
If so, how do I point NVRAM to default to the Grub bootloader on the Linux drive? How do I tell it to go to the Grub bootloader and not the Windows bcdedit entries?
Furthermore, how do I chain the other drives in the Grub bootloader to create a multiboot setup?
Does that mean bcdedit is completely unusable to configure the bootloader and I should be using Grub?
I'm surprised you haven't apparently read the neosmart site on this since you are trying to use EasyBCD. bcdedit is designed by microsoft to be severely limited and will only boot a few windows systems. See there site at the link below, very explicitly explains it if you scroll down a bit to "what this means" section.
You should be able to boot windows by setting the drive it is on to first boot priority in the BIOS. You can install Grub on the Linux drive and have a separate EFI partition there and use Grub to boot Linux and or windows if you wish by setting this drive to first boot priority in the BIOS.
After installing whichever Linux you want and correctly installing Grub EFI, you should be able to simply run the grub-mkconfig command to add other OS's on other drives connected.
It would be useful if you want help to actually post which release of windows you are using and which distribution/release of Linux you are using.
I'm surprised you haven't apparently read the neosmart site on this since you are trying to use EasyBCD. bcdedit is designed by microsoft to be severely limited and will only boot a few windows systems. See there site at the link below, very explicitly explains it if you scroll down a bit to "what this means" section.
Yes, I am sorely aware of this profound problem after months of unsatisfactory installs and I am obviously looking for a work-around. Of course I have seen this documents - years ago.
Quote:
You should be able to boot windows by setting the drive it is on to first boot priority in the BIOS.
I don't have BIOS. I have UEFI. As I indicated in the OP.
Quote:
You can install Grub on the Linux drive and have a separate EFI partition there and use Grub to boot Linux and or windows if you wish by setting this drive to first boot priority in the BIOS.
This is clear as mud. It's very high level. I need a nuts-and-bolts algorithm and that was the thrust of my question. I am aware that Linux can have Grub, the issue is making it the main bootloader and then chaining my other multiboot options off of it. I want Grub to direct the whole show, not BCDEDIT.
Quote:
After installing whichever Linux you want and correctly installing Grub EFI, you should be able to simply run the grub-mkconfig command to add other OS's on other drives connected.
so now we are getting somewhere. The real question is, if I install Linux on one of my 4 SSDs, how do I make that the default drive to go go in NVRAM? It's not possible to do so via Windows 10 (1903) as it does not assign a drive letter and basically doesn't see the drive other than in Disk Management, but not as a boot drive.
Quote:
It would be useful if you want help to actually post which release of windows you are using and which distribution/release of Linux you are using.
Win10/1903 but it is irrelevant and I am willing to install any distro that will run on this MSI machine. I could not install RH 7.6 and CentOS. I got much further with Fedora. Debian had major issues with hardware.
When installing Linux or any other 3rd party OS that ships with its own bootloader, instead of choosing to install GRUB to the bootsector as is traditionally done when opting to use EasyBCD to control your boot menu, choose to install GRUB to the MBR (or disk, in this case) and make it the main bootloader for your PC. You can add the Windows boot menu to the GRUB2 EFI boot menu – in this case, you’ll see GRUB’s boot menu when your PC starts, and from there you can choose Windows. You can still use EasyBCD to control the Windows boot menu and set up multi-boots and re-configure Vista+ entries in the BCD boot menu, but with the GRUB2 EFI menu loading first, you can use that to boot into Linux and to chainload NTLDR to boot into Windows 9x.
I need a detailed breakdown of this.
I've also had some luck installing Fedora and upon bootup hitting F11, interrupting the boot cycle and selecting the disk with the Fedora install. It's not as good as a multiboot option but almost as good.
I am thinking I will try that again.
I don't know why this UEFI / multiboot is so complicated.
if I install Linux on one of my 4 SSDs, how do I make that the default drive to go go in NVRAM?
There are multiple methods of doing that but basically, it involves going into the BIOS setup to permanently change the boot order. And yes, you do have a BIOS setup. You seem to be confusing this term with a Legacy/CSM install as against UEFI. You don't change the boot priority from windows, you do it in the BIOS setup.
First, you would obviously have to have properly installed some Linux system UEFI.
It's possible but not necessary to have an EFI partition on any or all drives. It depends upon what the user wants. Creating an EFI partition for your Linux drive isn't any different than creating any type partition, FAT32 100-300MB in size should do.
If I make Linux the primary boot drive in BIOS and I can, that means its Grub will have to control multiboot of other disks. Do you have any examples of grub.conf? I have 2 more Win10-1903 drives I want to load. One primary and one clone.
something like this will get you to the windows boot menu in efi mode
may have to change the set root to point to the drive/efi-partition that window bootloader is located on.
Last edited by colorpurple21859; 07-30-2019 at 10:29 AM.
Essentially, Grub is set up in the EFI partition. A basic grub.cfg here (manually created to suit each installation) calls the relevant grub.cfg within each installation. The advantage of this method is that the update procedure for each discrete installation is totally standard. If you decide to delete any installation then you only need to remove/alter the relevant entry in the initial (EFI based) grub.cfg .
Grub will handle windows perfectly well. The following is my sample EFI grub.cfg with an entry for windows 10 added.
Code:
menuentry "Windows 10" {
insmod part_gpt
insmod fat
set root='hd0,gpt2'
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry "Mint 19.1" {
set root='hd0,gpt4'
configfile (hd0,gpt4)/boot/grub/grub.cfg
}
menuentry "Slackware" {
set root='hd0,gpt3'
configfile (hd0,gpt3)/boot/grub/grub.cfg
}
menuentry "Devuan ASCII" {
set root='hd0,gpt6'
configfile (hd0,gpt6)/boot/grub/grub.cfg
}
menuentry "Devuan CERES" {
set root='hd0,gpt5' root=UUID=1ccdf3dc-f75b-4be3-b12a-92e7398fd908 ro
configfile (hd0,gpt5)/boot/grub/grub.cfg
}
menuentry "Mint19.1-beta-Cinnamon-ISO" {
set isofile=linuxmint-19.1-cinnamon-64bit-beta.iso
loopback loop (hd1,gpt4)/ISO/$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ISO/$isofile
initrd (loop)/casper/initrd.lz
}
menuentry "Mint19.1-Cinnamon-ISO" {
set isofile=linuxmint-19.1-cinnamon-64bit.iso
loopback loop (hd1,gpt4)/ISO/$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ISO/$isofile
initrd (loop)/casper/initrd.lz
}
menuentry "Mint-Xfce-ISO" {
set isofile=linuxmint-19.1-xfce-64bit.iso
loopback loop (hd1,gpt4)/ISO/$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ISO/$isofile
initrd (loop)/casper/initrd.lz
}
menuentry "Mint-Mate-ISO" {
set isofile=linuxmint-19-mate-64bit-v2.iso
loopback loop (hd1,gpt4)/ISO/$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/bootiso/$isofile
initrd (loop)/casper/initrd.lz
}
menuentry "Salix LIVE Install ISO" {
set isofile=salixlive64-xfce-14.2.1.iso
loopback loop (hd1,gpt4)/ISO/$isofile
linux (loop)/boot/vmlinuz livemedia=$isofile
initrd (loop)/boot/initrd.gz
}
menuentry "Slackware Current LIVE Install ISO" {
set isofile=slackware64-live-current-OCT-2018.iso
loopback loop (hd1,gpt4)/ISO/$isofile
linux (loop)/boot/generic livemedia=/dev/sdb4:/bootiso/$isofile nomodeset
initrd (loop)/boot/initrd.img
}
menuentry "Slackware 14.2 Install ISO" {
set isofile=slackware64-14.2-install-dvd.iso
loopback loop (hd1,gpt4)/ISO/$isofile
linux (loop)/kernels/huge.s/bzImage livemedia=$isofile
initrd (loop)/EFI/BOOT/initrd.img
}
#menuentry "OpenSuse ISO" { ***DISABLED***
# set isofile=suse.iso
# loopback loop (hd1,gpt4)/ISO/$isofile
# linux (loop)/boot/x86_64/loader/linux livemedia=$isofile
# initrd (loop)/boot/x86_64/loader/initrd
#}
menuentry "Devuan ASCII Live ISO" {
set isofile=devuan_ascii_2.0.0_amd64_desktop-live.iso
loopback loop (hd1,gpt4)/ISO/$isofile
linux (loop)/live/vmlinuz boot=live config findiso=/bootiso/$isofile username=devuan
initrd (loop)/live/initrd.img
}
This example has windows on the second partition of the first drive.
I have 4 separate drives in the machine (MSI Titan GT80 SLI). Drive #3 is where I keep my Linux (Ubuntu) and I want that to point to drives #1 and #2 with Windows. Each OS is on its own independent disk.
There seems to be a lot of confusion with Grub and UEFI in general.
Not confused here, I have multiboot with grub in efi mode about every conceivable way possible and boot the same gpt drives in legacy mode using grub, lilo, syslinux and efi mode using grub, elilo, syslinux, and refind.
I am not splitting the disk, I am dedicating an entire disk to an operating system. I have 3 OS: Win10 one, Win10 two and Ubuntu 19.04. Each one gets its own disk.
I spent many cycles fruitlessly trying to boot Linux via BCD but as has been noted before, it's futile on an UEFI machine there I will make Ubuntu control the process via its Grub bootloader.
at the grub menu press c for a grub prompt, and run the following till you find the one that list the microsoft folder.
Code:
ls (hd0,1)/EFI
ls (hd1,1)/EFI/
ls (hd2,1)/EFI/
ls (hd3,1)/EFI/
This is assuming the efi partition is the first partition on the windows drive. If the efi partition is not the first partition change to (hd0,2) etc. If there is no EFI/Microsoft the file to chainload could be /EFI/BOOT/bootx64.efi, in that case you will need to locate the drive that has the windows partitiion to determine the windows drive.
Then you can go a layer deeper with ls (hd1,1)/EFI/Microsoft/Boot/ to locate the bootmgfw.efi file if need be.
Once you find the windows drive/efi partition accordingly then edit the windows chainloader entry in /etc/grub.d/gu40_custom and then run update-grub.
Last edited by colorpurple21859; 08-08-2019 at 05:50 AM.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.