"Dual Booting" with two hard drives

Hello Everyone,

I discovered Linux as a now “friendly” OS that you can use on a daily basis about a year ago. The first time I heard about Linux was back in 2002 and I was told that it was very specific and super user oriented and not for someone who only knows Windows and does not program. So going from a year ago now I have been wanting to “dual-boot” Linux with Windows and hopefully migrate to Linux full time. I built a brand new computer with Several different hard drives to start my journey. A small 60GB SSD for Windows (OS and key programs only), a 500GB for Linux (all things related), and a 1TB for storage of various things. My first attempt with Linux was with Ubuntu 13.10/14.04. Neither one would load or respond correctly when trying to communicate with/through my motherboard (Gigabyte 990FXA-UD3 Rev. 4). I had issues with the LAN, graphics, USB ports, etc. I later found out that this board, particularly this revision, is not very Linux friendly with its Realtek drivers. In the end, I ended doing a failed install and shortly thereafter completely wiped the 500GB drive of the “failed” Ubuntu. At the time I didn’t realize that after wiping the hard drive, I also screwed the MBR for my Windows install on my SSD and had to eventually wipe that as well after a failed repair and install. Now I am back to the beginning, Windows on the SSD, and a blank 500GB HDD waiting to go. After looking around about different distributions and “boot options” I came across openSUSE and was impressed. I found it to be more likeable than Ubuntu, and from what I read less invasive on information collection (Ubuntu DASH searches) and more proud to promote Linux as a whole and FOSS, unlike Canonical (Which now that I have done some reading, seems like the Apple of Linux. Only about them, their product, and tries to act like it’s not apart of FOSS/GNU. A Mac is a PC, those commercials didn’t fool me). I don’t want to screw anything up now when I go forward with openSUSE. I want it to hopefully work right, the first time, and not break anything…again. I currently have openSUSE 13.1 installed on an old external HDD hooked up to my laptop. I used the method provided here “http://forums.opensuse.org/entry.php/150-Installing-openSUSE-13-1-onto-an-External-Hard-Drive”. Could I use that method to perform the same task with my 500GB internal hard drive and change the boot order in my motherboard? I have been able to check out the KDE live disc and found to have working LAN connection and responsive graphics with this motherboard, so I figure the next step is to install, but that is what worries me and I want to know if that method would be safe and feasible for an internal drive. If tweaks need to be made when creating the partitions for security, stability, and or upgradability that is fine. I just want to know if you guys think that method posted in the link would work for the safest option. I’m not interested in dual booting from the same drive, I want them on separate hard drives, and I don’t want to mess around with the MBRs and which one is which drive and who has priority.

Thank you for any guidance, help, or input that can be provided.

> http://forums.opensuse.org/entry.php/150-Installing-openSUSE-13-1-onto-an-External-Hard-Drive

That’s intended for laptop users. For desktop users of two HDs, it’s simple
enough and safest just to disconnect the Windows HD to do your Linux
installation. By introducting a third HD however, you’re starting out even
more complicated.

By putting everything Windows on a separate HD from everything Linux, and
isolating them further by only having one connected at a time during
installation for maximum safety, you’re going to be forced to either do some
bootloader customizing of the bootloaders of both Linux and Windows, or
reaching for the BIOS menu each time you wish to boot an OS different than
the last boot.

Installing Linux after Windows without disconnecting the Windows HD first
need not be “unsafe”. You just need to be aware of the ramifications of the
choices you make. Once you make a bootloader choice, changing your mind about
the way you want things to work can be quite a struggle.

Al that said, the safest installation is arguably a know what you’re doing
installation that puts everything on one HD, and excludes the Linux
bootloader from the MBR[1]. http://fm.no-ip.com/PC/install-doz-after.html
provides a simplistic scenario that covers keeping the bootloader off the MBR
and uses only one HD.

All my Linux installations are multiboot. About half include Windows, the
rest mostly include DOS and/or OS/2 in addition to a bunch of Linux
installations. I have one machine with every openSUSE version from 10.0
through Factory, in addition to multiple other distros, and OS/2, and DOS.
Most of my machines have at least three openSUSE versions installed. Only the
newest has fewer, and that will change before long.

I have only 4 OS installations that include Grub2. All of those are *buntu,
none of which are booted except by chainloading to them, to ensure their
Grub2 automagic won’t screw anything up elsewhere, with os-prober disabled.
Grub Legacy does all other Linux loading here regardless of distro or distro
age, or number of HDs, or whether any HDs are external. Every HD here has
either DOS/Windows compatible MBR code, or no MBR code.

In short, many ways exist to skin the multiboot cat, but do note the “laptop”
URI you found does specify not installing (any) Linux bootloader to the
MBR. That in itself is a significant measure of safety WRT mixing Linux and
Windows in a single system.

[1]
https://old-en.opensuse.org/Bugs/grub#How_does_a_PC_boot_.2F_How_can_I_set_up_a_working_GRUB.3F

The wise are known for their understanding, and pleasant
words are persuasive.

Team OS/2 ** Reg. Linux User #211409 ** a11y rocks!

Felix Miata *** http://fm.no-ip.com/

Yes, that should work. However, it depends on your BIOS.

If your BIOS has a setting to boot from a different internal drive, then selecting your drive should boot opensuse. If your BIOS only boots from the first internal drive, then it probably won’t work.

You don’t mention UEFI, though a google search for your MB suggests that it is supported. If Windows is booting UEFI, then you would be wiser to install opensuse as UEFI. And that changes how you should install and boot it.

Thank you for the information. I am not computer savvy enough or completely comfortable yet with the idea of multibooting a system off of one HD. I have been using Windows my whole life and am trying to learn something new. Which feels a little daunting since it is completely different on its design and principals. I hope you did not not misunderstand me about the hard drive set-up. The third hard drive is for miscellaneous files that will not be dependent on Windows or Linux. I’m not trying to be complicated. I was just thinking that a hard drive is a hard drive right? So why wouldn’t the method I found the external not work for an internal. I do not want to have to go into my bios every time that I load the computer. I just don’t want to go through the process of having to wipe the hard drives again and then reinstall the OS if I screwed something up. This computer is our main computer, and having it down creates too many headaches. It is just not a fun process and a couple weeks ago everything took me several hours to fix. As stated, I’m not at a skill level of “know what you’re doing installation that puts everything on one HD, and excludes the Linux bootloader from the MBR[1].”

I am currently booting in Legacy mode and not UEFI. So I don’t have to worry about installing Linux in UEFI. And my BIOS does allow me to choose which HD to boot from and choosing the Linux drive first would not be a problem.

Thank you both for your input though on this matter.

On 2014-08-09 01:46 (GMT) Alectron84 composed:

> I’m not trying to be complicated. I was just thinking that a hard drive
> is a hard drive right?

On a BIOS system, only after booting. Bootloaders are only flexible in
terms of options for installations. Once installed, they’re very inflexible.

> I do not want to have to go into my bios every
> time that I load the computer.

Needing to press a key to open a boot menu is provided by the BIOS. If you
don’t mind needing to press that key and make a choice every time you wish to
boot the non-default OS, then fine, but Windows is only ever going to boot
from the first BIOS HD, and Linux is only going to boot from the HD when it
has the same BIOS number as when the bootloader was configured. If you
install while both HDs are attached and operational, you either will be
reliant on that boot menu, or you will be putting the Linux bootloader on the
HD on which Windows is installed, or you will need a more elaborate Linux
bootloader configuration than is typical.

The last option means installing Windows normally as an only HD. Then Linux
will be installed on the first BIOS HD, whether you choose to have the
Windows HD connected or not at Linux installation time. If both, the
installer will provide chainloading to Windows, which it may or may not get
correct. If not both, then post-installation you’ll definitely need to have
Windows added to the Linux bootloader menu. In both the failed to get correct
and added later cases, the bootloader will have to be configured to swap the
logical order of the Windows and Linux HDs to make Windows think it is on #1,
even though booting will fail if the Linux HD is not in fact the #1 according
to the BIOS (a switch which the BIOS boot menu performs on the fly).

Having a #3 HD even though only for data provides an opportunity (only, no
guarantee, maybe not even likely, until you boot without remembering to
remove that last attached USB stick) for required logical order switching to
fail.

Understanding as much as possible about the boot process before starting
helps to avoid the booby traps, and makes easier getting out of them if you
do fall in.

So, a HD isn’t necessarily the same as another HD, especially after you write
on it. :slight_smile:

> So why wouldn’t the method I found the external
> not work for an internal.

Multiboot is as much art as science. For your found procedure to work, you
need to trust its choices, good or bad, leaving you fewer to make on your
own. His has sdc as the external Linux target. That’s something better
avoided whenever possible, for multiple reasons, and may not even be able to
duplicate with success. Some BIOS have quirks on which choices depend that
prevent those same choices from working elsewhere. To have no part of Linux
on your windows HD, your Linux HD cannot be sdc (BIOS disk 2) or sdb (BIOS
disk 1) - choosing the Linux HD via BIOS directly or BIOS boot menu will make
it sda (BIOS disk 0). His crucial step 4 is common bootloader trickery
designed to work around this BIOS characteristic. It works only as long as
there is a Windows disk in the system. If it breaks, you lose Linux too until
you either do a complicated repair, a new installation , or get another
Windows disk back in place. I can’t say don’t try it. Just don’t be surprised
if something goes wrong.

I normally recommend multiboot installations with ample available HD space
not allocate all space to one Linux installations. Instead, make two or three
or even more OS partitions (/ or root by names) so that wiping and upgrading
are not forced upon you if and when something goes wrong during or after
installation. IOW, the first / is your first installation target. Then
instead of upgrading it at some future point, you install to the second /. Or
if you wish to install a different distro, you put it on the second /, or on
a third. If the first is left functional, it remains as a handy means to
perform repair or manipulation operations on others that can be very much
handier than booting live media. The bulk of disk space can be allocated to
/home, and a relatively minor amount to swap. Another option would be using
LVM to allocated space among however many / plus /home and have separates
only for swap and primary /boot. With LVM, you can easily change your mind
about allocation later, including much later.

I also recommend a separate primary partition be used for booting to
facilitate having multiple / partitions (when not using LVM). It can be
mounted on /boot for the first installation, but is best divorced from /boot
before a second Linux installation is made, leaving you to manage it
manually, while keeping each subsequent installation’s bootloader on its /.
This plan avoids corruption by each installed distro laying claim to the same
booting apparatus, which at some point after initial installation is provided
by the divorced primary partition with the primary bootloader installed that
you manage yourself.

The Linux installer may get what you wish right the first time, but it may
not. And it may never, unless you inform yourself as well as possible, and
get involved in the installation and maintenance process beyond n00b level.

A better plan for those wishing to get their feet wet in Linux is to start
with a spare computer, and after finding an arrangement that works for you,
only then migrate what you are comfortable with to your primary machine. That
way, wiping and starting over if and when necessary should be relatively
painless to your mind and data.

The wise are known for their understanding, and pleasant
words are persuasive.

Team OS/2 ** Reg. Linux User #211409 ** a11y rocks!

Felix Miata

I’d like to see some specifics on

  1. Windows version
  2. Are you using MBR or GPT partitioning

Wrong for two reasons - Linux has no idea and does not care about BIOS numbers and bootloaders usually do not hardcode BIOS numbers but simply work with current boot drive as passed by BIOS (as does Microsoft bootloader, actually). As long as all information required by bootloader is contained on a single boot drive, it should work just fine.

This is going to be significantly more complex than I had imagined. As I do not have a spare computer right now to fully devote to this learning curve of trial and error with multi/dual booting, I will probably just do the whole, unhook Windows and storage drive, leave the other HDD in and install Linux there like it is fresh, then reattach all the other drives later and go into my BIOS and change the boot option as needed. It will be a pain in the ass admittedly, but I am not at a skill level of fully understanding most of the information I am processing. I understand some, as I am attempting to migrate into this world, but I don’t feel comfortable yet with going all the way on multi/dual booting with some of the information you have provided. I proudly calim n00b status right now, as I a completely new to this. I will not give up on this by any means, but right now I’m not ready to commit as I do not have the money/resources to do this project the “correct” way. I appreciate all the information you have provided. I would love any more information you can provide on multi-booting, detailed how-tos, etc., even if I don’t understand everything being said now, as I know that if I stick with it, I will understand it eventually. And even though most people say just “Google” it, “Google” doesn’t always give you what you are looking for, even in the first 10 pages. Or people assume you know what to do and provide little to now information to help out n00bs.

I have Windows 7 on a 60GB Kingston SSD. And as far as partitioning goes, I was just going to manually partition my drive with YaST upon install. So I’m guessing that would be MBR? I apologize if I can not provide you with the information you are looking for. This is a new world.

On 2014-08-09 04:56 (GMT) arvidjaar composed:

> mrmazda;2658435 Wrote:

>> Linux is only going to boot from the HD when it
>> has the same BIOS number as when the bootloader was configured

> Wrong for two reasons - Linux has no idea and does not care about BIOS
> numbers and bootloaders usually do not hardcode BIOS numbers but simply
> work with current boot drive as passed by BIOS (as does Microsoft
> bootloader, actually). As long as all information required by bootloader
> is contained on a single boot drive, it should work just fine.

[unquoted previous thread posts incorporated by reference]

By saying “Linux” I was simplifying for the benefit of an inexperienced OP,
plainning a “Linux” installation, with neither bootloader nor kernel
currently installed, being confronted by a non-trivial amount of information
on a difficult to understand subject, and referring actually to the
bootloader that the Linux distro’s installer installs and on which the Linux
kernel and initrd depend to successfully start.

Adequacy of all information required and used by the kernel/initrd pair and
the bootloader depends on multiple factors and cannot be guaranteed to work
when that single drive starts having a different BIOS # from when installed.
When a Grub menu stanza says for root e.g. (2,1) but in fact for that boot
the bootloader’s partition is (1,1) as a result of mismatched BIOS setting or
BIOS boot menu or missing Windows HD, boot failure is the most likely result
of a boot attempt.

The wise are known for their understanding, and pleasant
words are persuasive.

Team OS/2 ** Reg. Linux User #211409 ** a11y rocks!

Felix Miata *** http://fm.no-ip.com/

It should then be simple.
Just decide which HD is going to be sda and so on - and keep it that way.
Once you start toggling stuff or pulling and re-connecting them, everything gets changed.
I have 3 HDD’s and they have been in the same order for many years
sda is win 7 only now.
sdb and so on are Linux installations

I write grub to MBR always
Never fails

in my present laptop, Precision M4800, I can install three hd (one 2,5, one msata and one half mPCIe)
at present I’ve one 2,5 ssd with openSuse as primary disk and one mSata ssd with win 7 (for a particular Slides scanner that as only win drivers) as second disk

in bios I can select the boot order (2,5 is first)

if in Yast/Boot Loader I select Find other OS (I’m on other language than English so maybe is not Find but something else) Win is appearing on Grub Menù and it allows me to start the mSata with Win 7 without entering the Boot order by F12

So are you just saying to use YaST to install it on my 500GB HDD and make sure that all Linux related files go to sdb, or whatever drive my Linux drive would be listed as?

When you did all of your installs, did you do openSUSE first, get everything set up, then Win 7 afterwards? Based on what information I am seeing right now, it seems like I wouldn’t have most of these “problems” if I had done Linux first, and Windows second.

You need to be very observant and cognoscente of the final scheme. Don’t just click past it look at it and understand it and change it if needed. The installer will want to install to the boot drive so you must override that and be double sure that the target locations are what you want. That includes the location grub is to be installed to and you will need to be sure to install some version of grub to the MBR of the target drive. ie don’t assume that the installer will read your intentions , take full control. If you are not confident that you can make the right choices then best to remove the Windows disk before installing Linux then you can install pretty much by taking the defaults if there is only one possible target drive.

Note that by installing to two separate boot drives you will have to use the BIOS to select the boot OS. If you would do a more normal dual boot you would use grub to chose the OS

You could of course latter add Windows to Grub and be able to boot to Windows from the grub menu. But you would need to learn some more to do that it would not bee there by default because of the installation scheme you are trying

Well, I’ve installed openSUSE first, than after getting the new disk, Win 7 on mSata.
(BTW, I was having a 256 mb Crucial M550 but when I was trying to install Win via the recovery DVD made from Dell Recovery it refused to proceed because the original HD was 500 mb, so I got a 500 mb mSata to install Win 7… >:( ) but before I was installing openSuse on 256 gb mSata and Win 7 was already on 2,5 ssd, no problems

the Grub is placed on / as default by the installer, no separate Home

sorry for mistake, 256 and 500 are gb not mb…:frowning:

Take a look at this series of screens
https://dl.dropboxusercontent.com/u/10573557/13.1_install/13.1_install.pdf

As has been said already. You need to take control of the install by going with the advanced install route.
Personally I always have my partitions in place first, having done so with Parted Magic. Then just point the installer to those partitions.

And regardless, I always edit the Booting section here: https://dl.dropboxusercontent.com/u/10573557/12.3_install_complete/12.3_install/12.png
and set like this: https://dl.dropboxusercontent.com/u/10573557/13.1_install/13.png

… in your case, Alectron84, I would recommend this proposal.

In addition, I would like to encourage you not to become too spooked by some of the scary-sounding warnings you have seen in this thread. Just proceed as caf proposes, pay very close attention to every detail, and you should have no problems. It is nowhere near as scary as it sounds.

And, keep in mind, if there is a minor hiccup along the way, very good advisors such as nrickert, caf4926, arvidjaar, gogalthorp, and several others on this forum can walk you through.

Good luck, take the plunge, and welcome aboard.

sorry, now I remember that I was swapping one disk before the installation

I’ve installed openSUSE on 2,5 disk than removed the disk and installed Win 7 on mSata, than I’ve inserted again the SUSE disk, everything ok

This is excellent advice. I know that, because I do it this way myself :stuck_out_tongue:
Well, okay, I usually use “fdisk” or “gdisk” for the partitioning, though I have used “Parted Magic”.

As for where to install grub:

  1. Put it in the MBR of the main disk. Disadvantage: Windows might clobber it at some future time;
  2. Put it in the MBR of the secondary disk, and tell the installer that will be the first disk. Disadvantage: you have to interact with the BIOS on every boot of opensuse.
  3. Put it in a partition boot record (say the root partition), leave the disk order at the default, and later add an entry to Windows Boot manager (with EasyBCD or BCDEDIT). Disadvantage: whenever grub is reinstalled, you may need to recopy the boot sector or re-run EasyBCD)

On dual-boot Windows/linux machines, I have normally gone with the last of those approaches.

And a note on my participation in this thread. In msg #3 above, I just responded to the OP’s question and avoided making my own suggestions. Since then, I have kept quiet (until now), because I saw too much of a cacophony of opinions.