You are not logged in.

#1 2014-08-26 20:34:21

oktorok
Member
From: San Francisco, Ca
Registered: 2014-06-18
Posts: 70

[SOLVED] linux-lts GRUB "Unable to find device" error

I installed linux-lts, reconfigured GRUB, and created an initial ramdisk env,

 # pacman -S linux-lts
 # grub-mkconfig -o /boot/grub/grub.cfg 
 # mkinitcpio -p linux-lts

I'm able to load the linux-lts kernel from rEFInd (dual booting with MacOS), but I get the error:

Warning: /lib/modules/3.14.17-1-lts/modules.devname not found - ignoring
ERROR: device "UUID=df842c36-41f7-4606-b219-7879cf1c4825" not found
ERROR: Unable to find root device "UUID=df842c36-41f7-4606-b219-7879cf1c4825"

and am dropped into  a recovery shell.
However,

 % ll /lib/modules/3.14.17-1-lts/modules.devname                                                                                                              ~
-rw-r--r-- 1 root root 411 Aug 26 13:20 /lib/modules/3.14.17-1-lts/modules.devname

so at least the file exists.
Here's the specific lines from grub.cfg pertaining to linux-lts :

# grep linux-lts /boot/grub/grub.cfg
	linux	/boot/vmlinuz-linux-lts root=UUID=df842c36-41f7-4606-b219-7879cf1c4825 rw  quiet systemd.show_status=0
	initrd	/boot/initramfs-linux-lts.img
	menuentry 'Arch Linux, with Linux linux-lts' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-advanced-df842c36-41f7-4606-b219-7879cf1c4825' {
		echo	'Loading Linux linux-lts ...'
		linux	/boot/vmlinuz-linux-lts root=UUID=df842c36-41f7-4606-b219-7879cf1c4825 rw  quiet systemd.show_status=0
		initrd	/boot/initramfs-linux-lts.img
	menuentry 'Arch Linux, with Linux linux-lts (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-fallback-df842c36-41f7-4606-b219-7879cf1c4825' {
		echo	'Loading Linux linux-lts ...'
		linux	/boot/vmlinuz-linux-lts root=UUID=df842c36-41f7-4606-b219-7879cf1c4825 rw  quiet systemd.show_status=0
		initrd	/boot/initramfs-linux-lts-fallback.img

and here is the complete grub.cfg

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

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 {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt 
insmod ext2
set root='hd0,gpt4'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  df842c36-41f7-4606-b219-7879cf1c4825
else
  search --no-floppy --fs-uuid --set=root df842c36-41f7-4606-b219-7879cf1c4825
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-df842c36-41f7-4606-b219-7879cf1c4825' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt 
	insmod ext2
	set root='hd0,gpt4'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  df842c36-41f7-4606-b219-7879cf1c4825
	else
	  search --no-floppy --fs-uuid --set=root df842c36-41f7-4606-b219-7879cf1c4825
	fi
	echo	'Loading Linux linux-lts ...'
	linux	/boot/vmlinuz-linux-lts root=UUID=df842c36-41f7-4606-b219-7879cf1c4825 rw  quiet systemd.show_status=0
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initramfs-linux-lts.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-df842c36-41f7-4606-b219-7879cf1c4825' {
	menuentry 'Arch Linux, with Linux linux-lts' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-advanced-df842c36-41f7-4606-b219-7879cf1c4825' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt 
		insmod ext2
		set root='hd0,gpt4'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  df842c36-41f7-4606-b219-7879cf1c4825
		else
		  search --no-floppy --fs-uuid --set=root df842c36-41f7-4606-b219-7879cf1c4825
		fi
		echo	'Loading Linux linux-lts ...'
		linux	/boot/vmlinuz-linux-lts root=UUID=df842c36-41f7-4606-b219-7879cf1c4825 rw  quiet systemd.show_status=0
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initramfs-linux-lts.img
	}
	menuentry 'Arch Linux, with Linux linux-lts (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-fallback-df842c36-41f7-4606-b219-7879cf1c4825' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt 
		insmod ext2
		set root='hd0,gpt4'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  df842c36-41f7-4606-b219-7879cf1c4825
		else
		  search --no-floppy --fs-uuid --set=root df842c36-41f7-4606-b219-7879cf1c4825
		fi
		echo	'Loading Linux linux-lts ...'
		linux	/boot/vmlinuz-linux-lts root=UUID=df842c36-41f7-4606-b219-7879cf1c4825 rw  quiet systemd.show_status=0
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initramfs-linux-lts-fallback.img
	}
	menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-df842c36-41f7-4606-b219-7879cf1c4825' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt 
		insmod ext2
		set root='hd0,gpt4'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  df842c36-41f7-4606-b219-7879cf1c4825
		else
		  search --no-floppy --fs-uuid --set=root df842c36-41f7-4606-b219-7879cf1c4825
		fi
		echo	'Loading Linux linux ...'
		linux	/boot/vmlinuz-linux root=UUID=df842c36-41f7-4606-b219-7879cf1c4825 rw  quiet systemd.show_status=0
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initramfs-linux.img
	}
	menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-df842c36-41f7-4606-b219-7879cf1c4825' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt 
		insmod ext2
		set root='hd0,gpt4'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  df842c36-41f7-4606-b219-7879cf1c4825
		else
		  search --no-floppy --fs-uuid --set=root df842c36-41f7-4606-b219-7879cf1c4825
		fi
		echo	'Loading Linux linux ...'
		linux	/boot/vmlinuz-linux root=UUID=df842c36-41f7-4606-b219-7879cf1c4825 rw  quiet systemd.show_status=0
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initramfs-linux-fallback.img
	}
}

### END /etc/grub.d/10_linux ###

### 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  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

### BEGIN /etc/grub.d/60_memtest86+ ###
### END /etc/grub.d/60_memtest86+ ###

and fstab:

% cat /etc/fstab                                                                                                                                             ~
# 
# /etc/fstab: static file system information
#
# <file system>	<dir>	<type>	<options>	<dump>	<pass>
# /dev/sda4
UUID=df842c36-41f7-4606-b219-7879cf1c4825	/         	ext4      	rw,relatime,data=ordered	0 1

# /dev/sda5
UUID=0a37147c-f87b-4c2c-9b2d-75c852568c4b	/home     	ext4      	rw,relatime,data=ordered	0 2

Found a few things about 30 things on the net, this,  but by my reckoning, it is not similar enough / I don't understand the solution enough to be comfortable applying it to my set up.   Tried that, it didn't work.  Seems like every issue that manifests itself in this way (esp in dual boot situations) has a different solution, ranging from blacklisting certain modules  in /etc/default/grub to reording the block and autodetect hooks in mkinitcpio.conf.

Any help troubleshooting this would be greatly appreciated.

Also, here is mkinitcpio.conf (sans comments):

# vim:set ft=sh
# MODULES

MODULES=""

# BINARIES
BINARIES=""

# FILES
FILES=""

# HOOKS
HOOKS="base udev block autodetect modconf filesystems keyboard fsck usbinput"

Last edited by oktorok (2014-11-04 02:29:08)

Offline

#2 2014-08-27 12:25:20

csantosb
Member
From: madrid
Registered: 2014-05-01
Posts: 2
Website

Re: [SOLVED] linux-lts GRUB "Unable to find device" error

What do you get when you  'ls -l /dev/disk/by-uuid' ?

Offline

#3 2014-08-27 14:54:40

oktorok
Member
From: San Francisco, Ca
Registered: 2014-06-18
Posts: 70

Re: [SOLVED] linux-lts GRUB "Unable to find device" error

Hi csantosb, thanks for helping,

% ls -l /dev/disk/by-uuid                                                                                                                                    ~
total 0
lrwxrwxrwx 1 root root 10 Aug 26 17:17 039ae41d-c752-37bd-a97c-ef6aa77885f7 -> ../../sda2
lrwxrwxrwx 1 root root 10 Aug 26 17:17 0a37147c-f87b-4c2c-9b2d-75c852568c4b -> ../../sda5
lrwxrwxrwx 1 root root 10 Aug 26 17:17 67E3-17ED -> ../../sda1
lrwxrwxrwx 1 root root 10 Aug 26 17:17 7faa7f25-c4ee-3ce4-82c0-1ff099beb190 -> ../../sda3
lrwxrwxrwx 1 root root 10 Aug 26 17:17 df842c36-41f7-4606-b219-7879cf1c4825 -> ../../sda4

sda{1,2,3} are MacOS partitions.  sda4 is / and sda5 is /home.

Offline

#4 2014-08-28 21:31:19

oktorok
Member
From: San Francisco, Ca
Registered: 2014-06-18
Posts: 70

Re: [SOLVED] linux-lts GRUB "Unable to find device" error

Is the root filesystem encrypted by default?   I would like to try a solution like adding

 cryptdevice=device:dmname 

to my /etc/default/grub but I don't know what to put for dmname.  It seems like the wiki suggests stating it verbatum,

dmname is the device-mapper name given to the device after decryption, which will be available as /dev/mapper/dmname.

I tried

GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda4:/dev/mapper/dmname"

without success.  This solution doesn't make sense if the filesystem is not encrypted. 

I don't really think this applies, but I can't understand why the modules.devname would not be found when it plainly exists exactly where the system is looking for it.

In the meantime I'm trying

sudo mkinitcpio -k 3.14.17-1-lts -g /boot/initramfs-linux-lts.img -S autodetect

to set up the initial ram env, per this thread.

[update] the above method, referenced in the link, did not fix the issue.

Last edited by oktorok (2014-08-28 22:24:43)

Offline

#5 2014-08-28 23:42:36

rebootl
Member
Registered: 2012-01-10
Posts: 431
Website

Re: [SOLVED] linux-lts GRUB "Unable to find device" error

Is the root filesystem encrypted by default?

You mean like as a default of Arch ? No.

You may try to add the missing file to mkinitcpio in the file section, but that's a pure guess...


Personal website: reboot.li
GitHub: github.com/rebootl

Offline

#6 2014-08-29 00:05:24

oktorok
Member
From: San Francisco, Ca
Registered: 2014-06-18
Posts: 70

Re: [SOLVED] linux-lts GRUB "Unable to find device" error

I didn't think so, I'm grasping at straws at this point.  I'm not sure which file I would add, as I understand the FILES= section it is to replace modules, which seems to have to occur after the block device is recognized.  When I compare menuentry's in grub.cfg, my linux 3.16 (which works perfectly) and linux-lts entries are identical. It's hard to troubleshoot b/c I'm not given any log info, or at least I don't know where to look for it, b/c I get dropped into a useless (afaik) recovery shell.

Last edited by oktorok (2014-08-29 00:06:58)

Offline

#7 2014-08-29 00:48:56

rebootl
Member
Registered: 2012-01-10
Posts: 431
Website

Re: [SOLVED] linux-lts GRUB "Unable to find device" error

I meant the "modules.devname" from your warning, like:

FILES="/lib/modules/3.14.17-1-lts/modules.devname"

Looking at that file, it's simply a text file. So you could add it there. This would simply add it to the mkinitcpio initramfs, so it shouldn't harm... However what you get there is only a warning and not the actual error, I don't know what this file is needed for exactly, or why it is missing.

When I compare menuentry's in grub.cfg, my linux 3.16 (which works perfectly) and linux-lts entries are identical.

I agree that they look equivalent.

Unfortunately I've very little to no experience when it comes to UEFI...

Last edited by rebootl (2014-08-29 01:34:20)


Personal website: reboot.li
GitHub: github.com/rebootl

Offline

#8 2014-08-29 01:03:14

oktorok
Member
From: San Francisco, Ca
Registered: 2014-06-18
Posts: 70

Re: [SOLVED] linux-lts GRUB "Unable to find device" error

I tried it, to no avail.  Thanks for the suggestion though, I've been working on it for a while and can tell I'm stuck and sort of have tunnel vision at this point.  There's a few solutions out there, like this, but they apply to single kernel installs, where the solution requires booting from some media and mounting the root partition and then running mkinitcpio from there, and I don't see how I can adapt that solution to a multi kernel set up.  I'm probably missing something super basic.

Last edited by oktorok (2014-08-29 01:04:16)

Offline

#9 2014-08-29 10:36:35

clfarron4
Member
From: London, UK
Registered: 2013-06-28
Posts: 2,165
Website

Re: [SOLVED] linux-lts GRUB "Unable to find device" error

If you still have linux installed, then you should be able to boot in with that and try re-installing linux-lts etc. again and see if that helps. Try downloading the package fresh from the servers again as well.


Claire is fine.
Problems? I have dysgraphia, so clear and concise please.
My public GPG key for package signing
My x86_64 package repository

Offline

#10 2014-08-29 14:06:54

Kartious
Member
From: UK
Registered: 2013-03-23
Posts: 311

Re: [SOLVED] linux-lts GRUB "Unable to find device" error

Please see if this thread from post #12 helps. I have had a similar issue at some point upgrading my kernel around a month ago.

Offline

#11 2014-08-29 21:02:44

oktorok
Member
From: San Francisco, Ca
Registered: 2014-06-18
Posts: 70

Re: [SOLVED] linux-lts GRUB "Unable to find device" error

Thanks for the suggestions.  I had tried uninstalling / reinstalling a few times.  I just ran mkinitcpio from my mounted root partition via a usb stick in a chroot environment.  It complete fine, i.e. no errors, but when I try to reboot into linux-lts I get the same outcome as before.  I'm really stumped.

If the issue isn't with mkinitcpio, what else could it be?

Last edited by oktorok (2014-08-30 02:29:19)

Offline

#12 2014-08-30 12:19:29

rebootl
Member
Registered: 2012-01-10
Posts: 431
Website

Re: [SOLVED] linux-lts GRUB "Unable to find device" error

Just a thought: Did you use the '-n' switch when uninstalling, so that the config files get removed as well ? (e.g. 'pacman -Rns <pkg>') As per the linked thread in the thread linked by Kartious above, reinstalling mkinitcpio: https://bbs.archlinux.org/viewtopic.php?pid=1407467 (The OP there removed the config file manually.)


Personal website: reboot.li
GitHub: github.com/rebootl

Offline

#13 2014-08-31 01:15:32

oktorok
Member
From: San Francisco, Ca
Registered: 2014-06-18
Posts: 70

Re: [SOLVED] linux-lts GRUB "Unable to find device" error

Tried it, no dice.  Thanks for the suggestion though.

Offline

#14 2014-09-03 01:15:36

oktorok
Member
From: San Francisco, Ca
Registered: 2014-06-18
Posts: 70

Re: [SOLVED] linux-lts GRUB "Unable to find device" error

So I tried to compile linux-lts from source, I used localmodconfig to generate my .config, and I get a little more info now on my, is it initramfs? shown here.  I'm going to start troubleshooting again right now, but I wanted to post this in case it looks familiar to anyone.  I'm reluctant to read to much into the clocksource stuff because I'm booting fine with tsc in my main kernel.

Would it make sense for me to try a different bootloader than GRUB, or do you think this issue is separate from the bootloader (GRUB works fine for my main install)?

I have rEFInd installed in my MacOS system (per this wiki, second bullet), which (afaik) then passes off to initramfs/GRUB.  Anyway, I would prefer to get some input before I try swapping GRUB for rEFInd in Arch, as generally things are running smoothly for me despite not being able to load this other kernel and some wifi interruptions.  I don't want to mess up my boot process on my main kernel.

Thanks again for your time/effort.

Last edited by oktorok (2014-09-03 03:34:42)

Offline

#15 2014-11-04 02:28:34

oktorok
Member
From: San Francisco, Ca
Registered: 2014-06-18
Posts: 70

Re: [SOLVED] linux-lts GRUB "Unable to find device" error

I'm marking this solved even though I didn't find out the exact cause to this problem.  I speculate that it was related to me not having had a separate /boot partition, but I have no evidence to support that.  I just wiped my macbook this weekend, reinstalled Mac OS Yosemite and the latest Arch.  I scrapped rEFIt and installed GRUB on the already existing mac efi partition.  I installed linux-lts via pacman, rebooted and there it was.

Offline

Board footer

Powered by FluxBB