7
ERROR: device '' not found. Skipping fsck.
ERROR: Unable to find root device ''.
You are being dropped to recovery shell 

I've been trying to install Arch Linux for some time, and keep running into this error. I seriously have no idea what to do.

A little background: My computer originally had a dual boot with Fedora and Windows 10 (both 64-bit), Windows being installed first. I decided to replace Fedora with Arch. There are separate partitions for root, /boot/efi and /home, and I only overwrote root. I mounted the partitions, deleted everything except for /home (and /boot, which I mistakenly kept). I ran pacstrap -i /mnt base, installed the system and rebooted. It booted fine, but it used the Fedora bootloader, with the Fedora loading animation and everything. There were a few issues with the system, including certain services failing to start, and I suspected the Fedora bootloader was to blame. I booted back into the Arch installation USB, deleted everything, this time including /boot (but not /boot/efi, I didn't mount that.) I reinstalled again, and grub wouldn't recognize the vmlinuz image thingy. So I decided to boot back into the USB, chroot into the new Arch partition, and install rEFInd, my personal favourite bootloader. After installing rEFInd with pacman -S refind-efi and refind-install rEFInd was installed, and I rebooted into it. Windows will start, but when I try to start Arch, I get that error.

I've run mkinitcpio -p linux multiple times. /etc/fstab looks completely normal.

Here's what I've tried:

https://superuser.com/questions/769047/unable-to-find-root-device-on-a-fresh-archlinux-install#788480

Moved block before autodetect, no effect

http://www.linuxforums.org/forum/arch-linux/199189-error-device-not-found-skipping-fsck.html

Fiddled around with refind.conf and refind_linux.conf, nothing I did worked

https://superuser.com/questions/835120/error-unable-to-find-root-device-dropped-to-recovery-shell

Double-checked, initramfs-linux.img is in the correct directory

I've seen similar issues but none of their fixes worked for me. Any ideas on how I can get arch to boot?

EDIT: I discovered I'm using an LVM thing. So yeah. My home, root and swap partitions are little LVM thingies (i don't know what to call them) in /dev/sda8. I don't know if this affects anything

  • SOMEONE NOTICE THIS QUESTION GAAAAAAAAH – TheInitializer Oct 18 '16 at 19:52
  • That sounds rough. Do you have access to another computer? It's possible your best is to make a live cd of some distro, mount /home on it, copy any important files to a usb stick, and then reinstall. – Elronnd Oct 22 '16 at 19:31
  • @Elronnd I do have a working windows partition on the same computer. I've copied all important files to it already. Idk, maybe wiping that entire partition and creating a new (non-lvm) one might help - may be that LVM is causing all the issues. I honestly want to know what exactly is going on though, arch must be looking for '' for some reason... – TheInitializer Oct 22 '16 at 19:45
  • Side note: my HDD has 12 partitions, is this normal? – TheInitializer Oct 22 '16 at 20:57
  • I'm so glad I'm not the only one having this exact problem- I am having the exact same issue and have tried everything you've tried and still haven't found a fix. Will keep looking for one though! – Sam Holmes Oct 29 '16 at 16:09
5

The problem appears to be that rEFInd isn't automatically creating the refind_linux.conf file in the /boot directory.

From step 4 of the "EFI Stub Loader Support Technical Details" from the rEFInd documentation:

rEFInd looks for a file called refind_linux.conf in the same directory as the kernel file. It consists of a series of lines, each of which consists of a label followed by a series of kernel options. The first line sets default options, and subsequent lines set options that are accessible from the main menu tag's submenu screen. If you installed rEFInd with the refind-install script, that script created a sample refind_linux.conf file, customized for your computer, in /boot. This file will work without changes on many installations, but you may need to tweak it for some.

I'm not sure why it isn't creating this file, but it's highly likely you can solve the problems you're having by creating it.

Creating the refind_linux.conf file

The Arch Linux wiki has an excellent entry on how to do this, but essentially you place it in the same directory as your kernel (usually in /boot, either by creating it automatically or manually). The first uncommented line of the file will be the default parameters for booting the kernel.

I created my file using the mkrlconf command, and the resulting file at /boot/refind_linux.conf looked like this:

"Boot with standard options"  "archisobaseddir=arch archisolabel=ARCH_201610"
"Boot to single user mode"    "archisobaseddir=arch archisolabel=ARCH_201610 single"
"Boot with minimal options"   "ro root=UUID=514a997c-a921-403d-849f-d901d26a73db"

We're getting somewhere, but this didn't work yet. Because I created it from the live USB, the first two entries are not correct as they refer to ISO on the USB instead. The final entry is actually correct though, and this is because like the error you received, it sets the root device from '' to the UUID of your / disk.

So to set it as the primary boot option just delete the other lines and change the label.

"Boot with standard options"  "ro root=UUID=514a997c-a921-403d-849f-d901d26a73db"

Save the file and restart the system, it should now work correctly!

Footnotes

  1. This is of course a long way to go about creating the file. You don't have to use the mkrlconf to generate it, you could manually create it yourself. It's more that it auto-populates the disk UUID (which I do not want to have to copy and type out manually).

  2. Step 5 from the Stub Loader Technical Details (linked above) outlines how, if no refind_linux.conf file is present, rEFInd will look for a kernel entry in /etc/fstab. With a weird volume configuration though it's unlikely this will work.

  • 1
    Wow, this sends like a great answer. I already fixed my problem though (by reinstalling) so can't confirm that this will work, but I will upvote 😀 – TheInitializer Oct 30 '16 at 18:07
  • No worries, I knew you had fixed your problem! 😀 This is more for the benefit of anyone else who comes here with the same problem we've had, congrats on getting your system up running in the end! – Sam Holmes Oct 31 '16 at 7:24
0

Chroot your partition and try the FIFO script "Install/Configure bootloader" part https://github.com/helmuthdu/aui

If this doesn't help. I'd backup my /home partition (like Elronnd suggested) and try a fresh install with the FIFO / LILO scripts.

Good luck!

0

I just deleted the entire partition and reinstalled. LVM was screwing it up all along. Works perfectly now.

  • I wasn't using LVM at any point and am still having the same issue :( – Sam Holmes Oct 29 '16 at 16:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.