Linux does not see sdc on boot (but does during install)

3

OK, now I'm at a loss.

I have been struggling with getting my Ubuntu server to boot. After a couple of days of fighting with it, I gave up and reinstalled thinking that'll sort it out.

It didn't.

What I get is a kernel panic (the same as when I tried to fix things) saying that boot can't find sdc2 (where root is located, sdc1 is /boot). It only offers me the partitions for sda and sdb drives, but not sdc. But here's the kicker: I just installed the system and I definitely could see sdc!

Reason I wouldn't want to mess up the partition table is that I have already set it up (and I have a RAID5 setup as well that I don't want to accidentally mess up).

How is this even possible? It does look like the order of the disks has somehow changed (because I'm pretty sure I had boot and root on sda - although I'm not 100% sure but if not, I don't know what I was thinking). Trying to change the boot order in BIOS did nothing, I get exactly the same setup during install.

Now I'm running out of ideas. Do I go and find 4 terabytes of backup storage somewhere, copy the RAID5 data there and wipe the whole system clean?

Here's the boot error:

enter image description here

And here's /etc/fstab and blkid output:

enter image description here

And I have tried to reinstall GRUB, edit grub.cfg directly, change parameters in boot menu ('e' in grub menu), reinstall the whole system, change boot order in BIOS menu and.. I can't even remember what I have tried (my initial attempt was a couple of weeks ago).

EDIT2: Before reinstall /etc/fstab said boot and root were on sda rather than sdc, but something must have messed up the order the disks are reported. But even in this case, why does this not work? I thought I could organize the partitions as I want.

EDIT3: I found this question: Linux installation won't boot due to GRUB "no such device" error which looks a lot like my problem but the proposed solution did not work, unless I misunderstood it (I tried changing the Grub boot menu items with 'e' so that root was (hd0, gpt1), (hd0,gpt2), (hd1,gpt1) and (he1,gpt2) but each gave me the same error.

Marko Poutiainen

Posted 2013-02-03T19:10:28.723

Reputation: 153

Answers

0

Try the following:

  • Boot into a live session
  • Use blkid to check the UUIDs of your drives.
  • If the problem occurs downstream of the bootloader, just change the /etc/fstab file of your instalation to use the UUIDs.
  • If the problem is related to GRUB, try using a chroot environment to update and reinstall ti. See here for more information.

terdon

Posted 2013-02-03T19:10:28.723

Reputation: 45 216

I have done pretty much all of those already :( I just checked the grub rescue and looks like sdc is hd1 rather than hd2, at least judging by number of partitions it listed. – Marko Poutiainen – 2013-02-03T19:18:38.317

I also tried changing the boot parameters to both hd1,gpt1 and hd1,gpt2 and still the same result. – Marko Poutiainen – 2013-02-03T19:20:32.023

Oh, to be more precise: I have checked the UUID's. I have also reinstall GRUB couple of times + I just did a full reinstall. – Marko Poutiainen – 2013-02-03T19:21:44.440

@Makis, please update your question to include everything you have tried. – terdon – 2013-02-03T19:48:10.817

0

Assuming that your RAID5 array is backed by a motherboard RAID, you'll have to take additional steps to make sure that it loads when you boot your system.

Unlike a standard RAID card, motherboard RAIDs need support in the operating system. I'm guessing that the live CD was configured to detect such arrays, while your installation does not because a. you failed to follow the provided instructions or b. there were no instructions about this in the installation guide you followed.

At any rate, booting from a fake-RAID (linux terminology) involves

  • loading a temporary ram filesystem (initramfs) with necessary drivers
  • detecting the RAID array, allowing kernel access it as a regular hard drive
  • mounting a partition from that array as root and booting from that

This process should be documented on a wiki (Ununtu). Usually the solution will be a trivial edit to the kernel parameters in the boot loader stating that you want the system to probe for software raids. I say trivial because the ramfs with drivers is almost certainly already included so that you won't have to set that up manually.

I have not actually read this, but at first glance, it seems like what you need:
https://help.ubuntu.com/community/FakeRaidHowto

Ярослав Рахматуллин

Posted 2013-02-03T19:10:28.723

Reputation: 9 076

I didn't have a HW RAID. Turned out the issue was with the mobo which didn't like that the disk with the boot sector was on SATA port 5. – Marko Poutiainen – 2013-03-25T08:43:21.587