Booting computer with two hard drives

Questions about Grub, UEFI,the liveCD and the installer
Forum rules
Before you post read how to get help. Topics in this forum are automatically closed 6 months after creation.
Locked
ddurdle
Level 3
Level 3
Posts: 153
Joined: Sat Dec 17, 2011 10:03 am

Booting computer with two hard drives

Post by ddurdle »

I've always had problems booting my laptop if I have two drives attached if my secondary hard drive also has grub and linux images on it.

I use grub installed on my primary drive with Linux Mint. I also happen to have grub installed on my secondary drive with grub also installed.

If I boot off my primary drive, I get the grub screen and choose my kernel to load. But it seems grub gets confused at that point and starts trying to load that kernel choice from the secondary drive, and the system results in an error and halts with can't find kernel.

Everytime I boot and I need to use my secondary drive, I need to boot the computer with only the primary, and then wait until after I've loaded grub, selected the kernel, and just after it has found the kernel and has began loading it, can I then attach my secondary drive.

Any idea how this can be prevented? I'm going to be installing grub and images on a secondary drive that consists of a mini pci-e msata drive, and it won't be able to be removed to avoid the issue.

Attached is my grub:
#
# 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
load_env
fi
set default="0"
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 {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root e58491eb-165d-4c9c-adaf-f0c7f4821adf
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
load_video
insmod gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root e58491eb-165d-4c9c-adaf-f0c7f4821adf
set locale_dir=($root)/boot/grub/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/06_mint_theme ###
set menu_color_normal=white/black
set menu_color_highlight=white/light-gray
### END /etc/grub.d/06_mint_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'LinuxMint GNU/Linux, with Linux 3.3.0-1.dmz.1-liquorix-amd64' --class linuxmint --class gnu-linux --class gnu --class os {
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root e58491eb-165d-4c9c-adaf-f0c7f4821adf
echo 'Loading Linux 3.3.0-1.dmz.1-liquorix-amd64 ...'
linux /boot/vmlinuz-3.3.0-1.dmz.1-liquorix-amd64 root=UUID=e58491eb-165d-4c9c-adaf-f0c7f4821adf ro resume=/dev/sda2 pcie_aspm=force i915.i915_enable_fbc=1 i915.lvds_downclock=1 quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.3.0-1.dmz.1-liquorix-amd64
}
menuentry 'LinuxMint GNU/Linux, with Linux 3.3.0-1.dmz.1-liquorix-amd64 (recovery mode)' --class linuxmint --class gnu-linux --class gnu --class os {
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root e58491eb-165d-4c9c-adaf-f0c7f4821adf
echo 'Loading Linux 3.3.0-1.dmz.1-liquorix-amd64 ...'
linux /boot/vmlinuz-3.3.0-1.dmz.1-liquorix-amd64 root=UUID=e58491eb-165d-4c9c-adaf-f0c7f4821adf ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.3.0-1.dmz.1-liquorix-amd64
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_ipxe ###
### END /etc/grub.d/20_ipxe ###

### 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/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 $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 1 time in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
viking777

Re: Booting computer with two hard drives

Post by viking777 »

Attached is my grub:
Which grub?

You just said you have got two.
ddurdle
Level 3
Level 3
Posts: 153
Joined: Sat Dec 17, 2011 10:03 am

Re: Booting computer with two hard drives

Post by ddurdle »

viking777 wrote:
Attached is my grub:
Which grub?

You just said you have got two.
grub 2 installed on both drives (1.99--22.11)
usbtux

Re: Booting computer with two hard drives

Post by usbtux »

Presumeing you have linux on disk 1 (/sda) and another separate linux on disk 2 (/sdb)

You should be able to - At boot chose from /bios/boot manager which disk to boot from

You need to edit your grub to point to which disk/partition to boot from. So if mint is on disk one = /sda - disk one may look like
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 14419967 7208960 83 Linux
/dev/sda2 14422014 31342591 8460289 5 Extended
/dev/sda5 14422016 26843135 6210560 83 Linux
/dev/sda6 26845184 31342591 2248704 82 Linux swap / Solaris

Reinstall grub with following steps

boot and run from Linux Live DVD/CD
from a terminal sudo os-prober, and look for the mint partition this should be the / partition (root)
mount it with sudo mount /dev/sdaX /mnt, replace X with actual root partition of your selection
reinstall grub with sudo grub-install --root-directory=/mnt /dev/sda

Either do the same for disk two or edit the new grub menu to point at the other linux with a new menu item.

Another way would be to boot to mint and then install http://www.webupd8.org/2012/09/grub-cus ... customizer
ddurdle
Level 3
Level 3
Posts: 153
Joined: Sat Dec 17, 2011 10:03 am

Re: Booting computer with two hard drives

Post by ddurdle »

usbtux wrote:Presumeing you have linux on disk 1 (/sda) and another separate linux on disk 2 (/sdb)

You should be able to - At boot chose from /bios/boot manager which disk to boot from

You need to edit your grub to point to which disk/partition to boot from. So if mint is on disk one = /sda - disk one may look like
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 14419967 7208960 83 Linux
/dev/sda2 14422014 31342591 8460289 5 Extended
/dev/sda5 14422016 26843135 6210560 83 Linux
/dev/sda6 26845184 31342591 2248704 82 Linux swap / Solaris

Reinstall grub with following steps

boot and run from Linux Live DVD/CD
from a terminal sudo os-prober, and look for the mint partition this should be the / partition (root)
mount it with sudo mount /dev/sdaX /mnt, replace X with actual root partition of your selection
reinstall grub with sudo grub-install --root-directory=/mnt /dev/sda

Either do the same for disk two or edit the new grub menu to point at the other linux with a new menu item.

Another way would be to boot to mint and then install http://www.webupd8.org/2012/09/grub-cus ... customizer
I will give this a try. BTW, the blog link doesn't work.
usbtux

Re: Booting computer with two hard drives

Post by usbtux »

Try these links

Grub Customizer - a graphical grub2 settings manager https://launchpad.net/grub-customizer

Some info on it http://ubuntuforums.org/showthread.php?p=10340183
ddurdle
Level 3
Level 3
Posts: 153
Joined: Sat Dec 17, 2011 10:03 am

Re: Booting computer with two hard drives

Post by ddurdle »

I just tried the reinstall grub command that you suggested to run off a live cd.

After I rebooted, again, I force the laptop to boot off the primary drive, grub loads off the primary drive, I can see all and only the kernel images that are on the primary drive. I select an image, the screen flashes that it is loading the image, then I can see it cannot find the image (because it is now looking at /dev/sdb) and starts loading some kind of kernel image on the secondary drive (I never get into a bootable environment).

It's not just isolated to this machine. I have 3 other computers and I've come accustomed to unplugging all secondary drives if they have grub installed because I can never seem to force it to boot off only the primary drive.

I will have a look at the grub customizer.
ddurdle
Level 3
Level 3
Posts: 153
Joined: Sat Dec 17, 2011 10:03 am

Re: Booting computer with two hard drives

Post by ddurdle »

I should probably add the following:

Stand-alone, both drives boot fine if the other drive is not connected. That is, the system boots into grub, and I can select any of the kernel images shown, for which each one rightfully exists on the disk, and successfully load into my linux environment.

If I have both drives connected, doesn't matter which is primary or secondary, if I force the computer to boot off the primary drive, I get the correct grub menu (one that reflects all and only the kernel images on the primary drive), but the minute I select any of the kernel images to load, suddenly grub wants to look to /dev/sdb *ALWAYS* to load said image, and of course the kernel image doesn't exist on /dev/sdb -- never has.
User avatar
Flemur
Level 20
Level 20
Posts: 10096
Joined: Mon Aug 20, 2012 9:41 pm
Location: Potemkin Village

Re: Booting computer with two hard drives

Post by Flemur »

"Stand-alone, both drives boot fine if the other drive is not connected."

I have two HDs, one with 3 linuxes and the other with win7, which I hardly ever use. Having both connected while installing OSs and/or grub typically causes weird problems.

My free advice is:
- disconnect one disk and install/update grub on the connected disk as if it's going to be your only disk - it can't be aware of the disk that isn't there.
- do the same process with the 2nd disk (with the first disk now disconnected).
- make sure they both work separately, then connect both.
- use BIOS to select the disk to boot from; you should be able to access the other disk w/o problems (possible sda vs sdb probs?).

By "disconnected" I mean no cables attached.
Please edit your original post title to include [SOLVED] if/when it is solved!
Your data and OS are backed up....right?
ddurdle
Level 3
Level 3
Posts: 153
Joined: Sat Dec 17, 2011 10:03 am

Re: Booting computer with two hard drives

Post by ddurdle »

Flemur wrote:"Stand-alone, both drives boot fine if the other drive is not connected."

I have two HDs, one with 3 linuxes and the other with win7, which I hardly ever use. Having both connected while installing OSs and/or grub typically causes weird problems.

My free advice is:
- disconnect one disk and install/update grub on the connected disk as if it's going to be your only disk - it can't be aware of the disk that isn't there.
- do the same process with the 2nd disk (with the first disk now disconnected).
- make sure they both work separately, then connect both.
- use BIOS to select the disk to boot from; you should be able to access the other disk w/o problems (possible sda vs sdb probs?).

By "disconnected" I mean no cables attached.
I have since discovered the hard drives have the same UID, I have yet to test changing the UID on one of the drives (and then re-setting up grub on it now that it has a different UID). I believe once the drives have unique UIDs, I'll be able to boot from either of them while the other is connected without the issue.
mintybits

Re: Booting computer with two hard drives

Post by mintybits »

ddurdle wrote:I have since discovered the hard drives have the same UID, I have yet to test changing the UID on one of the drives (and then re-setting up grub on it now that it has a different UID). I believe once the drives have unique UIDs, I'll be able to boot from either of them while the other is connected without the issue.
Yes, having duplicated UUIDs will cause the symptoms you describe. Did you clone one of the drives or something?

To find out what your partition's UUIDs are:

Code: Select all

sudo blkid
To change the UUID of partition sda3 to a new, random one:

Code: Select all

sudo tune2fs -U random /dev/sda3
Making a root partition bootable after changing the UUIDs is not simple tho.
You'll have to update the UUID entries in its /etc/fstab file
You'll probably have to use chroot to run "update-initramfs -u" and to reinstall Grub "dpkg-reconfigure grub-pc"
Locked

Return to “Installation & Boot”